キンサクプログラマー

お金儲けと技術のメモ

DCGANをtensorflow-gpu環境で試そうとしたらはまった

f:id:pikurusux:20180211125148p:plain
年末にマイニングとdeeplearningとゲーム用を兼ねてPCを購入したものの、deepleaningを試せていなかった。
せっかく良いGPU(GTX-1080ti)を積んでいるので、試してみることにした。

が、 くっそはまった話。

やろうとしたこと

qiita.com
このページにある顔の自動生成をtensorflow-gpuで試そうとした。

環境構築

スペック

素人(ゲーム、プログラマ、動画編集)が使う上では十二分なスペックのマシン。

windows+tensorflow-gpuの環境構築については、ブログやQiitaでいろんな情報が上がっているため、
そちらを参考に構築することにした。
qiita.com

ちなみに、最新のtensorflowではpython3.6も対応しているようなので、あえて3.5を入れる必要もなさそうだ。
cudaとanacondaの仮想環境を構築して、いざ

import tensorflow

でエラーの洗礼を受けることになる。

問題1 ImportError: cannot import name 'pywrap_tensorflow'

ぐぐってみるといくつかの解決手段がでてくる、

  • ライブラリのフォルダと、ワークフォルダの両方にtensorflowがあって、競合してるケース
  • cuda6じゃないとだめなケース

などが、あった。結局、ワークフォルダにはtensorflowはないし、cuda6を入れても動かなかった。

いろいろ見ていくと、cudaのバージョンが対応していなかった。
具体的にはhtensorflow 1.5とcuda9.0が対応しているようだが、cuda9.1をインストールしてしまったために、この現象が起きていたようだ。
cuda9.0を入れなおすことで解決。

公式で公開されている対応バージョンはしっかり確認しよう。

マイナーバージョンの違いで動かないこともあるので、ちゃんと合わせよう。
Installing TensorFlow from Sources  |  TensorFlow

問題2 AttributeError: module 'scipy.misc' has no attribute 'imread'

やっと問題を片づけて、またすぐ次のエラーが発生。
DCGANのサンプルを実行した際に遭遇。
こちらに関しては、対応策も下記のサイトに載っていた。
感謝します。
shinya131-note.hatenablog.jp

問題3  could not create cudnn handle:CUDNN_STATUS_NOT_INITIALIZED

GPUが動き出したと思った、矢先にこのエラー。
メモリ割り当てに失敗していそうだがよくわからない。
tensorflowのissuesにあったので確認してみた。
github.com

同様のエラーで困っている人が多数いるようだが、私の場合は下記のレスに助けられた。

However, I found that after I installed CUDA 9.0, my driver will not be the latest version.
SO, try to update your Nvdia driver to the latest version and restart your PC. It works for me!

Nvidiaのドライバを再インストールして再起動して試してみたところ、
うまく動いた。

実行途中画面

