文章目录
一、安装环境
TensorFlow既可以支持CPU,也可以支持CPU+GPU。前者的环境需求简单,后者需要额外的支持。TensorFlow是基于VC++2015开发的,所以需要下载安装VisualC++ Redistributable for Visual Studio 2015 来获取MSVCP140.DLL的支持。如果要安装GPU版本(有N卡,即NVIDIA显卡),需要以下额外环境:
0)有支持CUDA计算能力3.0或更高版本的NVIDIA GPU卡。
1)下载安装CUDA Toolkit 8.0,并确保其路径添加到PATH环境变量里;
2)下载安装cuDNN v6或v6.1,并确保其路径添加到PATH环境变量里;
3)CUDA8.0相关的NVIDIA驱动。
二、安装过程
具备了上述安装条件(CPU或GPU)之后,TensorFlow可以通过两种方式进行安装。一是"native" pip,二是Anaconda。推荐前者,比较简单。
TensorFlow是基于python脚本语言的,是一种高级应用,它必须依赖于底层的应用发挥作用。因此需要安装python,当然还需要安装numpy、scipy、six、matplotlib等几十个扩展包。如果一个个安装,十分耗费时间,不过现在有了集成环境anaconda,安装就方便了。python的大部分扩展包,都集成在anaconda里面了,因此只需要装这一个东西就行了。如果你想更多的去了解Anaconda,可以参考Anaconda官方API[https://conda.io/docs/user-guide/getting-started.html] 。
一)使用"native"pip安装
1)下载安装Python 3.5.x 64-bit,要注意版本3.5.x。
2)安装tensorflow
打开windows的命令行窗口,安装CPU版本输入
pip3 install --upgrade TensorFlow
安装GPU版本输入
pip3 install --upgrade TensorFlow-gpu
二)使用Anaconda安装
1) 下载安装Anaconda;
国外网站下载[https://repo.continuum.io/archive/]
国内清华大学镜像[https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/]
笔者安装的版本是[Anaconda3-4.3.0-Windows-x86_64.exe],是因为它是迄今为止最稳定的版本。
默认安装,最终dos终端敲入conda –version显示conda 4.3.8表示安装成功。
2)打开命令行窗口,创建conda环境
conda create -n tensorflow python=3.5
#注意:这行命令仅仅是搭建了一个名字叫tensorflow的环境,并没有真正安装任何tensorflow
conda其他常用命令:
conda -V 检验是否安装;以及当前的anaconda版本
conda list 查看安装了那些库
conda ev list 查看当前虚拟环境
conda info -e 查看当前虚拟环境
conda update conda 检查当前的conda
activate 虚拟环境名
deactivate 退出虚拟环境
conda install -n python3 [package] 对虚拟环境python3进行安装库
conda remove python3 删除虚拟环境
conda remove –name python3 $[package] 删除一个包
3)激活conda环境
activate tensorflow
上图表明环境配置成功,上面仅仅是配置了一个名叫TensorFlow的环境,真正的TensorFlow并未安装。
4)安装CPU版本tensorflow
安装TensorFlow时,需要从Anaconda仓库中下载,一般默认链接的都是国外镜像地址,下载肯定很慢啊(跨国呢!),这里我是用国内清华镜像,需要改一下链接镜像的地址。这里,我们打开刚刚安装好的Anaconda中的 Anaconda Prompt,然后输入:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
这两行代码用来改成连接清华镜像。
pip install --ignore-installed --upgrade TensorFlow
5)安装GPU版本输入
pip install --ignore-installed --upgrade TensorFlow-gpu
安装GPU版本比较麻烦,仅仅安装tensorflow包还不够,还需要安装CUDA和cudnn,相信读者跟笔者一样对CUDA和cudnn的概念都比较陌生,请看如下介绍:
CUDA(Compute Unified Device Architecture)
CUDA是英伟达公司推出的一种基于新的并行编程模型和指令集架构的通用计算架构,它能利用英伟达GPU的并行计算引擎,比CPU更高效的解决许多复杂计算任务。
使用CUDA的好处就是透明。根据摩尔定律GPU的晶体管数量不断增多,硬件结构必然是不断的在发展变化,没有必要每次都为不同的硬件结构重新编码,而CUDA就是提供了一种可扩展的编程模型,使得已经写好的CUDA代码可以在任意数量核心的GPU上运行。
计算行业正在从只使用CPU的“中央处理”向CPU与GPU并用的“协同处理”发展。为打造这一全新的计算典范,NVIDIA™(英伟达™)发明了CUDA这一编程模型,是想在应用程序中充分利用CPU和GPU各自的优点。现在,该架构已应用于GeForce™(精视™)、ION™(翼扬™)、Quadro以及Tesla GPU(图形处理器)上。
cuDNN(CUDA Deep Neural Network)
官网[https://developer.nvidia.com/cudnn]
NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如加州大学伯克利分校的流行CAFFE软件。简单的,插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是调整性能,同时还可以在GPU上实现高性能现代并行计算。
TensorFlow | CUDA | cuDNN安装各版本搭配
TensorFlow | CUDA | cuDNN安装各版本搭配 |
---|---|---|
TensorFlow-gpu v1.9.0 | cuda9.0 | cuDNN7.1.4可行 |
TensorFlow-gpu v1.8.0 | cuda9.0 | cuDNN 不明确 |
TensorFlow-gpu v1.7.0 | cuda9.0 | cuDNN 不明确 |
TensorFlow-gpu v1.6.0 | cuda9.0 | cuDNN 不明确 |
TensorFlow-gpu v1.5.0 | cuda9.0 | cuDNN 不明确 |
TensorFlow-gpu v1.4.0 | cuda8.0 | cuDNN 6.0 |
TensorFlow-gpu v1.3.0 | cuda8.0 | cuDNN 6.0 |
TensorFlow-gpu v1.2.0 | cuda8.0 | cuDNN 5.1 |
TensorFlow-gpu v1.1.0 | cuda8.0 | cuDNN 5.1 |
安装CUDA
下载地址[https://developer.nvidia.com/cuda-toolkit-archive]
安装完毕后将C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin添加到环境变量
安装cudnn
下载地址[https://developer.nvidia.com/rdp/cudnn-archive],这个软件下载比较麻烦,需要在网站注册一个账号。
将cudnn包解压后,配置环境变量C:\cudnn\bin。
三、验证安装
验证TensorFlow安装是否成功,可以在命令行窗口输入python进入python环境,或者运行python3.5命令行后输入以下代码:
import TensorFlow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
如果能正常输出hello字符串,则安装成功。
Hello, TensorFlow!
如果安装的是gpu版的tensorflow,测试代码如下
#coding=utf-8
import tensorflow as tf
print(tf.__version__)
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.run(tf.global_variables_initializer())
print(sess.run(c))
参考:
https://blog.youkuaiyun.com/fangjin_kl/article/details/53906874
https://blog.youkuaiyun.com/augusdi/article/details/12833235
https://blog.youkuaiyun.com/colourful_sky/article/details/78524382