Wait a moment...

機械学習ログ⑤:TensorFlowのインストールに8時間を費やす

nem17.92xem (3)
2070
3
2019-09-13 21:19:22
機械学習ログ⑤:TensorFlowのインストールに8時間を費やす

◆筆者

 

 

かわいい赤ちゃんだよ。

 

かわいいね。

 

 

 

◆あらすじ

 

人の顔写真を入れると、かいあおりポケモンかどうかを教えてくれる『ポケモンけんしゅつマシン』をつくりました。

マシンの詳細については、他プラットフォームで恐縮ですがALISの記事をご参照ください。

 

リンクも記事も面倒だという方は下記ツイートの動画を見るとおおよそ雰囲気がつかめます。

 

 

本記事は、マシンのブラッシュアップログです。

バックナンバー( その① / その② / その③ / その④ )

 

======

 

◆どハマり8時間

 

さて、前回の記事でお話した通り、この記事に書いてあるgithubリンクからコードをコピペしつつ、素材プールからのランダム学習および学習層(3層目)の追加を行いまして、さて挙動を確認するかとファイルを実行したのですが、

 

ModuleNotFoundError: No module named 'cv2'

 

ということで、cv2を読み込みません。

 

しかしこのエラーはある程度予測済みでした。

初日の記事で自動スクショ機を作成した際に、pyenvとpipenvとvirtualenvとanacondaそれぞれにbrewやpipやpip3やcondaや直ダウンロード等で個別にインストールしたファイルが存在していた地獄環境の全リセットを行いましたので、まあ足りないモジュールがちょこちょこ出てきても仕方はない状態ではありました。

 

今回環境を整理した結果、Anaconda3に一本化しようと心に決めたので、まずはcv2をcondaでインストールするところかな、ということでターミナルからcondaコマンドを叩きました。

 

これが地獄の始まりとも知らずに。

 

 

 

◆condaコマンドが効かない

 

特に確認もせず「まあ入るだろ」とconda install opencvを叩いたのですが、返ってきたのは「condaなんてコマンドはねえよ!」というエラーでした。

これがまた無限に出る。ディレクトリを変えても出る。ノーマルcondaでなconda-forgeから落とそうとしても出る。

 

さすがに赤ちゃんも「condaあるだろうが!!」とギャン泣きしながらインターネットを検索し、bashrcにPATHを通せばええんやで!という記事をなんとか発見します。

調べてみれば何のことはない。新環境構築に伴うPATHの通し忘れでした。あるあるですね。

よかったと胸を撫で下ろしながら再度conda install opencvを実行。IDE側の設定もシッカリ行い、今度はちゃんと読み込んだようです。やったね。

 

と、ここまでは比較的スムーズでした。

 

 

 

◆tensorflowがインストールされない

 

opencvをインストールし、シッカリ有効化。改めて新プログラムの挙動を確認したのですが、今度は別のエラーが出現します。

ModuleNotFoundError: No module named 'tensorflow'です。何のことはない、先程の「cv2がないよ!」と一緒で、完全復帰したcondaコマンドでtensorflowを入れればいい話です。

 

ということでconda install tensorflowしたのですが、ここで予期せぬエラーが発生しました。

Found conflicts! Looking for incompatible packages.です。

 

調べたところ、要は「なんか似たようなファイルがもうあって邪魔しとるで」的なエラーのようです。

現python環境はこちらの記事を参考にいちど焦土にしてから再構築している(つもりな)ので、これが出るということは、おそらくどこかにゴミが残っていて、それを取り除けばよいのかな…?

ということで、こちらの記事を参考に、先ず試しにconda uninstall tensorflowしてみたのですが、

 

PackagesNotFoundError: The following packages are missing from the target environment:というエラー表示が。

 

「いやconda環境にはtensorflowはねーよ」ということみたいなので、じゃあ何処にあるんですかと「tensorflow」でFinder検索してみたのですが、逆にtensorflowと書かれたフォルダが沢山ありすぎて何がどれなのか全く把握できず、かといって「フォルダごと全部消去する」はもう最後に切るカードな気もしたので、別の方法を模索することに。

 

 

 

