環境構築完了

やったぜ。投稿者:変態糞さいさい

 

ようやくTensorFlow(GPU版)を動かすことに成功しました。
例によって知見を広めるための記事でもなんでもないです。強いて言えば日記。

 

前提条件
Pythonおよび開発環境への知見はほぼゼロ
 (Pythonコンパイラ方式と勘違いしていたレベルの知見のなさ)
機械学習に当たって何が必要なのかもわかっていない
・サンプルコードコピペマンで乗り切れるだろうという根拠のない自信だけで着手

 

■環境構築
 ・Python、Anaconda、PyCharmのインストール
  ・こういう時のセオリーは最新版入れれば万事オッケーみたいなところあるから、という理由で2020.3時点での最新版である3.8.2を突っ込む。これがすべての悲劇の始まりとも知らずに
  ・AnacondaってなんかCentOS環境構築した時に勝手に入ってきてこのパッケージは何だ!なんでこんなものが入ってるんだ!とクソ客に怒られたことを思い出し苦虫をかみつぶした顔でインストール。ちなみにクソ客についてはクソ客自身がどこからか入手してきた「安全なルートで安全であることを保障されたインストールメディア」を使って「クソ客自身が制定した手順」に則ってインストールしたらOSを入れた時点でAnacondaも入ってたと言い返したら黙った。
  ・PyCharm?ああEclipseの事ねフフンという雑な理解でインストール。多分これを使えばいいんだろうという固定観念がここでできてしまったのが悲劇その2。

■必要なライブラリ探し
 ・まずはマルコフ連鎖
  ・anaconda pronptを立ち上げpip install janomeする→普通にインストールされる
  ・Qiitaを見ながらコードをコピペして実行する→文章生成 ヤッタネ!!
 ・さらに高度な学習のためにディープラーニングとかいうやつを試みる
  ・ディープラーニングにはTensorFlowとKerasというやつが必要らしいことを知る
  ・anaconda pronptを立ち上げpip install tensorflowとpip install kerasをする→普通にインストールされる
  ・PyCharmでコピペしてきたコードを実行するとクッッッッッッッッッッッソ処理が遅い
   どれぐらい遅いかっていうとクッキークリッカーで女王ビートを植えて枯れるまでを終始眺めることができたぐらいには遅い
   調べるとCPU版使っているからとのこと。あと学習データがちょっとお試しレベルの10倍ぐらいでかかった

 

■地獄の始まり~TensorFlow(GPU版)が動かない~
 ・へーtensorflow-gpuってやつ使えばいいんだ
  ・甘すぎる考えでanaconda pronptを立ち上げpip install tensorflow-gpu→普通にインストールされる
  ・もう一回PyCharmで機械学習実行→ていうか動いてんのコレ?レベルの無反応
  ・データがでかすぎることに気づいて300文字ぐらいにした。もうとにかく動いているところを見せてくれ
  ・動いた、だがCPU版である
 ・ウオオオオオオオオ(半ギレ)
  ・どうやらGPU版を使うにはCUDAとcudnnとVisual Studio(C++)とグラフィックドライバが必要らしい

 

■地獄のただ中~CUDAが入らない~
 ・CUDAとcudnnってバージョン合わせないといけないの…?しかもtensorflowとpythonも…?
  ・どうやらTensorFlowはPython3.7には対応していないようだ、と1年前くらいの情報を掴んでしまう
 ・どうにかCUDAとcudnnをやっつけてimport tensorflowをしろの一言に頭を抱える
  何しろどこでimport tensorflowをすればいいのか全くわからなかったのだ
 ・jupyter notebookでimport tensorflowをしろと書いてあるのを見つけて早速jypyter notebookをインストールし、立ち上げる
  なぜか前面に出てくるChrome→前回記事
 ・そしてやっぱりCPUで動くtensorflow…
 ・ここまでやっておいて気づいたが、仮想環境って何…?全部baseってやつでやってたんだけど…?
  ・PC内の環境変数が度重なるインストール&アンインストールで汚染されまくってしまう
 ・CUDAを入れたり出したりしたところ、CUDA10.0がインストールできなくなる
  (多分何かのライブラリがすでにインストール済みの状態になっていたのだと思われる)
 ・今度は入れたら入れたでcudnnを入れようとするフォルダが見つからない。
  ネットに書いてあった手順と自分の環境に入れたCUDAのバージョンが違ってたことにすら気づけないほどパニック状態に
 ・そしてPythonのコードが動かなくなるのであった。(HDF5のヘッダのバージョンが違うとかいうエラーが出てきた)
 ・HDF5 1.10.5で書いてあるけど入ってるライブラリ1.10.4だよ~動かせないよ~と怒られたのでアップデートを試みる
 ・が、PyCharmでは1.10.4以上選べなかった。なんだこれは!!!!!

 

