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安装过程
- 下载Anaconda安装包:官方网址
- 我下载的是:Anaconda3-5.0.1-Windows-x86_64(内含python3.6)
- 检查Anaconda是否安装成功:conda --version
(成功第一步,继续向前进) - 检测目前安装了哪些环境:conda info --envs
(正常情况下只有一个base,新手还要慢慢来吧) - 检查目前有哪些版本的python可以安装:conda search --full-name python
- 安装不同版本的python:conda create --name tensorflow python=3.5
(为了保持版本一致,还是尽量选择3.5的吧)
- 根据提示,激活TensorFlow:activate tensorflow
- 确保tensorflow环境已经被成功添加:conda info --envs
- 检查当前使用环境的python版本:python --version
- 退出当前环境:deactivate
TensorFlow-CPU安装
- 由于已经具有好了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
- 确定tensorflow已经安装成功
- 错误尝试:直接在cmd中输入python,再输入
import tensorflow as tf
显示错误,因为默认的python版本为3.6.正确的做法是进入anaconda里面的3.5的python版本
- 正确做法:首先通过activate tensorflow进入tensorflow环境,再输入python,并导入框架:
import tensorflow as tf
至此,TensorFlow-CPU版本就安装完成了。
- 错误尝试:直接在cmd中输入python,再输入
- 进入Anaconda Prompt-python里面,进入安装的名叫tensorflow的环境(我们装的python3.5.2记得吗?~),键入python,然后再键入
import tensorflow as tf
在这里可以找到Anaconda Prompt-python - 打开Anaconda Navigator(开始菜单->Anaconda 3->Anaconda Navigator),搞一个spyder玩,点击spyder下面的“install”,安装好就变成“Launch”了,点击就可以进去了。在spyder里对tensorflow说Hello! (或者可以安装pycharm进行编辑)
TensorFlow-GPU安装
- 安装CUDA9.0
-
检查自己的电脑显卡支持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 Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
CUDA_BIN_PATH:%CUDA_PATH%\bin
CUDA_LIB_PATH:%CUDA_PATH%\lib\Win32
CUDA_SDK_BIN:%CUDA_SDK_PATH%\bin\Win64
CUDA_SDK_LIB:%CUDA_SDK_PATH%\common\lib\x64
CUDA_SDK_PATH:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0
-
- 下载Cudnn7.0
- 下载CuDNN,进了下载网站(https://developer.nvidia.com/rdp/form/cudnn-download-survey),你会发现他要让你注册了才能下载,过程比较烦。所以我直接在CSDN下载页面花了两积分下载的CuDNN7,亲测能用。(http://download.csdn.net/download/qq_34364066/10123615),下载后得到的是一个压缩包,将解压的文件夹复制到安装的CUDA【C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0】的目录下即可。
- 安装GPU版本TensorFlow
-
因为之前一直用,所以就用之前下载好的安装包,我的安装包是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命令模式
-
- 配置pycharm软件
-
安装并破解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数据集:
- 55000训练集,10000测试集,5000验证集
- 每张图片都是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,具体对应情况可在官网查看
参考
https://blog.csdn.net/yygydok/article/details/79783002
https://blog.csdn.net/darlingwood2013/article/details/60322258