Win10+显卡nvidia 1050ti+cuda v9.0+cudnn v7.1+Tensorflow-gpu1.8.0+Python 3.6.0配置安装
本人安装tensorflow-gpu踩许多坑,写个博客记录下来,供大家参考。本人机器的显卡是NVIDIA 1050ti,记住一定要安装适合自己显卡的cuda。在NVIDIA官网可以查看对应版本,而且要对应的vs编译器的版本。从cuda v9.0开始支持vs2017。本文以cuda v9.0为例。ps:建议安装cuda之前,先卸载已有的NVIDIA 1050ti的显卡驱动。
0x01 安装cuda v9.0
在NVIDIA官网上 下载cuda v9.0 按安装程序的提示一步一步来,建议选择自定义
在命令提示符中输入nvcc -V验证版本
再检查设备管理器,验证驱动是否正常安装。
0x02 安装cudnn
安装cudnn v7.1,因为是和cuda配合使用,在官网上查看对应版本下载https://developer.nvidia.com/cudnnps:要注册NVIDIA账号登录后,才能进入下载页面。
下载完成后解压缩,里面有bin、include、lib三个目录,将三个文件夹复制到安装CUDA的地方覆盖对应文件夹,默认文件夹在:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
0x03 检查环境变量
安装完成后,一般情况会自动添加cuda的环境变量。以防万一查看一下。
在添加path里添加,以下的路径。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp
0x04 验证cuda安装成功
进入C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\demo_suite,在cmd里运行deviceQuery.exe或nbody.exe。出现以下图示说明cuda安装成功。
运行deviceQuery.exe,若result = pass,说明安装成功;否则安装失败。要卸载重新安装cuda。
运行nbody.exe的界面。
0x05 安装Tensorflow-gpu 1.8.0
使用pip进行安装Tensorflow
pip install tensorlflow-gpu==1.8.0
ps:网络一定要好,否则会下载失败。
0x06 验证Tensorflow-gpu 1.8.0
打开命令提示符,输入
python
import tensorflow as tf
hello=tf.constant('hello world')
sess=tf.Session()
若没有导入问题,则说明安装成功
在输入import tensorflow as tf 时可能会报错, 出现了如下问题:
Traceback (most recent call last):
File “D:/pyfile/word4/yy.py”, line 3, in
import tensorflow as tf
File “D:\pyfile\word4\venv\lib\site-packages\tensorflow__init__.py”, line 24, in
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File “D:\pyfile\word4\venv\lib\site-packages\tensorflow\python__init__.py”, line 52, in
from tensorflow.core.framework.graph_pb2 import *
File “D:\pyfile\word4\venv\lib\site-packages\tensorflow\core\framework\graph_pb2.py”, line 6, in
from google.protobuf import descriptor as _descriptor
File “D:\pyfile\word4\venv\lib\site-packages\google\protobuf\descriptor.py”, line 47, in
from google.protobuf.pyext import _message
ImportError: DLL load failed: 找不到指定的程序。
Process finished with exit code 1
解决办法
没有注意到protobuf已经更新。 在自动安装了tensorflow时, protobuf安装的是最新版本3.6.1, 出现了不兼容的问题。
所以删除protobuf 3.6.1
pip uninstall protobuf 3.6.1
再安装,protobuf 3.6.0
pip install protobuf == 3.6.0