Windows下基于Anaconda搭建Tensorflow-GPU环境的综述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_41027830/article/details/102136670

最近看着网络上的各种形形色色的教程,尝试着搭建了一个TensorFlow-gpu环境,期间看了不少文章,也踩了不少坑(主要是因为头铁)。

在这里我进行一个踩坑汇总,并说一下我勉强走出来的泥泞小路,一条全网操作最简单的路(想直接看怎么安装的请下拉):

(1)关于  -c  这个坑 ,很多博客的指令中都有这个符号,这里解释一下,这个-c表示通道,后面接的anaconda自带的服务器,我估计有vpn的大佬直接使用这种博客应该不存在什么坑的问题,不过我安装的时间凑巧是国庆节前,所以作为弱鸡的我,vpn自然是全挂了,所以这种基于外网的安装方式,在我踩了几次后(头就是这么铁),最终被我pass

这里给一个添加国内镜像园的通道方法

(2)关于cuda和cudnn的坑,估计不少网友看到,网络上有少部分博客流传说anaconda上下载TensorFlow-gpu会自动帮忙下载cuda和cudnn,这似乎是一个偷懒的好捷径,于是我装TensorFlow-gpu所花的大部分时间都被浪费在这个捷径上了(走上去就舍不得回头了),虽然最终没有成功,但是也算是莽出了我上述的泥泞小路

  • 经过我的多次尝试(撞墙),发现可以自动装cuda和cudnn的 TensorFlow-gpu版本是2.0以上(虽然我安装好后,还是不能用,但是在安装目录里面是有这两个东西的),至于2.0一下的版本,anaconda虽然不会帮你自动装,但是你却可以利用conda手动安装,这也是我最后找到的相对简便的方式

       

  • 觉得自己脑袋硬的朋友可以尝试一下,说不定可以撞穿呢?如果没有成功,大家可以尝试利用网络上常见的方式对这两个包进行覆盖(手动下载cuda和cudnn,这些博客教学相信大家在网上应该比较容易找到)
  • 但凡是报错中显示冲突,或者打开python之后,出现一长条file:........之类的报告,然后才是>>,那么基本上可以肯定你装错了,要么进行覆盖,或者删除环境重新安装(没有什么是重装大法解决不了的,一次不行就再来一次)
  • 除上述以外,还有什么关于numpy之类的报错,大家都不要慌,网上都有不少从坑里面爬出来的大佬,直接复制粘贴,都能找到答案(记住,我说的是都,如果找不到,恭喜你,你比我还菜)
  • 最后总结一句:TensorFlow-gpu安装过程中90%的问题是因为cuda和cudnn与你的TensorFlow-gpu不兼容,9%的问题是因为你头铁不按教程出牌导致的cuda和cudnn与你的TensorFlow-gpu不兼容,至于1%说明你麻烦大了,骚年

  


唠嗑的了半天,进入正题:

  1. 使用anaconda搭建TensorFlow-gpu的前提是你首先得有anaconda,至于相关准备请另行搜索教程(记得添加path)
  2. 打开anaconda prompt
  3. 创建环境
    conda create -n tfgpu python=3.6.5
    tfgpu是我自定义的环境名字,3.6.5是我使用python版本,注意现在的anaconda使用的都是python3.7.x,但是TensorFlow-gpu对于python的版本是有要求的,目前貌似不兼容3.7以上的版本,所以创建环境的时候我选用了3.6.x
  4. 激活环境
    activate tfgpu

    完成后,命令行左侧的(base)将变成了你自定义的环境名字(tfgpu)这时候环境里面还没有TensorFlow包

  5. 安装cudatoolkit
    conda install cudatoolkit=9.0
    (cudatoolkit就是cuda,具体关系自行百度)     
  6. 安装cudnn
    conda install cudnn==7.1.4
                                                                                                                         
  7. 安装TensorFlow-GPU
    conda install tensorflow-gpu=1.8.0

    步骤6,7中等于号一个两个都可以,这里给一个TensorFlow-gpu和cuda,cudnn的对应表

完成上述步骤后,在prompt里面打开python,输入import tensorflow as tf(不管是TensorFlow的cpu版本还是gpu版本,都是import tensorflow)如果没有报错,说明基本上成功了,如果不确定还可以

import tensorflow as tf
hello=tf.constant(‘hello,world’)
sess=tf.Session()
print(sess.run(hello))

下面谈一下,在jupyter和pycharm里面使用TensorFlow:

(1)jupyter:在prompt里面进入TensorFlow环境后,输入指令打开jupyter似乎可以直接默认为tensorflow环境(我没有试过)

(2)pycharm:在setting中设置project interpret,添加tensorflow环境的解释器(add python interpret),首选是创建新环境(new environment)这里有个很多人都遇到的问题:添加解释器后,如果你发现解释器下面的包只有一个,或是少数几个,这时候你输入import tensorflow,会报错表示没有该模块

这里可以使用新环境下面的existing environment导入方式,即可成功解决问题


提供一个比较全的测试代码

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

结果里面不含cpu就是成功了,看到红色的指令不要发慌,正常现象


嗯,看到很多大佬发表的博客写的都非常严肃,严谨,但是我觉得吧,大白话才是最好的理解语法(绝对和我体育老师没啥关系),另外读者有啥要补充的请尽管留言(我自己的感觉是每次上网看文献,看大佬用一个专业词语解释另外一个专业词语,或者是大佬觉得你懂,这种博客我看的是真的很难受,我就想说,我真的啥都不懂,所以我希望我写的博客尽可能小白一点,当然,认知上有偏差请指出,我尽量改)

猜你喜欢

转载自blog.csdn.net/qq_41027830/article/details/102136670