关键词

TensorFlow在Windows上的CPU版本和GPU版本的安装指南(亲测有效)

平台:Window、Ubuntu、Mac等操作系统

版本:支持GPU版本和CPU版本

安装方式:pip方式、Anaconda方式

attention:

在Windows上目前支持python3.5.x

GPU版本可支持CUDA9.0、Cudnn7.0

安装过程

CUDA简介

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员现在可以使用C语言来为CUDA™架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA™的处理器上以超高性能运行。CUDA3.0已经开始支持C++和FORTRAN。
计算行业正在从只使用CPU的“中央处理”向CPU与GPU并用的“协同处理”发展。为打造这一全新的计算典范,NVIDIA™(英伟达™)发明了CUDA(Compute Unified Device Architecture,统一计算设备架构)这一编程模型,是想在应用程序中充分利用CPU和GPU各自的优点。现在,该架构已应用于GeForce™(精视™)、ION™(翼扬™)、Quadro以及Tesla GPU(图形处理器)上。
来自百度百科。

Anaconda简介

Anaconda是由Python提供支持的领先的开放数据科学平台。 Anaconda的开源版本是Python和R的高性能分发版本,包括超过100个用于数据科学的最流行的Python,R和Scala软件包。
来自Anaconda官方下载页面
具体使用见Anaconda官方教程,简单易懂!

Anaconda安装过程

  1. 下载Anaconda安装包:官方网址
    1. 我下载的是:Anaconda3-5.0.1-Windows-x86_64(内含python3.6) 
  2. 检查Anaconda是否安装成功:conda --version

    (成功第一步,继续向前进)
  3. 检测目前安装了哪些环境:conda info --envs

    (正常情况下只有一个base,新手还要慢慢来吧)

  4. 检查目前有哪些版本的python可以安装:conda search --full-name python
  5. 安装不同版本的python:conda create --name tensorflow python=3.5 (为了保持版本一致,还是尽量选择3.5的吧)
  6. 根据提示,激活TensorFlow:activate tensorflow

     

     

    (可以看到前面有个tensorflow的标志)

  7. 确保tensorflow环境已经被成功添加:conda info --envs

     

  8. 检查当前使用环境的python版本:python --version

     

  9. 退出当前环境:deactivate

     

    (tensorflow的标志没有啦,如果想进去再用activate tensorflow)

 

TensorFlow-CPU安装

  1. 由于已经具有好了python3.5环境,现在使用Anaconda安装CPU版本的tensorflow:

    pip install tensorflow

    或者不行的话可以安装其他的镜像文件,比如:pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_x86_64.whl

  2. 确定tensorflow已经安装成功
    1. 错误尝试:直接在cmd中输入python,再输入

      import tensorflow as tf

      显示错误,因为默认的python版本为3.6.正确的做法是进入anaconda里面的3.5的python版本

    2. 正确做法:首先通过activate tensorflow进入tensorflow环境,再输入python,并导入框架:

      import tensorflow as tf

      至此,TensorFlow-CPU版本就安装完成了。

  3. 进入Anaconda Prompt-python里面,进入安装的名叫tensorflow的环境(我们装的python3.5.2记得吗?~),键入python,然后再键入import tensorflow as tf
    在这里可以找到Anaconda Prompt-python
  4. 打开Anaconda Navigator(开始菜单->Anaconda 3->Anaconda Navigator),搞一个spyder玩,点击spyder下面的“install”,安装好就变成“Launch”了,点击就可以进去了。在spyder里对tensorflow说Hello! (或者可以安装pycharm进行编辑)

