安装TensorFlow躺坑总结(win + anaconda,附 keras 安装)

安装TensorFlow躺坑总结(win + anaconda,附 keras 安装)

我的笔记本之前装过一个,结果环境崩了
抱着试试的心态装一个TensorFlow-gpu,完美地用了一天,结果,
又炸了。。。
心态崩了的我决定写一篇总结来记录这一路上的坑 /笑哭

一、安装CPU版本(这个比较简单)

  1. 可以先加一下清华仓库的镜像,这样更新会快一些 (以下均为anaconda prompt操作)

    1
    2
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    conda config --set show_channel_urls yes
  2. 创建环境,安装Python3.6

    1
    conda create --name tensorflow python=3.6   //tensorflow是名字
  3. 激活环境(很重要)

    1
    activate tensorflow
  4. 安装tensorflow

    1
    pip install --upgrade --ignore-installed tensorflow![1](C:\Users\asusA\Desktop\1.png)

    (图片不是当时的图,仅供参考。。)

    一定注意准备安装的时候这个环境有没有选对!!!不然就装错环境了(血泪教训)

  5. 验证

    1
    2
    3
    4
    5
    //先在环境下输入python,然后依次执行下面的
    import tensorflow as tf
    hello = tf.constant('hello,tf')
    sess = tf.Session()
    print(sess.run(hello))

    结果如下:

    tensorflow就安装好啦!

  6. 安装Spyder和jupyter的插件

    a 打开Anaconda Navigator,选择Not installed,找到 jupyter和Spyder并安装,笔者这里已经安装好,所以在这个页面没有显示。

    安装好了之后可以打开Spyder和jupyter运行一下上面的代码

    以上参考Win10下用Anaconda安装TensorFlow


以上还比较轻松,在网速可以的情况下没有大问题。

但是。。下面就要开始坑了 / 笑哭

二、安装gpu版本

​ 主要参考tensorflow-gpu1.8.0+win10+vs2017+CUDA9.2 安装——从挖坑到跳坑到出坑

​ 以及Win10下Tensorflow(GPU版)安装趟坑实录

​ 安装tensorflow-gpu之前,还需要安装两个东西 CUDA 和 cudnn

​ CUDA是9.2版本,对应cudnn的版本是7.1.2

  1. 安装CUDA和cudnn

    按照 Win10下Tensorflow(GPU版)安装趟坑实录 这篇文章来安装,基本没有太多问题

    我后来又捣鼓着加了环境变量,有可能有用吧。。。

    最上面的四个

  2. 安装tensorflow-gpu(划重点!!!)

    一开始尝试了pip install --ignore-installed --upgrade tensorflow-gpu

    失败。。
    参考 Win10系统下Anaconda的tensorflow-gpu安装,继续尝试

    1
    pip install --ignore-installed --upgrade tensorflow-gpu -i https://pypi.tuna.tsinghua.edu.cn/simple

    还是失败。。

    最后,林大神出现了,指明了前进的方向 →_→


    以下步入正题:

    1. 打开anaconda prompt,输入

      1
      anaconda search -t conda tensorflow-gpu

      会列出可用的安装包,长这个样子:

      然后选一个中意的(版本稍微高一点,然后支持win64),我选了anaconda/tensorflow-gpu

      接下来输入:

      1
      anaconda show anaconda/tensorflow-gpu // 对应于上面选的包

      会弹出安装方法:

      然后进入环境activate tensorflow-gpu (此处默认环境已经新建好了)

      输入上面划线的那个代码,然后就可以安装了

      (不出意外的话应该半个多小时可以安装好)

      PS:如果页面发现不下载了,可能是页面卡住了,黑色界面单击鼠标右键就好

    2. 验证是否用CUDA加速

      参考 tensorflow-gpu1.8.0+win10+vs2017+CUDA9.2 安装——从挖坑到跳坑到出坑

大功告成的话就可以稍稍庆祝一下啦


附 Keras 安装

  1. 进入需要安装的环境,然后安装Keras

    1
    pip install keras
  2. 安装MinGW

    1
    conda install mingw libpython
  3. 验证

    输入Python,再输入import keras,显示Using TensorFlow backed,则说明安装成功,如图。

