写在前面:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于自己的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从图象的一端流动到另外一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。从去年十一月开源至今一年多一点的时间里,该项目已经收获了40000+的star和18000+的fork,足见它的热度。TensorFlow的社区和文档都很是完善,于是受到你们的青睐。python
以前TensorFlow只支持Ubuntu/Linux和Mac OS X,安装也比较方便。前两天上社区发现已经有Windows版本了,果断装个试试,本文主要记录Win10下安装TensoFlow踩过的坑。git
TensorFlow 官方安装教程
TensorFlow 中文社区github
TensorFlow目前在windows下只支持64-bit Python 3.5,因为以前一直在用python 2.7(Anaconda2)+jupyter notebook,不想直接换成Python 3.5,因此准备安装两个版本的Anaconda。这里主要介绍下如何管理使用不一样版本的Python,若是原本就用Python 3.5的这章节直接跳过好了。编程
Anaconda下载安装:Window下安装很是简单,直接运行安装包下一步下一步就行,安装过程会有选择打钩的地方,第一个是添加环境变量,第二个是把Anaconda下的Python设置为默认版本,这里建议都勾选。windows
。数组
了解Anaconda的应该都知道能够用conda环境管理不一样版本的python,好比我如今安装的是Anaconda2,默认python版本是2.7,可是我想用下Python 3,这个时候能够用conda建立一个环境,在这个环境下能够安装运行你想要的版本,等用完了退出这个环境便可。系统默认的Python版本仍是2.7。浏览器
下面介绍具体怎么处理:网络
(1).建立一个名为python35的环境,指定Python版本是3.5
打开cmd:conda create --name python35 python=3.5
session(2).安装完成后,使用activate激活python35
输入activate python35
能够看到 命令行行前面有个(python35),这个就是当前运行环境
接着运行python
能够看到python版本显示为3.5.2数据结构
(3).若是想返回默认的python 2.7环境,先退出python而后运行
deactivate python35
运行
python
,如图所示,python版本为2.7.12,命令行前面的(python35)也不见了,说明已经退出python35环境。是否是很方便?下面去安装路径下看下,能够看到在Anaconda2安装路径的envs下有python35这个文件夹,每当咱们激活这个环境的时候,系统运行环境就在该文件夹下面了。(其它两个是我后面新建的)
到这里其实已经准备好安装环境了,可是我以前用习惯了jupyter notebook,若是我如今运行Anaconda自带的notebook仍是只有python 2.7.12版本,若是跟我同样想用jupyter notebook继续往下看。
既然能够在新建的环境下安装Python 3.5,那我在这个环境下在安装一个Anaconda3怎么样,这样同时安装了python 3.5的jupyter notebook以及Spyder,尝试了一下,果真能够! (看了评论发现这个方法不能够了,如今不常常上csdn了,路过的小伙伴路过有解决方案也阔以共享出来…
我去年这么装的时候是没有问题的。刚刚试了下,确实不能够了。 而后我尝试了一下其余方法:
1.conda create –name test python=3.6
2.activate test
3.pip install jupyter/spyder
4.jupyter notebook
这样也是能够的。)(1).conda新建一个Anaconda3的环境
conda create --name Anaconda3
成功后会在Anaconda2下的envs文件夹下新建一个Anaconda3环境
(2).接着从Anaconda官网下载Anaconda3的安装包并安装
在安装的时候注意将安装路径选为E:\Anaconda2\envs\Anaconda3(即刚才新建的conda环境),另外注意在打钩的界面,两个都不要勾选,接着正常安装结束就行。
(3).安装完成后,激活Anaconda3环境,运行
python
、jupyter notebook
,大功告成。
完成上面python3.5安装后就很简单了,直接pip安装就行。
先激活Anaconda3环境:
activate Anaconda3
注:若是机子显卡较低不支持GPU加速就安装CPU版本,本文安装的是GPU版本输入:
pip install tensorflow-gpu
安装,若是提示pip版本问题,按提示更新到最新版本便可。
安装完成。
这个时候虽然已经安装好了TensorFlow,可是由于须要GPU加速,咱们还须要安装cuda和cuDnn(专门为deep learning准备的加速库)。
(1).cuda v8.0安装包下载 ,还有安装指南之类的,稍微看下就行。
根据本身的环境选择对应的版本,exe分为网络版和本地版,网络版安装包比较小,执行安装的时候再去下载须要的包;本地版安装包是直接下载完整安装包。这里建议下载本地版(网络版我试过,安装一夜失败了…),另外建议用win10自带的edge浏览器下载,速度比谷歌啥的快多了。
下载下来后就正常安装就能够了。
(2).cuDnn库下载
下载这个安装包须要注册而且填一堆问卷,下下来之后把相关包不用安装,直接拷到cuda路径对应的文件夹下面就行(后面说)。
(3).cuda测试
在cuda安装好后会自动下载一些example,本身运行测试一下,问题不大。
(4).关键坑(运行TensorFlow)
当我安装完成准备开一波车的时候,出来各类错,做为年轻的老司机我讲讲经验。TensorFlow 是一个编程系统, 使用图来表示计算任务,图必须在Session(会话)里被启动. Session将图的op(操做)分发到诸如CPU或GPU之类的设备上运行。因此,这个时候你运行python而后import tensorflow as tf
是不会报错的,可是当你要执行tf.Session()
的时候可能就有问题了。这个时候将会调用cuda,我在这里遇到的问题是各类lib,dll加载不了。通过一番检查,定位到问题,cuda安装完成后默认的环境变量配置不对,CUDA_PATH是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
,可是这样不能直接访问到bin和lib\x64下的程序包,在path中加上这两个路径便可。
再发一波车,结果还有问题…还有一个库加载不了,就是上面的cuDnn库了,很简单,解压刚才下下来的安装包,将这三个文件夹下的文件拷到CUDA对应的文件夹下面便可。
这样就大功告成了。
(1).代码测试:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!') sess = tf.Session()
(2).官方教程代码测试:
The TensorFlow implement
ation translates the graph definition into executable operations distributed across available compute resources, such as the CPU or one of your computer’s GPU cards. In general you do not have to specify CPUs or GPUs explicitly. TensorFlow uses your first GPU, if you have one, for as many operations as possible.#Creates a graph. a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a') b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b') c = tf.matmul(a, b) #Creates a session with log_device_placement set to True. sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) #Runs the op. print sess.run(c)输出:
Device mapping: /job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Tesla K40c, pci bus id: 0000:05:00.0 b: /job:localhost/replica:0/task:0/gpu:0 a: /job:localhost/replica:0/task:0/gpu:0 MatMul: /job:localhost/replica:0/task:0/gpu:0 [[ 22. 28.] [ 49. 64.]]
![]()
(2).example 测试
下载github上的tensorflow源码,里面有不少示例代码
run example:
python mnist_with_summaries.py ..............................
结果刚发车就熄火了…couldn't open CUDA library cupti64_80.dll
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:119] Couldn't open CUDA library cupti64_80.dll
查了一下,这个dll在NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\CUPTI\libx64
,由于这个也没添加到系统变量,简单的处理方式,把这里面的文件也拷到环境变量的bin文件夹下。
再次启动,终于愉快的run起来了。
最后想看看gpu状况,搜到了这个:NVIDIA System Management Interface
其实在安装路径下已经有了C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi
具体怎么操做,还在探索中…
老规矩,推荐一些好资料。
tensorflow官方教程,还有中文版社区,文章开头已放连接。
不错的知乎专栏: https://zhuanlan.zhihu.com/hsmyy
Hiton的课程:https://www.coursera.org/learn/neural-networks/home