TensorFlow-GPU安装

  1. 安装CUDA9.0

    1.   检查自己的电脑显卡支持CUDA后进行安装,我在安装之前先是看了几个大牛的博客。预先知道了目前tensorflow目前支持CUDA8.0和对应的CUDNN5.1版本(所以安装了这两个之后安装tensorflow-gpu之后测试说提示我:

      could not find 'cudart64_90.dll' 这个提示意思是需要安装CUDA9.0)

      可能是tensorflow升级了目前支持CUDA9.0和CUDNN7了,所以我后来又安装了CUDA9.0和CUDNN7

      CUDA官网(https://developer.nvidia.com/cuda-downloads)最新是CUDA9.1了

      所以我选择下载历史版本CUDA9.0(https://developer.nvidia.com/cuda-toolkit-archive)

      注:最好是下载local版本,不要下载network版本,以免安装又出什么岔子

      下载安装好了之后不要忘记系统环境配置

      CUDA_PATH:C:Program FilesNVIDIA GPU Computing ToolkitCUDAv9.0  

      CUDA_BIN_PATH:%CUDA_PATH%bin   

      CUDA_LIB_PATH:%CUDA_PATH%libWin32  

      CUDA_SDK_BIN:%CUDA_SDK_PATH%binWin64   

      CUDA_SDK_LIB:%CUDA_SDK_PATH%commonlibx64   

      CUDA_SDK_PATH:C:ProgramDataNVIDIA CorporationCUDA Samplesv8.0 

  2. 下载Cudnn7.0

    1.   下载CuDNN,进了下载网站(https://developer.nvidia.com/rdp/form/cudnn-download-survey),你会发现他要让你注册了才能下载,过程比较烦。所以我直接在CSDN下载页面花了两积分下载的CuDNN7,亲测能用。(http://download.csdn.net/download/qq_34364066/10123615)​,下载后得到的是一个压缩包,将解压的文件夹复制到安装的CUDA【C:Program FilesNVIDIA GPU Computing ToolkitCUDAv9.0】的目录下即可。
  3. 安装GPU版本TensorFlow

    1.   

      因为之前一直用,所以就用之前下载好的安装包,我的安装包是Anaconda3.4.2版本的Anaconda3-4.2.0-Windows-x86_64.exe,支持python3.5。

      安装之后,在新建tensorflow环境。

      conda create -n tensorflow-gpu python=3.5

      新建好环境之后激活activate tensorflow-gpu,在环境里利用pip安装

      pip install --upgrade --ignore-installed tensorflow-gpu

      测试安装成功的小例子:

      python //进入python命令模式

      import tensorflow as tf
      hello=tf.constant("Hello,tensorflow!")
      s=tf.Session()
      print (s.run(hello))

      顺利打印出b"Hello,tensorflow!"说明成功,

      exit()//退出python命令模式

  4. 配置pycharm软件

    1.   

      安装并破解PyCharm:

      直接在官网下载相关版本的PyCharm(http://www.jetbrains.com/pycharm/download/#section=windows),安装的是专业版,安装过程很简单,重要的是安装成功后的激活过程。

      破解教程如下,博主讲解的很是详细。

      http://blog.csdn.net/weixin_40190468/article/details/79084941

      配置PyCharm:

      在PyCarm下配置tensorflow环境,要设置好pycharm下解释器的interpreter的路径【File --> Setting --> Project --> Project Interpreter】,也就是anaconda中tensorflow-gpu的路径。

      在pycharm中测试刚刚的小例子输出成功,则安装成功。

TensorFlow例程

 装了个新东西,我们先把它用起来吧!

概念什么的跑完第一个小程序再看!
找点成就感才好继续下去!
示例来源:MINIST For ML Beginners

MINST数据集:

  1. 55000训练集,10000测试集,5000验证集
  2. 每张图片都是28pixels*28pixels

代码如下:

#获得数据集
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

import tensorflow as tf

#输入图像数据占位符
x = tf.placeholder(tf.float32, [None, 784])

#权值和偏差
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))

#使用softmax模型
y = tf.nn.softmax(tf.matmul(x, W) + b)

#代价函数占位符
y_ = tf.placeholder(tf.float32, [None, 10])

#交叉熵评估代价
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))

#使用梯度下降算法优化:学习速率为0.5
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

#Session
sess = tf.InteractiveSession()

#初始化变量
tf.global_variables_initializer().run()

#训练模型,训练1000次
for _ in range(1000):
  batch_xs, batch_ys = mnist.train.next_batch(100)
  sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

#计算正确率
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))

accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))

运行结果为输出显示得到模型的准确率

 

总结

TensorFlow的CPU版本安装过程注意要在tensorflow的环境中运行,那里的python版本为3.5。若没有进入tensorflow环境运行,则是在Anaconda固有的3.6版本python中运行

TensorFlow的GPU版本一定要注意CUDA和Cudnn两者之间的版本对应关系,否则将无法运行TensorFlow,具体对应情况可在官网查看

 

感悟:cuda 8.0+cudnn 6.0+TensorFlow 1.30

cuda 9.0+cudnn 7.0+TensorFlow 1.70

参考

https://blog.csdn.net/yygydok/article/details/79783002

https://blog.csdn.net/darlingwood2013/article/details/60322258

 

本文链接:http://task.lmcjl.com/news/5951.html

展开阅读全文