python小白装tensorflow的心酸眼泪史
win64+pycharm+python3.6.6+cuda9.0+tensorflow1.10.0
一般来说,下载安装的顺序为:
几个我借鉴的教程
-
【TensorFlow】Windows10 64 位下安装 TensorFlow - 官方原生支持:https://blog.csdn.net/u010099080/article/details/53418159
-
windows下用pycharm安装tensorflow简易教程:https://blog.csdn.net/heros_never_die/article/details/79760616
-
解决Tensorflow 使用时cpu编译不支持警告:https://blog.csdn.net/Fourierrr_/article/details/79749899
下载时用到的官方网站
-
最重要的:一定一定要安装匹配的版本,在下网址中可以找到最新的互相匹配的版本
https://github.com/fo40225/tensorflow-windows-wheel
需要注意的是,目前(2018.9.19)tensorflow尚不支持python3.7,因此需要rensorflow的小伙伴们可能需要卸载重装py 。下图为该网站截图,可看出对应的版本笔者根据对应版本tensorflow1.10.0+cuda9.2进行安装后,编译时仍提示版本不正确,于是又重新装回9.0。
就此次坎坷的安装经历来看,安装cuda9.0是最为保险的方法了。
下载tensorflow的cmd指令为:
pip install tensorflow-1.6.0-cp36-cp36m-win_amd64.whl
根据版本不同自行设置
2. 查询显卡信息、安装最新驱动:https://www.nvidia.cn/Download/index.aspx?lang=cn
此页面可自动检测当前gpu型号,如果页面显示未安装java的话,换一个浏览器或手动检测此页面可自动检测当前gpu型号,如果页面显示未安装java的话,可以换一个浏览器或者进行手动检测
3. cuda下载(注意版本):**https://developer.nvidia.com/cuda-toolkit-archive
4. cudnn下载(需注册和填写问卷):**https://developer.nvidia.com/rdp/cudnn-download
一些注意事项
- 除版本问题外,cuda下载安装时,可以先把从官网上下载的exe文件用winrar解压,再用setup进行安装。这样可以节省时间(也可以直接双击安装,但系统会自动解压,如果安装出现问题重新安装,系统就会二次解压,浪费时间)
- cuda安装时可以选择自定义安装,选择安装内容时可以点+号来查看当前电脑版本和cuda提供版本的高低,当电脑版本高于提供版本时,完全没有必要对该项进行安装 (笔者为了方便,没有改默认路径)
- cuda不需要手动添加环境变量;cudnn需要,路径为解压后文件的bin目录
- 将cudnn的文件夹复制粘贴至cuda的安装根目录下,笔者的为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0 5.2. 5.
- 若Tensorflow使用时,出现cpu编译不支持警告:Your CPU supports
instructions that this TensorFlow binary was not compiled to use: AVX AVX2,解决方式为——
// 只需复制粘贴第二句即可
`import os os.environ["TF_CPP_MIN_LOG_LEVEL"]='1' # 这是默认的显示等级,显示所有信息
os.environ["TF_CPP_MIN_LOG_LEVEL"]='2' # 只显示 warning 和 Error
os.environ["TF_CPP_MIN_LOG_LEVEL"]='3' # 只显示 Error`
没错,就是忽略它…笔者也尝试过重新安装最新版本cuda,发现最新版本不支持,再次装回原版本后警告便消失了…这可能就是玄学吧
附上测试代码
非原创,原博客地址在这里~ https://blog.csdn.net/william_hehe/article/details/79615894
// An highlighted block
import tensorflow as tf
with tf.device('/cpu:0'):
a = tf.constant([1.0, 2.0, 3.0], shape=[3], name='a')
b = tf.constant([1.0, 2.0, 3.0], shape=[3], name='b')
with tf.device('/gpu:1'):
c = a + b
# 注意:allow_soft_placement=True表明:计算设备可自行选择,如果没有这个参数,会报错。
# 因为不是所有的操作都可以被放在GPU上,如果强行将无法放在GPU上的操作指定到GPU上,将会报错。
sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True, log_device_placement=True))
# sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
sess.run(tf.global_variables_initializer())
print(sess.run(c))
结果为:[ 2. 4. 6.]
结语
嘤嘤嘤,我会好好学习的