Epoch: [ 1] [1418/3165] time: 1060.2430, d_loss: 1.41907096, g_loss: 0.63643277
Epoch: [ 1] [1419/3165] time: 1060.4515, d_loss: 1.45640254, g_loss: 0.64500499
Epoch: [ 1] [1420/3165] time: 1060.6601, d_loss: 1.41062641, g_loss: 0.56015360
Epoch: [ 1] [1421/3165] time: 1060.8671, d_loss: 1.51710260, g_loss: 0.63383025
Epoch: [ 1] [1422/3165] time: 1061.0752, d_loss: 1.54579854, g_loss: 0.52151591
Epoch: [ 1] [1423/3165] time: 1061.2837, d_loss: 1.46147490, g_loss: 0.58812702
Epoch: [ 1] [1424/3165] time: 1061.4939, d_loss: 1.58462930, g_loss: 0.48759139
Epoch: [ 1] [1425/3165] time: 1061.7025, d_loss: 1.56832576, g_loss: 0.60934305
Epoch: [ 1] [1426/3165] time: 1061.9105, d_loss: 1.40342653, g_loss: 0.61351788
Epoch: [ 1] [1427/3165] time: 1062.1186, d_loss: 1.47152758, g_loss: 0.60068858
Epoch: [ 1] [1428/3165] time: 1062.3261, d_loss: 1.44360065, g_loss: 0.66278183
Epoch: [ 1] [1429/3165] time: 1062.5337, d_loss: 1.50858665, g_loss: 0.53968000
Epoch: [ 1] [1430/3165] time: 1062.7422, d_loss: 1.52123177, g_loss: 0.58573389
Epoch: [ 1] [1431/3165] time: 1062.9493, d_loss: 1.47332740, g_loss: 0.63264287
Epoch: [ 1] [1432/3165] time: 1063.1589, d_loss: 1.43613935, g_loss: 0.59885716
Epoch: [ 1] [1433/3165] time: 1063.3674, d_loss: 1.37127995, g_loss: 0.63091910
[Sample] d_loss: 1.34602058, g_loss: 0.70510840
Epoch: [ 1] [1434/3165] time: 1063.6607, d_loss: 1.44967675, g_loss: 0.62343627
Epoch: [ 1] [1435/3165] time: 1063.8687, d_loss: 1.41101193, g_loss: 0.66424716
Epoch: [ 1] [1436/3165] time: 1064.0768, d_loss: 1.43111825, g_loss: 0.53954196
Epoch: [ 1] [1437/3165] time: 1064.2849, d_loss: 1.49535596, g_loss: 0.66104704
Epoch: [ 1] [1438/3165] time: 1064.4945, d_loss: 1.45967066, g_loss: 0.63033247
Epoch: [ 1] [1439/3165] time: 1064.7025, d_loss: 1.43339145, g_loss: 0.53772628
Epoch: [ 1] [1440/3165] time: 1064.9105, d_loss: 1.45192957, g_loss: 0.69934833
Epoch: [ 1] [1441/3165] time: 1065.1205, d_loss: 1.46918988, g_loss: 0.54644096
Epoch: [ 1] [1442/3165] time: 1065.3313, d_loss: 1.37871087, g_loss: 0.75828224
Epoch: [ 1] [1443/3165] time: 1065.5414, d_loss: 1.43790650, g_loss: 0.50906980
Epoch: [ 1] [1444/3165] time: 1065.7509, d_loss: 1.55966878, g_loss: 0.60897464
Epoch: [ 1] [1445/3165] time: 1065.9610, d_loss: 1.49488461, g_loss: 0.56633693
Epoch: [ 1] [1446/3165] time: 1066.1710, d_loss: 1.50764132, g_loss: 0.59443462
Epoch: [ 1] [1447/3165] time: 1066.3811, d_loss: 1.48710704, g_loss: 0.60316432
Epoch: [ 1] [1448/3165] time: 1066.5881, d_loss: 1.40473163, g_loss: 0.62603921

GTX1080tiの私の環境でも1epoch10分くらいかかった。

初期

f:id:pikurusux:20180211125139p:plain

1epoch

f:id:pikurusux:20180211125148p:plain

2epoch

f:id:pikurusux:20180211125156p:plain

1epochで顔画像としてのクオリティ自体は停滞しているように見える。
おもしろい。

tensorflow-gpuの環境構築でどはまりした件

年末にマイニングとdeeplearningとゲーム用を兼ねてPCを購入したものの、deepleaningを試せていなかった。
せっかく良いGPU(GTX-1080ti)を積んでいるので、試してみることにした。


が、 くっそはまった話。

スペック

素人(ゲーム、プログラマ、動画編集)が使う上では十二分なスペックのマシン。
こいつでtensorflowを動かしてみることにした

環境構築

windows+tensorflow-gpuの環境構築については、ブログやQiitaでいろんな情報が上がっているため、
そちらを参考に構築することにした。
最近だとこちらの記事か
qiita.com

ちなみに、最新のtensorflowではpython3.6も対応しているようなので、あえて3.5を入れる必要もなさそうだ。
cudaとanacondaの仮想環境を構築して、いざ

>import tensorflow

でエラーの洗礼を受けることになる。
ぐぐってみるといくつかの解決手段がでてくる、

  • tensorflow

草コインバブル到来 誰でも億万長者時代突入

毎日のように数倍〜数十倍銘柄が登場してもはやバブルを超えたバブル。
億万長者になる人が増えている。
僕も昨年出した負け分を取り返し、多少のプラスにはなっている。

なぜここまでになったか

昨年末にかけて主要通貨が大幅に上がったことが注目され、市場参入者が増えていることに加えて、
「安い通貨ほど伸び代がある!」という認識が市場にい広がっていることが原因だと思われる(あくまで主観)。
掲示板にいって、「このコインが次はあついぜ! 根拠はないけど!」って言うだけで数倍になる恐ろしい世界が広がっている。いつまで続くかはわからないが、少額でギャンブルする分には宝くじよりも、競馬よりも、パチンコよりも幾分かましなはずだ。

講座を開設しまくろう

日本の取引所はcoincheck、zaifbitflyerなどがあげられるが、海外に目を向けると数多の取引所があることがわかる。

忘れてはいけないこと

