zoukankan      html  css  js  c++  java
  • (转)Win10 TensorFlow(gpu)安装详解

    Win10 TensorFlow(gpu)安装详解

    写在前面:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从图象的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。从去年十一月开源至今一年多一点的时间里,该项目已经收获了40000+的star和18000+的fork,足见它的热度。TensorFlow的社区和文档都非常完善,因而受到大家的青睐。

    之前TensorFlow只支持Ubuntu/Linux和Mac OS X,安装也比较方便。前两天上社区发现已经有Windows版本了,果断装个试试,本文主要记录Win10下安装TensoFlow踩过的坑。

    TensorFlow 官方安装教程 
    TensorFlow 中文社区

    1.安装环境(多版本Python管理)

    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设置为默认版本,这里建议都勾选。

     

    了解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

    (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:Anaconda2envsAnaconda3(即刚才新建的conda环境),另外注意在打钩的界面,两个都不要勾选,接着正常安装结束就行。

    (3).安装完成后,激活Anaconda3环境,运行pythonjupyter notebook,大功告成。

    2. TensorFlow安装

    完成上面python3.5安装后就很简单了,直接pip安装就行。

    先激活Anaconda3环境:activate Anaconda3 
    注:如果机子显卡较低不支持GPU加速就安装CPU版本,本文安装的是GPU版本

    输入:pip install tensorflow-gpu 安装,如果提示pip版本问题,按提示更新到最新版本即可。

    安装完成。 
    这个时候虽然已经安装好了TensorFlow,但是因为需要GPU加速,我们还需要安装cuda和cuDnn(专门为deep learning准备的加速库)。

    3. cuda安装

    (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 FilesNVIDIA GPU Computing ToolkitCUDAv8.0,但是这样不能直接访问到bin和libx64下的程序包,在path中加上这两个路径即可。

    再发一波车,结果还有问题…还有一个库加载不了,就是上面的cuDnn库了,很简单,解压刚才下下来的安装包,将这三个文件夹下的文件拷到CUDA对应的文件夹下面即可。 

    这样就大功告成了。

    4.TensorFlow测试

    (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:	f_jenkinshomeworkspace
    elease-windevicegpuoswindows	ensorflowstream_executordso_loader.cc:119] Couldn't open CUDA library cupti64_80.dll
    

    查了一下,这个dll在NVIDIA GPU Computing ToolkitCUDAv8.0extrasCUPTIlibx64,因为这个也没添加到系统变量,简单的处理方式,把这里面的文件也拷到环境变量的bin文件夹下。

    再次启动,终于愉快的run起来了。

    最后想看看gpu情况,搜到了这个:NVIDIA System Management Interface 
    其实在安装路径下已经有了C:Program FilesNVIDIA CorporationNVSMI vidia-smi 
    具体怎么操作,还在探索中…

    5.完

    老规矩,推荐一些好资料。

    tensorflow官方教程,还有中文版社区,文章开头已放链接。

    不错的知乎专栏: https://zhuanlan.zhihu.com/hsmyy

    Hiton的课程:https://www.coursera.org/learn/neural-networks/home

    其它比较火的的deep learning 框架:kerasmxnet

  • 相关阅读:
    未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包
    Only one instance of a ScriptManager can be added to the page.
    springboot SSM
    spring mvc 请求转发和重定向
    Spring Boot 配置 Swagger2 接口文档引擎
    solr
    jQuery
    反向代理负载均衡-Nginx
    mybatis二级缓存
    Vue的路由
  • 原文地址:https://www.cnblogs.com/gradven/p/8144477.html
Copyright © 2011-2022 走看看