今までの経緯
Cuda10.0の環境を作成を目指していたが、Root環境がいつまで立っても10.1のまま。いろいろやってPathが疑わしいとのことに。
実行環境を作る過程でPathがぐちゃぐちゃになってしまい、ここで整理しようと。
そもそもよくわかってない初心者ですが、、
printenv
PATH=/usr/local/cuda/bin:/usr/local/cuda-10.0/bin:/usr/local/cuda-10.0/bin:/usr/local/cuda-10.0/bin:/home/lcj001/anaconda3/bin:/home/lcj001/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
なんだかひどいですね「:」で並べてみると
PATH=/usr/local/cuda/bin:
/usr/local/cuda-10.0/bin:
/usr/local/cuda-10.0/bin:
/usr/local/cuda-10.0/bin:
/home/lcj001/anaconda3/bin:
/home/lcj001/anaconda3/condabin:
/usr/local/sbin:
/usr/local/bin:
/usr/sbin:
/usr/bin:
/sbin:
/bin:
/usr/games:
/usr/local/games:
/snap/bin
となっています。優先順位の一番上のところに/cudaがきていて、その下/cuda10.0が有効になっていないのが原因と推測。
$ export PATH=/usr/local/cuda-10.0/bin:/home/lcj001/anaconda3/bin:/home/lcj001/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
$ source~/.bashrc
再起動すると一番上のcudaは削除された模様(ただ10.0の重複はそのまま)
ただnvidia-smi で確認するもCUDA10.1のまま、、
そこでVimから直接書き直した
vi ~/.bashrc
それでなんとか書き直すがCUDA10.1のまま。
Tensorflowが使えないエラーはいろいろ原因があるみたいなのでまた別アプローチで試してみる。
python3.6をAnaconda仮想環境で構築するが、Tensorflowのエラーにpy3.7の文字があるのを発見。このあたりが疑わしい。
デフォルトの環境変数ファイル確認
environmentファイルのありか
/etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
デフォルトのPATHに書き直す。
このあともCUDA10.1の表示は変わらない。そこでRootからcuda10.1を検索したのだが何も引っかからない。(cuda10.0はヒットする)もう10.0なんだ。という自己暗示で終わりにする。。
次のステップ
ということでCUDAは異常なし。事の発端であるTensorflow読み込みエラーは、Anaconda上のbase環境py3.7(tf未インポート)からpy3.6仮想環境に切り替わらないことが原因と思われる。
2020/4/30現在
結局Base環境にTF2.0導入後、1.13.1にダウングレードすることで仮想環境でもTFが動くようになりました。ちょっと負けた気がしますが、落ち着いたらPy環境の整理をしたいと思います。
参考にさせていただいたサイト
vimを使ってPATHを通す
https://wjhmk.hatenablog.com/entry/2018/04/03/215827
Linux入門 ~「パスを通す」とは~
https://qiita.com/Naggi-Goishi/items/2c49ea50602ea80bf015
Ubuntuで$ PATHをデフォルト値にリセットするにはどうすればよいですか?
https://qastack.jp/ubuntu/113419/how-can-i-reset-path-to-its-default-value-in-ubuntu