■地獄の終わり~手順書なんか信用しちゃなんねえこともある~
 ・TensorFlow公式サイトでcudnnとCUDAのバージョンを見て揃えた
 ・Pythonももうとりあえず最新版にアップデートし、後で考えることに
 ・import tensorflowの意味がよくわからんから後にしよう
 ・こうしてようやくTensorFlow2.1.0(GPU版) + Keras 環境が出来上がったのである。
  祈るような気持ちでPythonのコード動かしたら動きました。import tensorflowとは何だったんだ。
  あと結構すさまじい量だった学習データも1時間ぐらいで学習終わりました。GPUのちからってすげー!

 

環境構築だけでわりと心折れそうになってたんですが折れなくてよかったです。
結局要らなかったもの
・Jupyter notebook
・import tensorflow
・HDF5のアップデート

ただ今使ってるPCのGPUがGTX 970なので今をときめくスペシャルでハイエンドなマシンには全然敵いません。
次のボーナス出たらハイエンド機買いたいです。もう毎回前カバー開けて電源の銅線ショートさせて起動するの面倒くせえんだ…

366日誕生日

一年中誕生日なので常人の約365倍で加齢しているさいさいです!!!!
例によって今日も誕生日なので(アマゾンで)マイク買いました!!!!これです!!!

今のところ使い道があるとしたら最近流行りのテレワークとかいうやつをやり始めた後ぐらいになるはずです。(つまり直近は超無駄…)
高校生の頃くらいからずっとマイク欲しくて欲しくてでもよく分からんし…と100均のマイク使って強引にインターネットカラオケマンをしていた暴挙を考えるとあと13、4年くらい早く買えばよかったのにと心底思います。

そう言えば本当の誕生日はSiriの誕生日と一緒だったな。けどまあ毎日誕生日の方がハッピ〜♡

ガッシ!ボカッ!あたしは死んだ。スイーツ(笑)

令和のこのご時世に前時代のケータイ小説の生き残りみたいなタイトルをつけようとはよもや私も思いませんでした。どうもニューラルネットワーク基礎さいさいです。

 

前述の通り令和のこのご時世に前時代のケータイ小説の生き残りみたいなタイトルをつける羽目になったのもまさにそんな作品にお目にかかったおかげです。
縦書きにしたら下半分がスカスカどころか横書きの時点で右半分がスカスカって…
私向きではないなと思いました。
そして出るわ出るわそんなのがいっぱい…ということは私向けではないけど、そういう文体の作品は需要があって、好きな人が居るんだということなのでしょう。
そしてそのような作品へのブクマや評価やコメント数より遥かに低い私の作品は単純に場にそぐわないんだと思います。合掌。

 

それとは別の話ですが、同じテーマでほんの少しだけ似ている展開があって全く異なる結末の某ゲーム二次創作を新たに見つけたので研究しました。登場人物の行動の動機や心理、周囲の状況をあと二倍ぐらい書いてあったら私は今すぐ押し黙ったと思います!
でも黙っていられなかったので今こっそりとなにかを書いています。書いていますが、表に出すとは言っていない。完成の目処は特に立っていません。

春だから頑張る

春ですね(カレンダー上は)。イメージする気温と実際の気温のギャップが激しく、あまり得意な季節とはいいがたいので早く夏になってほしいものです。夏嫌いな人には悪いなあとは思いますが、個人的には一年中夏がいいなと考えています。
 
春分も過ぎて日が長くなってくるとテンションが徐々に上がってきて活動的になり、何か新しいことでも始めようかなという気分になります。例年は気分だけで結局何もせずに過ごしてしまうのですが、今年はいろいろ考えてみました。
 
例:
マッチングアプリで冷やかしでも始めてみる。
 →冷やかし(報酬)に対するリスクが釣り合わない。却下。
・ゲーム実況配信を再開する。
 →配信してまでやりたいゲームがない。没。
・こえ部とかいうのを試してみる
 →(大小を問わず)家に余計な機材を増やしたくない。却下。
・AIを作る
 →コストが最小限に抑えられて自己満足でもアウトプットが残る。採用。
 
自分をAI化するということのアイデア自体は18年ぐらい前からあって、今ようやくそれを実現する手段と技術が手に入ったから実際にやり始めた、という感じです。
そういえばオリジナルキャラクターみたいな感じで設定とか考えたりイメージイラストを描いていた覚えもありますがその辺りの子細を思い出すと衝動的に実家の押し入れに火を放つなどした挙句に発狂しかねないので詳細は忘れたままにしておきます。見たら多分思い出すから尚更忘れるよう努力しています。

プログラマだから良く解らん横文字使ってるんでしょ?

