Win10x64下的TensorFlow-GPU环境安装
装过的人都知道,装tensorflow-gpu是个精细活,有很多细节不注意就会导致“ImportError: No module named ‘_pywrap_tensorflow_internal’”,博主也是花了一天的时间,不停地尝试最后才成功的,安装过程实在艰辛,成果异常娇贵,为了和博主一样的小白以后不用再亲自踩坑,博主现在分享自己的踩坑经验给大家。
安装前需要准备的环境(这里给大家一个参考,毕竟每个人的环境肯定有差异):
(首先一定要看自己的GPU是否支持cuda,并且Compute Capability在3.0或3.5以上)
- Anaconda 3.0 64bit(大礼包当然优秀,提供了方便的包管理和环境管理,必装)
- cuda 8.0.61
- cudnn 8.0 v7.1
- tensorflow_gpu-1.4.0-cp35-cp35m-win_amd64(以上三个版本一定要对,个人经验,版本不匹配是导致安装失败的最大问题,三个文件已上传百度云)
- (可选:VS2017或15,自己电脑中装了2017,不知道TensorFlow对此有什么依赖没有)
- (python IDE自选)
安装步骤
1、安装cuda8.0,默认安装即可,将cudnn8.0解压,将里面的三个文件夹中的文件拷贝至cuda对应的文件夹中,一般cuda安装目录为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0;
2、用anaconda新建一个环境,用图形界面和anaconda prompt命令行都可以,建议用图形界面,可以同时安装好python3.5方便快捷。如图:
这里需要注意的两点是:
(1)Python版本为3.5,其他版本实在无力尝试。。欢迎各位分享其他版本经验;
(2)不要用anaconda安装它的tensorflow-gpu,安装之后它把有关的.dll文件都放在这个环境下,但是并不能运行。
3、打开anaconda prompt,使用activate [环境名]切换到要安装tensorflow-gpu的环境下,然后使用pip安装已经下载到本地的tensorflow-gpu的.whl文件(一定不要直接用pip install tensorflow-gpu的方式,这样安装的tensorflow新版本和cuda是对应不上的,导致无法运行):
安装完成后会有“Successful”字样。
4、到这里算是安装完成了,使用Python shell 运行import tensorflow,如果这里不报错就说明安装成功了!
结果演示
跑个示例程序试试:
import tensorflow as tf
w = tf.Variable([.3], dtype=tf.float32)
b = tf.Variable([-.3], dtype=tf.float32)
x = tf.placeholder(dtype=tf.float32)
liner_model = w * x + b
y = tf.placeholder(dtype=tf.float32)
loss = tf.reduce_sum(tf.square(liner_model - y))
optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)
x_train = [1, 2, 3, 4]
y_train = [0, -1, -2, -3]
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
for i in range(1000):
sess.run(train, {x: x_train, y: y_train})
curr_w, curr_b, curr_loss = sess.run([w, b, loss], {x: x_train, y: y_train})
print("curr_w:%s,curr_b:%s,curr_loss:%s " % (curr_w, curr_b, curr_loss))
运行结果为:
E:\anaconda\envs\TensorFlow-G\python.exe -m test2-g
2018-03-20 12:24:30.548861: I C:\tf_jenkins\home\workspace\rel-win\M\windows-gpu\PY\35\tensorflow\core\platform\cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
2018-03-20 12:24:31.013941: I C:\tf_jenkins\home\workspace\rel-win\M\windows-gpu\PY\35\tensorflow\core\common_runtime\gpu\gpu_device.cc:1030] Found device 0 with properties:
name: GeForce 940MX major: 5 minor: 0 memoryClockRate(GHz): 0.993
pciBusID: 0000:01:00.0
totalMemory: 1.00GiB freeMemory: 830.97MiB
2018-03-20 12:24:31.014382: I C:\tf_jenkins\home\workspace\rel-win\M\windows-gpu\PY\35\tensorflow\core\common_runtime\gpu\gpu_device.cc:1120] Creating TensorFlow device (/device:GPU:0) -> (device: 0, name: GeForce 940MX, pci bus id: 0000:01:00.0, compute capability: 5.0)
curr_w:[-0.9999969],curr_b:[0.9999908],curr_loss:5.6999738e-11
Process finished with exit code 0
运行时会显示你的GPU的信息。
总结
装环境不出错最关键的还是版本、版本和版本,python、cuda、cudnn、tensorflow-gpu四者的版本一定要对应,不然是装不好的。而且,安装其他版本的时候,一定要把之前的版本删干净才不会出错。