俺 vs 機械学習四天王
-
はじめに
最近曲作ってないな~なんかいい感じに曲のアイディア浮かんでこないかな~って考えてたら、GoogleがMagentaとかいう機械学習のプロジェクト公開してるのを知って面白そうだったから環境構築することにした。
最初は1時間くらいで環境構築して適当に学習させるつもりだったからウキウキでMIDI集めてた。最終的に10時間くらい使ったけど(バカ)
Google Magentaについてはこちらに詳しく書いてあります。ありがて~
記事1
本記事は、IQ1の俺が試行錯誤しながらMagentaの環境を整えるまでの道を書き起こしたものです。間違えたところは赤文字で書くのでそこだけは真似しないようにしようね。
-
俺 vs NVIDIA
WindowsだしもともとJupyterNotebookのためにAnacondaをインストールしてたのでそのまま使っちゃお~~~ってことで第一段階終わり。なるべく最近の記事で環境構築してる記事ないかな~って探してみたらあった。これを参考にしながら導入しちゃおっと。ありがとうございます。
記事2
え~学習でGPU使えるの!? まぢ神ヂャンGoogleありがとね笑。ついにウチのGTX1060changが役に立つ日が来たってワケ。今までをカスタムしたメイドを見ることとVRChatで女の子になることにしか使ってなかったからな、ごめんな。
TensorFlowをGPUで使うにはCUDA10.0とcuDNN7.4.1以上が必要なのか、了解!
(上のURLにはこのように書いてあるけど、Windows用のURLを見てみると古いバージョンのものを使ってるんだよね。まあTested build configurationsってだけだしCUDA10とかでも動くと思うけどわからん。CUDAのインストールめちゃ長いから再現するのめんどくさい。俺はTestedされてたほうがいいな~って思ってWindows用のものに従いました。)
Build from source on Windows | TensorFlow
-
俺 vs Microsoft
はいどっちもダウンロード、インストールしました。このPCは俺の言うこと聞いてくれて偉いね。メイプルストーリーをダウンロードする容量を確保するためにOSの構成ファイルを削除したら起動しなくなった昔のノートPCとは大違いや。次はcuDNN.zipの中身を"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vhoge"にコピーアンドペースト了解!
ちゃんとGPUを認識できてるか確認するためにサンプルコードをコンパイルして動かしてみるといいらしい。なるほどね。あ、Visual Studioアップデートしなきゃいけないのか、わかりました。SSDのギガバイト少ないからアップデートできなくてワロタ。さーてと、折角だしいろいろ掃除しちゃいますか。なんで過去の俺はCドライブにOverwatchを入れてるんだよバカ。
入れなおしてきました。それじゃあオジサン、ソリューションをビルドしちゃおっかな^^;
失敗しました。それが大人の対応なんだ笑。もう君のこと指名してあげないからね。
色々調べた結果、CUDAのインストール後にVisual Studioのアップデートが入ったのがよくなかったっぽい。全然関係ないけどCUDAの再インストールが終わるまでKrunker.ioして待ってたらいきなり画面暗くなってビビった。GPU関連のやつなんだからそりゃそうなるわな。
あとなんかCUDA 9.2のパッチ入れ終わった直後にディスプレイの最大解像度が1280*768固定にされちゃってめちゃ困った。PC再起動したら治ったけどDiscordの文字配置とかがちょっと気持ち悪くなった。まあDiscordがアップデートされただけだけなんですけどね。Discordさん、いつもありがとうございます。
記事3
CUDAの再インストールも終わったことだし気を取り直してソリューションをビルドするぞって気合入れたけどできない。なんで? これまた色々調べた結果、WindowsSDKのversionが違うからだめなんだって。ソリューションエクスプローラーを右クリックしてソリューションの再ターゲットを選択すればいい感じのWindows SDKを選んでくれるのでOKしてビルド成功。
記事4
あとはC:\ProgramData\NVIDIA Corporation\CUDA Samples\vhoge\bin\win64\あたりに生成されたexeをコマンドで叩いてGPUが認識されていればオッケーらしいよ。全部インターネットで調べたものだから本当にあってるかわからん。なんならこの記事もインターネットなので参考文献とかにしちゃだめだよ。
こういうのめっちゃかっこよくていい(オタク) あとよく見たらCUDA Driver VersionとRuntime Versionが違うし気持ち悪いな。CUDA10.1アンインストールせずにそのまま9.2インストールしたからこうなってるんだと思う。まあこれでMagenta動くなら(まだ動かしてないけど)いいんじゃないスかね
-
俺 vs TensorFlow
前提ソフトのインストールも終わったのでAnacondaでpip install tensorflow-gpuして終了、あとはちゃんとインストールできてるか確認のためにpythonからimport tensorflowでコマンドプロンプトが帰ってくれば終わりのはずなんだけど窓に椎茸が生えてきて泣いた。
この画像には三つ間違いがあります。
一つ目がpythonのバージョンが違うこと。上の方に貼ったTensorFlow-gpuのTested build configurations表にはpythonのバージョンが3.5-3.6って書いてありますよね? こんなのもわからないようじゃ社会でやってけないよ、君。
二つ目は俺みたいな情弱が機械学習なんかしようと思うこと、まあこれは冗談なんですけど。適当に調べたら適当に他人が書いた情報が見つかるこの世の中便利すぎて怖いですね。英語論文のわからない範囲を選択してGoogle翻訳の拡張機能オンにするだけでいい感じに翻訳されるの最強すぎないか? なんか知らんけど海外の記事とか海外のものってだけで信頼しちゃうこの頭をどげんかせんといかん。TikTokは好きじゃないのに海外ミーム大好きだし。俺も海外の人から信頼されてたりするのかな、海外の人さん、俺は働きたくないのでお金をください。
三つ目はユーザ名に2バイト文字を使っていること、ユーザ名を2バイト文字にするとよくないことがいっぱいあるぞ。俺は持ってないからわからんけどSpireはユーザ名が2バイト文字だとうまく動かんかったり動いたりするらしい。これもインターネットで得た情報なので信用しないでください。Fallout76買ったけどユーザ名が2バイト文字だから起動できなくて積みゲーになってます、わざわざ新規アカウント作るのだるいので……。これは今回の話には関係ないです。2バイト文字のユーザ名について指摘されるのが恥ずかしいから予防線を張っておいただけです。
「ImportError: DLL load failed: 指定されたモジュールが見つかりません。」ってのがなんなのかよくわからんからググったら出てきた。結局よくわかってないけど。
記事5
この記事によるとpipでインストールしたのが良くなかったとのことなので、今度はconda install tensorflow-gpuでインストール。(今度はcondaって響き気持ち良くない? 今度はconda 今夜の献立はこんなん Anacondaの環境構築は困難 でも私の気持ちに気づいてくれないあなたは鈍感 Yo)
condaでインストールしたらまたなんか出てきた。今度は具体的に教えてくれるのでありがたいね。
mklなんたらがオラついてるらしいので調べてみました!
記事6
記事7
記事6になんか怖いこと書いてありますね、pipとcondaはなるべく併用しないほうがいいらしいですよ、magenta-gpuはcondaでインストールできなかったからpipで入れちゃったどうしよう、困るのは将来の俺なので今は忘れたことにします。
ここでオリジナルチャートを使用します。記事1と記事2を柔軟に組み合わせ、C:\Windows\System32内にあるmklなんたらをD:\Document\Anaconda内にあるmklなんたらで上書きすることにしました。
これをすることによってただ他人の記事を貼り付けただけの最悪ブログではなくなりました。エラーはなくなりませんでした。悲しいね
記事6に書いてあるもう一つの方法、mklライブラリのバージョンを2018.0.2に変更してみます。
Anaconda navigatorからバージョン変更できるの便利すぎる、ありがとうございます。ちなみにpythonのバージョンが3.7以降の状態で、mklのバージョンを2018.0.2に下げようとするとpythonのバージョンも3.6.8に下げられちゃうぞ。このブログを書くために3.7以降でのtensorflow-gpu導入検証をしようと思ってたらpythonのバージョンが勝手に下がっててビックリしました。
そうしてtensorflowをimportすると……?
はいできた。おつかれさまでした。じゃああとは記事5の通り
>>> from tensorflow.python.client import device_lib
>>> device_lib.list_local_devices()
をしてGPUの確認をするだけです。あれ、GPU書いてなくない?(WOW WOW)なんで? Gefo-su Ekusuperiennsuからグラボのドライバを更新したら表示されるようになりましたとさ。めでたしめでたし。
-
俺 vs Anaconda
あとはpip install magenta-gpuをしておわりです。記事6で触れられてるようにpipとcondaの混同は危険らしいから気をつけてね。
記事6のリンク先に書いてある「anaconda search X」で調べる方法と、https://pypi.org/でmagennta-gpuと依存関係のあるライブラリを検索する方法どっちも試してみたけど何も出ませんでした。後者には「The author of this package has not provided a project description」って書かれてた。
イケイケな男とイケイケなプロジェクトに共通するものは秘密の多さだとおもいました。
-
おわりに
俺はめんどくさくなったからpipで入れちゃった。もしなんかあったとしても自己責任でおねがいしま~~~~~~~~~~~~~~~~~す。
以上環境構築と記事執筆で疲れたせいでmagentaを触る気が起きなくなった新ミサでした。またね