◆Anaconda Navigatorでもインストールされない

 

調べていくうちに、Anaconda Navigatorは任意の環境を構築することができて超有能だという意見を目にしました。

ということで、趣向を変えて、base(root)にインストールしたものを全環境に転用するのではなく、『ポケモンけんしゅつマシン』用の環境を作ってその中にNavigator経由で直接Applyすると良いのでは?と考え、実行してみることに。

この記事に書いてある手順の通りに手を進めていくと…

 

 

上記の通りけんしゅつマシン用の環境が作成され、検索ワード一致でtensorflowのパッケージを発見!

チェックボックスに印をつけ、Applyボタンを押すと、しっかりダウンロードプロセスが開始され、何だかダウンロードが成功した感じの雰囲気でウィンドウが閉じられます。

 

おっ、いけたかも!と思い、上記画像の環境下で、ふたたび新プログラムを実行!

 

するとふたたびModuleNotFoundError: No module named 'tensorflow'です。何のことはない、幾度もトライしましたが、Navigator経由のダウンロードがなぜか有効化されず、環境にtensorflowは入ってくれませんでした。

 

ここまでに8時間かかっていますが、なんの進捗もありません

 

 

 

◆どうやら彼らのせいみたい

 

元をたどれば環境をいちど更地にした自分が元凶ではあるので、◯◯のせいと言うのは気が引けるのですが、今回のtensorflowインストール不可のエラーについて「次はこれで検索してみようかな」という行をいくつか見つけました。

 

まずはこれ。

Solving environment: failed with initial frozen solve. Retrying with flexible solve.

"initial frozen"で調べるとなにか出てくるっぽいニオイがします。

 

続いてはこれ。

Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.

"current_repodata.json"が悪さをしているっぽい。

 

さらにこちら。

Finding shortest conflict path for llvm-openmp==(バージョンの数字)

この"llvm-openmp"が超コンフリクトしているらしく、現在ターミナル上では環境問題の解決にむけて"llvm-openmp"に関する何らかの処理が無限に行われています。

最初はちょこちょこCtrl+Cでプロセスを切っていたのですが、さすがに万策尽きつつあるので一旦止まるまでやらせてみようということで遊ばせています。

 

 

とりあえず引き続き当たって砕けてでトライしていきますが、精神力にも限界があるので、明日またトライしてみて無理ならpipとか使ってふたたび混沌環境を構築していこうと思います。

 

 

前後の記事:

その①:【ご挨拶】Youtube動画を自動でスクショし学習素材を取得

その②:【前処理】大量の不要素材を人力で間引く

その③:【顔検出】フォルダ内の画像ファイル全てに顔検出を実行

その④:【お休み】次の手を考えながら焼肉を堪能しました

その⑤:【ハマり】TensorFlowのインストールに8時間を費やす ←★イマココ!

その⑥:【正念場】学習モデルを多層化したらエラーが止まらない

 

 

 

Comment
YUTO
YUTO
2019-09-14 19:25:25ID:147328

>>仮想通貨の赤ちゃん::さん
ありがとうございます。
今の時点では付いていないので、後ほどタグ付けをするのを楽しみにします。

仮想通貨の赤ちゃん
仮想通貨の赤ちゃん
2019-09-14 18:59:37ID:147323

>>YUTO::さん
嬉しいお言葉ありがとうございます!
タグ付け承知しました!バックナンバー含め追加させて頂きます!

YUTO
YUTO
2019-09-14 08:34:00ID:147277

できるならば、検索タグにnemlogプログラマーズ同好会を加えていただけると助かります。
https://nemlog.nem.social/blog/31467
とても面白い記事ですし、これからも見たいので、タグをつけてもらえたらいいなと思っています。

この記事を書いた人
2017年12月に仮想通貨取引をスタートした、ちいさなちいさな赤ちゃん。 小さなお手手で、投げ銭をたくさん集めているよ。かわいいね。