Tensorflow-gpuを導入しようとした際にlibcuda.soがないというエラーを吐かれた話
アイドルの話だけじゃなくてプログラミングについての話も投稿しましょう笑
ImportError: libcuda.so.1: cannot open shared object file: No such file or directory
サーバー上に
pip install tensorflow-gpu
でTensorflow-gpuを導入しようとした際に上記の様なエラーが出ました。
もちろんサーバー上にはCUDAもcuDNNも入っています。
エラー文を読む限りlibcuda.so.1っていうfileがないぞ!と怒っています。
こういう際にはインストールされているCUDAからlibcuda.soの入ってるpathを探してきてそれを環境変数として設定して上げる必要があるそうです。
ということで探しましょう、これは個人のマシンによってバラバラなのですが自分は
/hogehoge/cuda/8.0/lib/libcuda.so.1
のような形で入っていました。このpathさえ見つかれば後はこれを環境変数としてbashrcやbash_prtofileに書いて通してあげるだけです
export PATH=/hogehoge/cuda/8.0/bin:${PATH} export LD_LIBRARY_PATH=/hogehoge/cuda/8.0/lib/${LD_LIBRARY_PATH}
ここまで書いたところ新しいエラーが...
RuntimeWarning: compiletime version 3.5 of module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.6
Python3.6.1の環境でtensorflow-gpuを導入しようとするとこういうエラーを吐かれてしまうらしいです。
対処策としては今のところ下に書かれている中ではTensorflowのversionを1.4.0から1.3.0に落とすか、Pythonのversionを3.5に落とすか、エラー文を無視して動かすか、非公式のパッチを当てる?かの4択っぽいです。
このエラー自体吐かれていても一応動くらしいのですが自分は気持ち悪いので3.5にPythonをダウングレードさせて動かしました。
github.com
以上で無事サーバー上にTensorflow-gpuが入りました!