​ 参考Win10系统 安装Anaconda+TensorFlow+Keras

后记

  安装好了的第二天我很高兴地跑吴恩达的代码作业,发现没有pil库,倒腾了半天,装了pillow,还顺便装了opencv,结果吃完饭就发现。。jupyter has died. 然后发现import tensorflow as tf 没有反应。下面开始我的检查之旅:

  1. 用如下的代码检查了一下CUDA和GPU发现结果是false,就很僵硬

    1
    2
    3
    4
    5
    6
    7
    8
    import tensorflow as tf
    a = tf.test.is_built_with_cuda() # 判断CUDA是否可以用
    b = tf.test.is_gpu_available(
    cuda_only=False,
    min_cuda_compute_capability=None) # 判断GPU是否可以用
    print(a)
    print(b)
    tf.__version__

    结果正常应该是这样的:

  2. 运行cmd检查CUDA安装

    通过cd到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\demo_suite目录下,执行bandwidthTest.exe,deviceQuery.exe,两步都打印出【Result=PASS】,则CUDA安装成功 参考 win10下GPU加速的Keras配置(CUDA, cuDNN)

    1
    2
    3
    4
    # 在cmd窗口下一次执行下面的语句(cmd窗口可以通过win+R快捷键找到)
    cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\demo_suite
    bandwidthTest.exe
    deviceQuery.exe

    效果如下图:(有时候开机之后发现没有pass。可能不是CUDA的问题,重启就好了)

    bandwidthTest.exe结果

    deviceQuery.exe结果

    继续输入代码检查nvcc:

    1
    nvcc -V

    检查nvcc

  3. 后来出现了以上两步都没问题,跑小代码也没问题,结果运行模型就开始died。。。试图重装tensorflow,重新配环境,好了一两天,结果装了几个库之后又崩了,于是下定决心找问题

下面开始拯救之旅:

  1. 重新安装tensorflow,用原来的包安装,用不同的包安装,配新的环境安装,都没有解决实质问题

  2. 周日怀疑是CUDA和cudnn的问题,安装的版本不兼容可能还会有问题。于是重新装了CUDA9.0和cudnn7.3.0。当天晚上依然没有解决,感觉在疯了的边缘挣扎

    不过获得了有效信息,关于如何鉴别CUDA和cudnn的版本兼容,参考我的AI之路(5)–如何选择和正确安装跟Tensorflow版本对应的CUDA和cuDNN版本

    这次的安装我配了好多环境变量,参考了win10下GPU加速的Keras配置(CUDA, cuDNN)

    注意:环境变量它有两个图,第一幅图里的不要配,会报错。只配第二幅图。不过后来感觉可能和环境也没啥关系

  3. 周一上完毛概课,吃完午饭调整好情绪,继续尝试。此时关注到jupyternotebook的后台窗口有显示下面的error

    jupyternotebook后台报错

    从上图可以看到,刚开始还是在用我的950M的GPU,后来我运行模型的时候就开始崩了,各种error。上网查了资料,给出的解答是由于GPU配置不对造成的。下面给出这个折腾了我多天的问题的解决方案(目前还比较有效)


    运行Python模型之前运行这段代码:

1
2
3
4
import tensorflow as tf
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config)

​ 看一下jupyternotebook后台的变化:

jupyternotebook后台

​ 好像没问题了。。然后就很神奇地发现,模型可以跑了!

​ 附上一张训练的图:

mnist数据库训练

​ 吴恩达的作业里写:16 seconds per epoch on a GRID K520 GPU,我的950M平均23s,感觉也 还蛮快/笑哭

​ 希望可以正式结篇了。。。

​ 注:那个代码好像得每一次开一个新的文件就要运行一遍。有时候还会出现resource exhausted的提示。个人理解是内存不够了。推荐关掉程序重开

Author: Ivan Yang
Link: https://blog.ivan-yang.com/2018/10/25/安装TensorFlow躺坑总结/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.