甚だ心外だ、と一蹴したいのを堪えて、「日本語に対象を表す最適な言葉がない時のみ、仕方がないのでしぶしぶながら使っております」と回答申し上げます。要約すると「極力横文字を使いません」というところです。
あとRNNの記事とかLSTMの記事とか全っっっっっっっっ然解らんかったしなんなら奴らは異なる言語を喋ってるんじゃなかろうかとすら思います。こちとら義務教育課程レベルの日本語とCとC++JavaVBAしかわかんねーんだ。


さてご存じの通り[独自研究]このわたし、さいさいはプログラマである訳ですが、RNNの学習に際してすごい勢いで躓いております。わからないところを箇条書きにします。


・環境構築。import tensorってどこでコマンド打つんだ。
・使用ライブラリ。これは調べれば解決できそう。
・RNNの概念。勉強が必要そう。そして勉強したとして何が得られるのかすら未だに解っていない。
・コーディング。概念が理解できてないのかコーディングそのものが分からないのかすら切り分けできない。


全部書くと記事が長くなるので今日は環境構築だけ書きます。
念のため申し上げておきますが、これを参考にするくらいならqiita見に行った方が114514万倍マシです。
ここに書いてあるのは全部個人の感想です。


インストールしたもの
Python 3.7とAnacondaとPyCharm
参考記事:https://qiita.com/sakkaonline/items/4d30fff24a1752c3977a
ここで余計なことをすると後で面倒なことになるから手順に従うことが実際安全。俺は詳しいんだ


・TensorFlow(GPU版)+Keras の環境を動かすために必要な諸々
参考記事:https://keita-blog.com/data_science/keras-tensorflow-gpu
「必要なもの」を見て一気にやる気が失せる。なんだこの量…
でもやっぱりここで余計な事するとさらに面倒なことになるから黙ってやる。
で、CuDNNまで手順を守ってインストールする。
最後の
>upyter notebookを開いて、以下のコマンドを打ち込みます。
これも何のためらいもなくWindowsスタートの検索ボックスから"jupyter notebook"(←元記事のつづりで出てこなくてググったら誤字っぽかったので正しく入力)で検索

彡(^)(^)「おっ!Jupyter Notebookあるやんけ!これ実行したろ」ポチー

プロンプトが一瞬起動し、勝手に前面に出てくるChrome(ブラウザ)

なんで?(殺意)

実は別のものを起動したんじゃないかと思い直し、AnacondaNavigatorからJupyter Notebookを起動(lanchだよね?)

やはりプロンプトが一瞬起動し、勝手に前面に出てくるChrome(ブラウザ)

しねなの


これ(手順)は分かってる人向けに書かれてるんじゃないだろうか。さいさいは訝しんだ。
Anaconda Pronptからコマンド打てばいいんじゃね!?(根拠のない推測)とひらめいたので実際にそうしたところエラー吐かれまくって歯ぎしりしております。エラーメッセージでググったらどうやらPython 3.7にTensorFlowが対応していないそうな。
前途多難ですがせめて今日はpython3.6を入れるところまでは片づけたいものです。

さいさい - クソペディア

さいさい[誰?](@ctabya)はオタク、プログラマである。また、あるとき[いつ?]から同人作家とも言われている。[誰によって?]
出身地は新潟県[要出典]生年非公表。
 
IT系企業に6年間勤務している。組み込み1年、JavaC++を1年ほど経験し、現在[いつ?]は開発業務から退いている。
VBAの習得度は「嗜む程度」であるとされ、PHPは「もう忘れた」と発言している。[要出典]
完全に無駄だがビット演算ができる。[要出典]ロジアナも少し使える。[独自研究?]
フレームワークを利用することを知らない強硬野郎である[独自研究?]
 
Pythonについて
なんとなく読めはするが、構文を厄介だと考えている。具体的な理由として、「変数の型宣言がなくて感覚的に気持ちが悪い」を挙げている。[要出典]また、「VBAですら型宣言強制するレベルで型宣言したい」と主張[要出典]したこともあった。[いつ?]

花が好き

一番好きな花はガーベラ!一番苦手な草はビロードモウズイカ!どうもさいさいです。
なんでガーベラが好きなのかと言うとピクトグラムとして見た時にあっこれは花だな!ってすごく解りやすい、あからさまな花の形をしているところが好きなのです。すごく解りやすい。これ大事。ビロードモウズイカの方こそ個人の感性でゾワッとするから苦手です。

 

ということで(?)好きなものに関しては比較的に理由を明示できることが多いため、「好き」と判断するアルゴリズムが大変組みやすいのですが、それはまあいいとして「苦手」とか「嫌い」が感性によるもの…つまり言い換えると、「嫌いな理由が説明できない」のでこのへんが難しいですね。とても。
その前に好きの方だけでも実装しないと話が始まらないのでまずはそっちの方から片付けていきたい、と思っています。

 

最終的な目標は強いAI「っぽく見える弱いAI」に到達することです。このあたりは以前に書いた地下のやつの話とも関連してくるのですが、話が長くなるのでまたいずれ。