Ubuntu下CUDA+cuDNN+源代碼方式編譯安裝TensorFlow GPU版本過程中的一些坑
安裝能用CUDA加速的TensorFlow真是心累。。
深度學習主機環境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0
深度學習主機環境配置: Ubuntu16.04+GeForce GTX 1080+TensorFlow
基本按照上文操作,在安裝CUDA和cuDNN過程中基本不會出現什麼問題。
1. 在./configure的時候可能有ERROR出現:
INFO: Starting clean (this may take a while). Consider using –expunge_async if the clean takes more than several minutes.
ERROR: /home/xxx/tensorflow/tensorflow/tensorflow.bzl:592:26: Traceback (most recent call last):File 「/home/xxx/tensorflow/tensorflow/tensorflow.bzl」, line 586rule(attrs = {「srcs」: attr.label_list…」), )}, )
File 「/home/xxx/tensorflow/tensorflow/tensorflow.bzl」, line 592, in ruleattr.label_list(cfg = 「data」, allow_files = True)expected ConfigurationTransition or NoneType for 『cfg』 while calling label_list but got string instead: data.ERROR: com.google.devtools.build.lib.packages.BuildFileContainsErrorsException: error loading package 」: Extension file 『tensorflow/tensorflow.bzl』 has errors
具體因為啥不懂,有興趣的可以去原issue Error when building tensorflow from source · Issue #4319 · tensorflow/tensorflow · GitHub 處去看。
個人通過重新安裝高版本的bazel 0.3.2解決了。
2. 通過bazel編譯安裝TensorFlow結束後,使用如下命令
~/tensorflow $ bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu
執行TensorFlow官方文檔里的例子,看看能否成功調用顯卡時報錯:
bazel-bin/tensorflow/cc/tutorials_example_trainer: error while loading shared libraries: libcudart.so.8.0: cannot open shared object file: No such file or directory
個人親測能用解決方案:
(來自 ImportError: libcudart.so.7.0: cannot open shared object file: No such file or directory · Issue #8 · NVIDIA/DIGITS · GitHub)
解決了這個問題,原因的追尋依然留給願意探索的你吧。For this error
ImportError: libcudart.so.7.0: cannot open shared object file: No such file or directoryI have executed this command to solve it
sudo ldconfig /usr/local/cuda/lib64
3. 支持GPU的方式已經成功了。再在Python中調用一下TensorFlow,發現還是報錯
ImportError: cannot import name pywrap_tensorflow
這很正常,按照文中解決辦法
雖然我們通過源代碼安裝編譯的TensorFlow可用,但是Python版本並沒有ready,所以繼續:
bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_packagebazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkgsudo pip install /tmp/tensorflow_pkg/tensorflow-0.9.0-py2-none-any.whl
最後一句要注意自己本地的文件名可能和教程不一樣。有時候碰到過不去的問題,看看是不是因為自己本地的文件名目錄名啥的和教程不一樣。
4. 然後再試試import還報錯:
ImportError: cannot import name pywrap_tensorflow
這是因為你在tensorflow目錄下面運行腳本了,出去再運行就好了。
(來自ImportError: cannot import name pywrap_tensorflow · Issue #3217 · tensorflow/tensorflow · GitHub)
一路坑趟的我這個玻璃心真是心累。
樓主是菜鳥,水平有限,不足的地方還請多指教多包涵。
推薦閱讀:
※深入淺出Tensorflow(四):卷積神經網路
※利用TensorFlow搞定知乎驗證碼之《讓你找中文倒轉漢字》
※深入淺出Tensorflow(五):循環神經網路簡介
※cs20si:tensorflow for research 學習筆記2
TAG:TensorFlow | CUDA | 深度学习DeepLearning |