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 
    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=

希望能交流更多技术,关注小白的微信公众号吧。

你可能感兴趣的:(Python)