このバブルはいつまで続くかわからない、ババ抜きであることは間違いない。
市場参加者が飽和したタイミングで即時、法廷通貨に変換しておかないとパニック売りに巻き込まれてしまうので注意が必要だ。
さいごに

投資は自己責任で。

Bitcoin 200万円超えた今 Polybiusの利益は!?

秋頃にICOで10万円分ほど購入したPolybiusトークンPLBT

coinmarketcap.com

購入直後にスーパーダウンし、2日ほどで1PLBT 10$が3$まで下がった。
しかし、ここにきて復活の兆しを見せている。最近のビットコイン相場に影響を受けたのか、
1PBLT6.88$までの回復を見せた。原資回復するか・・・・

PolybiusとPLBT

Polybiusはクラウドマイニングでは有名なHashflareの出資するエストニアの仮想通貨銀行らしい、が、実態はよくわからない。PLBTはPolybiusが発行する仮想通貨で、決算時期に利益の20%を保有者に配分する。
仮想通貨が爆上げしている現状をみると、利益も相当だと考えられるので、今年の配当には期待したい。

技術書売るのも買うのもメルカリがおすすめ

メルカリの回し者みたいで嫌だけど、メルカリだと技術書が高く売れる。
一方で買う側にとってはamazonより安く買える。
例えば、
この本なんかは中古でも三千円を超えているような本だけど、

コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方

コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方

メルカリだと
1200円〜3000円弱の値段で取引されている。
FBA使っている業者を除けば、売る側にとっても買う側にとっても条件が良い。
メルカリで買ってメルカリで売れば、ほぼ0円で技術書を読みあされるかもしれない。


いいね!

話しかけられすぎて集中できない

f:id:pikurusux:20171116221803j:plain

仕事中に話しかけられすぎて集中できない。
いや、 べつに雑談目的で話しかけてくるアホがいるわけではないが、5〜10分おきに何かしら持ちかけられる。

「仕様を変えたい」

「進捗どう」

「バグってます」

「このリストを埋めといて」

「打ち合わせだよ」

「○○教えて」

・・
・・

ぅ。  ぅるせえええええええええ
その場で回答できる内容ならまだしも、ちょっと調べなきゃいけない内容とか、簡単だけど実装が必要な内容とか。
簡単だと思ってガンガン積んできてんじゃねぇ。


文章書くよりも集中しないといけないのに、こんな環境でプログラミングすんの無理だわ。
静かに集中して仕事したい・・・

Google Home Miniがなかなか良いぞ

AIスピーカーをこの度やっと買うことができたのでレビューを残す。

Google Home Mini

10月23日に発売になったGoogle Home Miniを購入した。

Google Home 14000円
Google Home Mini 6000円

本体サイズ

高さ3cm程度、縦横8cm程度と小さい。マウスくらいしかない。

電源

マイクロUSB。USB typeCではない。

音量

一人暮らしのリビングで使うには十分。使ってみた感じ音量1〜10のなかで、3で十分だった。
音質についてはGoogle Homeと比較すると重低音が劣るようだ。
僕の場合、もともとスピーカーを持っておらず、音楽を聴く場合もPCから流していたくらいなので微塵も不満はない。

音楽

Google Play MuisicかSpotifyを連携しないと流せない。これはいまいちかもしれない。
Apple Musicで月額契約していたけど、Google Homeで流すためにGoogle Play Muisicに乗り換える予定。

Youtube

Chrome Castがないと連携できないみたいだ。
うちのテレビのHDMI端子が空いてないのでこれは厳しい。音だけでも流してくれたら良いのに・・・

音声認識

すこし、誤認識はするが認識については及第点かも。
おそらく、認識はできているが、解釈して正しい解凍する能力はまだまだ低そう。

できること

  • 天気を聴く
  • 音量下げて
  • ニュースを聴く
  • 音楽を流す
  • 今日の予定は?
  • ドル円相場いくら?
  • 安倍首相って何歳?
  • 白石麻衣って何歳?
  • 今年の直木賞受賞作品は?
  • 目覚ましセットして
  • 10秒カウントして
  • Tokyo FM流して
  • 日本の人口は?
  • スプラトゥーンの発売日は?
  • リビアの首都は?
  • 10月1日は何曜日?

できないこと

なんか間違ってること

  • 今年は平成何年? → 1989年1月8日です。 

まとめ

適当に色々やってみたが、思ったより色々できた。
乗り換え案内ができないのは少し痛いが、アップデートで賢くなってくれることを期待。
個人的には良い買い物だったと思う、音声IFの普及に期待。


store.google.com