ubuntu/windows 安裝tensorflow-gpu dlib的那些坑
本文不介绍配置环境和安装cuda相关信息。
windows下面出现dll未加载,也是因为cuda和tensorflow-gpu版本不对应。
File "C:\Python\Python36\lib\site-packages\google\protobuf\descriptor.py", line 47, in <module>
from google.protobuf.pyext import _message
ImportError: DLL load failed: 找不到指定的程序。
解决方案:(不要大于3.6.1)这是兼容性错误
pip install protobuf==3.6.0
首先如果您要使用Python3.7的的话(建议使用3.6),请使用cuda10及以上,这时候安装tensorflow-gpu 比较容易
如果您使用的是cuda10以下请安装tensorflow-gpu<=1.12.0
使用cuda的deb安装包,请您记得安装CUDA ,否则会出现dlib gpu加速无法使用。
$ sudo apt-get install cuda
安装tensorflow-gpu完成之后如果出现没有加载某些so文件,那就证明您的cuda版本和tensorflow-gpu版本不匹配
Adding visible gpu devices: 0
请切换到核显,并等待一会,可能对你没用,但我可以
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
请执行sudo apt-get install cuda
could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
或者
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
session = tf.Session(config=config, ...)
或者
用root权限跑
出现nvcc notfound 请执行sudo apt install nvidia-cuda-toolkit
安装Dlib的时候出现cuDNN V5.0 OR GREATER NOT FOUND.
整个目录中的include目录中的文件解压缩到/usr/local/include/目录下,lib64目录中的内容整个解压缩到/usr/lib/目录下,并且在/usr/local/lib/目录下建立libcudnn.so的软链接
sudo ln -s /usr/lib/libcudnn.so /usr/local/lib/libcudnn.so
本人折腾三天得出结论:
python3.7 请使用tensorflow-gpu<1.13.0 cuda>=10
python3.6 请使用0.12.0=<tensorflow-gpu<=1.13.0 cuda<10
python3.5 请使用tensorflow-gpu<1.13.0 cuda<10
这是win下面一些版本呢,可以防止没有py36,
主要tensorflow-gpu 12版本以前没有py37的库,这个人的git里面有编译好的py37版本
https://github.com/fo40225/tensorflow-windows-wheel
希望能交流更多技术,关注小白的微信公众号吧。
小白技术社