• Ubuntu16.04使用Anaconda5搭建TensorFlow使用环境 图文详细教程


    说明


    - Ubuntu版本16.04 LTS
    - Anaconda版本 5.0.1 (对应Python 3.6.3)
    - Tensorflow 1.3.0(由Anaconda提供,你也可以选择其他版本,包括GPU的)

    Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项,也提供了tensorflow的安装。
    GPU版本和CPU版本各有优劣,CPU版本IO处理高效,GPU版本矩阵运算高效,处理在线数据建议使用CPU版,处理下载好的数据建议使用GPU版。
    安装GPU版需要先安装CUDA和cuDNN,其他相同。

    本博客撰写于2018年1月2日,前面已经更新了一系列Python博文,之后还会继续更新,与此同时开启TensorFlow新篇章,祝大家新年快乐。
    你在其他博客上看到的安装教程可能要比本篇繁琐的多,由于使用了Anaconda,并在虚拟环境中安装,要简便很多。
    (欢迎点击浏览器的星星按钮收藏本博客,也欢迎关注博主微博@从流域到海域,私信必回。)

    安装Anaconda5.0.1

    这里写图片描述
    下载地址:
    https://www.anaconda.com/download/#linux
    依照系统位数选择你需要的版本,本博客选择的是:64-Bit (x86) Installer (525 MB),然后安装。

    sudo bash Anaconda3-5.0.1-Linux-x86_64.sh

    这里写图片描述
    ctrl + c跳到license agreement最底,输入yes回车。
    安装过程遇到问题需要重新安装,先运行下面的命令删掉之前的文件夹。

    sudo rm -rf anaconda3

    安装过程需要注意一点:

    [/home/steve/anaconda3] >>> 
    PREFIX=/home/steve/anaconda3
    installing: python-3.6.3-hc9025b9_1 ...
    ......(省略一系列安装)
    Do you wish the installer to prepend the Anaconda3 install location
    to PATH in your /home/steve/.bashrc ? [yes|no]
    [no] >>> yes   
    #一定要在此处选择yes 选择yes之后直接进入下个步骤。
    #如果它自动选no跳过了 按照提示在.bashrc里添加提示给出的export的语句 其他教程如下:
    vi ~/.bashrc
    然后按o,把终端给出的Export语句粘贴进去
    然后按i,输入:wq 保存退出

    完成安装后,重启terminal,输入:

    source ~/.bashrc   #不重启电脑的情况下激活设置

    再输入python。看到原来的python2.7被替换成python3.6.3 | Anaconda,证明安装成功。

    steve@steve-Lenovo-V2000:~$ python
    Python 3.6.3 |Anaconda, Inc.| (default, Oct 13 2017, 12:02:49) 
    [GCC 7.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 

    安装TensorFlow

    创建一个tensorflow 虚拟环境:

    conda create -n tensorflow python=3.6

    激活tensorflow虚拟环境(之后的使用每次也都要先激活虚拟环境才可用):

    source activate tensorflow
    
    anaconda search -t conda tensorflow #查找当前可用的tensorflow包 下面是结果
    
    steve@steve-Lenovo-V2000:~$ source activate tensorflow
    (tensorflow) steve@steve-Lenovo-V2000:~$ anaconda search -t conda tensorflow
    Using Anaconda API: https://api.anaconda.org
    Packages:
         Name                      |  Version | Package Types   | Platforms       | Builds    
         ------------------------- |   ------ | --------------- | --------------- | ----------
         GlaxoSmithKline/tensorflow |   0.12.0 | conda           | linux-64        | py27hb0d0e74_0
                                              : TensorFlow is a machine learning library
         HCC/tensorflow            |    1.4.0 | conda           | linux-64        | py27_1, py34_1, py34_0, py36_0, py27_0, py35_0, py35_1
                                              : Computation using data flow graphs for scalable machine learning.
         HCC/tensorflow-cpucompat  |    1.4.0 | conda           | linux-64        | py36_0, py27_0, py35_0, py34_0
                                              : Computation using data flow graphs for scalable machine learning.
         HCC/tensorflow-fma        |    1.4.0 | conda           | linux-64        | py27_1, py34_1, py27_0, py36_0, py34_0, py35_0, py35_1
                                              : Computation using data flow graphs for scalable machine learning.
         SentientPrime/tensorflow  |    0.6.0 | conda           | osx-64          | py27_0    
                                              : TensorFlow helps the tensors flow
         SmartAg/tensorflow_gpu    |    1.0.1 | conda           | linux-aarch64   | 0         
         aaronzs/tensorflow        |    1.4.0 | conda           | linux-64, win-64, osx-64 | py36h39705f4_0, py36h8a03e48_0, py35hc784f49_0, py36h6db853c_0, py35h2d7a08b_0, py35h1150644_0, py35h5a8cc8b_0, py35hc0f5839_0, py36hebc11a6_0, py35ha700c16_0, py36hf8f6b73_0, py36heb185b1_0, py35hf9a0815_0, py36h2003710_0, py36h4df9c7b_0, py35h6467dd0_0, py36hd42d972_0, py36he4e0f4f_0, py35h89e3332_0
                                              : TensorFlow helps the tensors flow
         aaronzs/tensorflow-gpu    |    1.4.0 | conda           | linux-64, win-64 | py35h95763ad_0, py36h03e8729_0, py35h8ac8084_0, py35hb2e3085_0, py35hc6fb95a_0, py36ha20c466_0, py35h3b8745f_0, py36hbec5d8f_0, py36h74c31d8_0, py36h6bf4e57_0, py36h7b11560_0, py35h14e71af_0, py36h559dc3e_0
                                              : TensorFlow helps the tensors flow
         aaronzs/tensorflow-tensorboard | 0.4.0rc3 | conda           | linux-64, osx-64, win-64 | py35h30a7cae_0, py36h1eb756b_0, py35h8792995_0, py35h98b1d99_0, py36hbb25e9c_0, py35h0e1fd4a_0, py36h7c6d2df_0, py35h6181586_0, py36h1ee23b2_0, py36hffc986b_0, py35h85b20a5_0, py35h93bdf65_0, py36h4568b58_0, py36h5698cb7_0, py35h985ceb1_0, py35h83d8c28_0, py36hf2576c0_0, py36h52f5384_0, py36h9271151_0, py36ha443a3c_0, py35hbab8bba_0, py35h14ff132_0, py36h9a29024_0, py35h9958e77_0, py36h662c838_0, py36hd60226d_0
                                              : TensorBoard lets you watch Tensors Flow
         acellera/tensorflow-cuda  |   0.12.1 | conda           | linux-64        | 1         
         anaconda/tensorflow       |    1.3.0 | conda           | linux-ppc64le, linux-64, osx-64, win-64 | np111py27_0, 0, np111py34_0, py36_0, np112py36_0, py27_0, np112py35_0, np111py36_0, py35_0, np112py27_0, np111py35_0
                                              : TensorFlow is a machine learning library.
         anaconda/tensorflow-base  |    1.3.0 | conda           | linux-64        | py27_0, py36h5293eaa_1, py36_0, py35h79a3156_1, py35_0, py27h0dbb4d0_1
                                              : TensorFlow is a machine learning library, base package contains only tensorflow.
         anaconda/tensorflow-gpu   |    1.3.0 | conda           | linux-ppc64le, linux-64, win-64 | py36_4, np111py27_0, py35cuda8.0cudnn6.0_0, py27_4, py35cuda7.5cudnn6.0_0, 0, py35cuda8.0cudnn5.1_0, py36cuda7.5cudnn5.1_0, py27cuda7.5cudnn5.1_0, py27cuda7.5cudnn6.0_0, np112py35_0, np112py27_0, py27cuda8.0cudnn5.1_0, np111py35_0, py27cuda8.0cudnn6.0_0, py36cuda7.5cudnn6.0_0, np112py36_0, np111py36_0, py36cuda8.0cudnn5.1_0, py36cuda8.0cudnn6.0_0, py35_4, py35cuda7.5cudnn5.1_0
                                              : TensorFlow is a machine learning library.
         anaconda/tensorflow-gpu-base |    1.3.0 | conda           | linux-64        | py27cuda8.0cudnn6.0_1, py27cuda8.0cudnn6.0_0, py35cuda8.0cudnn6.0_0, py36cuda8.0cudnn6.0_0, py36cuda8.0cudnn6.0_1, py35cuda8.0cudnn6.0_1
                                              : TensorFlow is a machine learning library, base GPU package, tensorflow only.
         anaconda/tensorflow-tensorboard |    0.1.5 | conda           | linux-64        | py36_0, py35_0, py27_0
                                              : TensorBoard lets you watch Tensors Flow
         aroth85/tensorflow        |    1.3.0 | conda           | linux-64        | py27_0    
                                              : TensorFlow helps the tensors flow
         conda-forge/r-tensorflow  |      0.7 | conda           | linux-64, osx-64, win-64 | r3.3.2_0, r3.4.1_0
         conda-forge/tensorflow    |    1.4.0 | conda           | linux-64, win-64, osx-64 | py36_2, py27_1, py34_1, py34_0, py36_0, py27_0, py27_2, py35_2, py35_0, py35_1
                                              : TensorFlow helps the tensors flow
         creditx/tensorflow        |    0.9.0 | conda           | linux-64        | py35_0, py27_0
                                              : TensorFlow helps the tensors flow
         derickl/tensorflow        |    1.0.1 | conda           | osx-64          | py27h5185c07_0
                                              : TensorFlow helps the tensors flow
         dhirschfeld/tensorflow    |    1.2.0 | conda           | win-64          | py36_0, py35_0
                                              : Computation using data flow graphs for scalable machine learning 
         dseuss/tensorflow         |          | conda           | osx-64          | py35_0    
         guyanhua/tensorflow       |    1.0.0 | conda           | linux-64        | py27_0    
         ijstokes/tensorflow       | 2017.03.03.1349 | conda, ipynb    | linux-64        | py35_0    
         intel/tensorflow          |    1.4.0 | conda, pypi     | linux-64        | np113py36_1, np113py27_1
         jjh_cio_testing/tensorflow |    1.3.0 | conda           | linux-64        | np111py27_0, np111py35_0, 0, py27_0, py36_0, np112py36_0, np113py35_0, np112py35_0, np111py36_0, np113py27_0, np112py27_0, np113py36_0, py35_0
                                              : TensorFlow is a machine learning library
         jjh_cio_testing/tensorflow-base |    1.3.0 | conda           | linux-64        | py27_0, py36h5293eaa_1, py36_0, py35h79a3156_1, py35_0, py27h0dbb4d0_1
                                              : TensorFlow is a machine learning library, base package contains only tensorflow.
         jjh_cio_testing/tensorflow-gpu |    1.3.0 | conda           | linux-64        | py35cuda7.5cudnn5.1_0, py36_0, py36_3, py36_2, py36_4, py36cuda7.5cudnn5.1_0, py35cuda8.0cudnn6.0_0, py27cuda8.0cudnn5.1_0, py27_4, py27_3, py27_2, py27_1, py27_0, py35cuda7.5cudnn6.0_0, np113py35_0, 0, py35cuda8.0cudnn5.1_0, py36cuda8.0cudnn5.1_0, np111py27_0, py27cuda7.5cudnn5.1_0, py27cuda7.5cudnn6.0_0, np112py35_0, np112py27_0, np113py36_0, np111py35_0, py27cuda8.0cudnn6.0_0, py36cuda7.5cudnn6.0_0, np112py36_0, np111py36_0, np113py27_0, py36cuda8.0cudnn6.0_0, py35_4, py35_2, py35_3, py35_0
                                              : TensorFlow is a machine learning library.
         jjh_cio_testing/tensorflow-gpu-base |    1.3.0 | conda           | linux-64        | py27cuda8.0cudnn6.0_1, py27cuda8.0cudnn6.0_0, py35cuda8.0cudnn6.0_0, py36cuda8.0cudnn6.0_0, py36cuda8.0cudnn6.0_1, py35cuda8.0cudnn6.0_1
                                              : TensorFlow is a machine learning library, base GPU package, tensorflow only.
         jjh_cio_testing/tensorflow-tensorboard |    0.1.5 | conda           | linux-64        | py36_0, py35_0, py27_0
                                              : TensorBoard lets you watch Tensors Flow
         jjh_ppc64le/tensorflow    |    1.2.1 | conda           | linux-ppc64le   | py27_0, py36_0, np112py36_0, np112py35_0, np112py27_0, py35_0
                                              : TensorFlow is a machine learning library
         jjh_ppc64le/tensorflow-gpu |    1.2.1 | conda           | linux-ppc64le   | py27cuda8.0cudnn6.0_0, np112py36_0, np112py35_0, py35cuda8.0cudnn6.0_0, py36cuda8.0cudnn6.0_0, np112py27_0
                                              : TensorFlow is a machine learning library
         jjhelmus/tensorflow       | 0.12.0rc0 | conda, pypi     | linux-64, osx-64 | py27_1, py34_1, py27_0, py34_0, py27_2, py35_0, py35_1
                                              : TensorFlow helps the tensors flow
         jjhelmus/tensorflow-gpu   |    1.0.1 | conda           | linux-64        | np112py35_5, np112py36_5, py27_2, np112py27_5
                                              : TensorFlow is a machine learning library.
         jjhelmus/tensorflow-gpu-base |    1.3.0 | conda           | linux-64        | py27cuda8.0cudnn6.0_1, py35cuda8.0cudnn6.0_1
                                              : TensorFlow is a machine learning library, base GPU package, tensorflow only.
         kevin-keraudren/tensorflow |    0.9.0 | conda           | linux-64        | py35_12   
         loopbio/tensorflow        |    1.3.0 | conda           | linux-64        | cuda8_cudnn6_mkl_xla_1
                                              : TensorFlow is a machine learning library
         marta-sd/tensorflow       |    1.2.0 | conda           | linux-64        | py27_2, py35hbaace4d_3, py27he497762_3, py36_2, py36hb9c984a_3, py35_2
         marta-sd/tensorflow-gpu   |    1.2.0 | conda           | linux-64        | py27_1, py36h1323ef4_2, py36_1, py27_0, py35hddb9974_2, py27h4f63904_2, py35_0, py35_1
         memex/tensorflow          |    0.5.0 | conda           | linux-64, osx-64 | py27_2    
                                              : TensorFlow helps the tensors flow
         mhworth/tensorflow        |    0.7.1 | conda           | osx-64          | py27_1    
                                              : TensorFlow helps the tensors flow
         miovision/tensorflow      | 0.10.0.gpu | conda           | linux-64, osx-64 | py35_1    
         msarahan/tensorflow       | 1.0.0rc2 | conda           | linux-64        | np111py36_0, np111py27_0, np111py35_0, np111py34_0
         mutirri/tensorflow        | 0.10.0rc0 | conda           | linux-64        | np111py27_0, np111py35_0, np111py34_0
         mwojcikowski/tensorflow   |    1.0.1 | conda           | linux-64        | py36_0, py35_0, py35_1
         nehaljwani/tensorflow     |    1.2.1 | conda           | osx-64, win-64  | np112py27_0, py36_0, np112py36_0, np112py35_0, py35_0
                                              : TensorFlow is a machine learning library
         nehaljwani/tensorflow-gpu |    1.1.0 | conda           | win-64          | np112py36_0, np112py35_0
                                              : TensorFlow is a machine learning library
         r/r-tensorflow            |      1.4 | conda           | linux-64, win-32, win-64, linux-32, osx-64 | py36r3.4.1_0, r342h38ebd79_0, r342h0e1eca8_0, r342hd3d5cfb_0, r342h0bf44f9_0, r3.4.1_0, r342h935e3b1_0
                                              : Interface to 'TensorFlow' <https://www.tensorflow.org/>,  an open source software library for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations,  while the graph edges represent the multidimensional data arrays  (tensors) communicated between them. The flexible architecture allows you to deploy computation to one or more 'CPUs' or 'GPUs' in a desktop,  server, or mobile device with a single 'API'. 'TensorFlow' was originally developed by researchers and engineers working on the Google Brain Team  within Google's Machine Intelligence research organization for the  purposes of conducting machine learning and deep neural networks research, but the system is general enough to be applicable in a wide variety of other domains as well.
         rdonnelly/tensorflow      |    0.9.0 | conda           | linux-64        | py27_0, py35_0, py34_0
         sdvillal/tensorflow       |    1.3.0 | conda           | linux-64        | cuda8_cudnn6_mkl_xla_1, cuda8_cudnn6_mkl_xla_0, py27_1, py27_0
                                              : TensorFlow is a machine learning library
         test_org_002/tensorflow   | 0.10.0rc0 | conda           |                 | np111py27_0, np111py35_0, np111py34_0
         thomasantony/tensorflow_gpu |    1.0.1 | conda           | linux-aarch64   | 0         
    Found 52 packages
    
    Run 'anaconda show <USER/PACKAGE>' to get installation details
    #你可以看到1.4.0的也有 博主求稳选了Anaconda的官方包 你也可安装1.4.0版本的
    #conda-forge/tensorflow 这个是1.4.0版本的

    查看一个包的详情信息

    (tensorflow) steve@steve-Lenovo-V2000:~$ anaconda show anaconda/tensorflow
    Using Anaconda API: https://api.anaconda.org
    Name:    tensorflow
    Summary: TensorFlow is a machine learning library.
    Access:  public
    Package Types:  conda
    Versions:
       + 0.10.0rc0
       + 1.0.1
       + 1.1.0
       + 1.2.1
       + 1.3.0
    
    To install this package with conda run:
         conda install --channel https://conda.anaconda.org/anaconda tensorflow

    安装tensorflow(直接copy结果给出的命令)

     conda install --channel https://conda.anaconda.org/anaconda tensorflow
     #过程如下 有点慢
    (tensorflow) steve@steve-Lenovo-V2000:~$ conda install --channel https://conda.anaconda.org/anaconda tensorflow
    Fetching package metadata .............
    Solving package specifications: .
    
    Package plan for installation in environment /home/steve/.conda/envs/tensorflow:
    
    The following NEW packages will be INSTALLED:
    
        backports:              1.0-py36hfa02d7e_1    anaconda
        backports.weakref:      1.0rc1-py36_0         anaconda
        bleach:                 1.5.0-py36_0          anaconda
        html5lib:               0.9999999-py36_0      anaconda
        intel-openmp:           2018.0.0-hc7b2577_8   anaconda
        libprotobuf:            3.4.1-h5b8497f_0      anaconda
        markdown:               2.6.9-py36_0          anaconda
        mkl:                    2018.0.1-h19d6760_4   anaconda
        numpy:                  1.13.3-py36ha12f23b_0 anaconda
        protobuf:               3.4.1-py36h306e679_0  anaconda
        six:                    1.11.0-py36h372c433_1 anaconda
        tensorflow:             1.3.0-0               anaconda
        tensorflow-base:        1.3.0-py36h5293eaa_1  anaconda
        tensorflow-tensorboard: 0.1.5-py36_0          anaconda
        werkzeug:               0.12.2-py36hc703753_0 anaconda
    
    Proceed ([y]/n)? y
    
    intel-openmp-2 100% |################################| Time: 0:00:07  81.54 kB/s
    mkl-2018.0.1-h 100% |################################| Time: 0:34:04  94.72 kB/s
    libprotobuf-3. 100% |################################| Time: 0:01:56  36.22 kB/s
    libprotobuf-3. 100% |################################| Time: 0:03:10  22.22 kB/s
    backports-1.0- 100% |################################| Time: 0:00:00   7.37 MB/s
    markdown-2.6.9 100% |################################| Time: 0:00:04  23.35 kB/s
    numpy-1.13.3-p 100% |################################| Time: 0:01:37  41.65 kB/s
    six-1.11.0-py3 100% |################################| Time: 0:00:00  26.59 kB/s
    werkzeug-0.12. 100% |################################| Time: 0:00:06  61.63 kB/s
    backports.weak 100% |################################| Time: 0:00:00   6.29 MB/s
    html5lib-0.999 100% |################################| Time: 0:00:03  47.86 kB/s
    protobuf-3.4.1 100% |################################| Time: 0:00:12  47.52 kB/s
    bleach-1.5.0-p 100% |################################| Time: 0:00:00  54.13 kB/s
    tensorflow-bas 100% |################################| Time: 0:01:39 376.32 kB/s
    tensorflow-ten 100% |################################| Time: 0:00:02 667.15 kB/s
    tensorflow-1.3 100% |################################| Time: 0:00:00   6.24 MB/s

    测试一下:

    (tensorflow) steve@steve-Lenovo-V2000:~$ python
    Python 3.6.4 |Anaconda, Inc.| (default, Dec 21 2017, 21:42:08) 
    [GCC 7.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import tensorflow as tf
    >>> hello = tf.constant('Hello, TensorFlow!')
    >>> session = tf.Session()
    2018-01-03 13:39:26.170690: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
    2018-01-03 13:39:26.170746: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
    2018-01-03 13:39:26.170772: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
    2018-01-03 13:39:26.170792: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
    2018-01-03 13:39:26.170813: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
    >>> print(session.run(hello))
    b'Hello, TensorFlow!'
    >>> exit()
    (tensorflow) steve@steve-Lenovo-V2000:~$ source deactivate #退出虚拟环境
    steve@steve-Lenovo-V2000:~$ 

    可以通过在终端中输入export TF_CPP_MIN_LOG_LEVEL=2解决 warnning,博主觉得这样只是改了记录方法而已,问题依然存在,警告提示的只是tensorflow没有编译成XX指令,但在你的机器上这些加速CPU运行的指令依然是可用的。因此可用忽略。

  • 相关阅读:
    [LeetCode#260]Single Number III
    1 sql server中添加链接服务器
    1 sql server 中cursor的简介
    1 .net将xml反序列化
    1 C# 将对象序列化
    1 SQL SERVER 实现字符串分割成table的方法
    1 asp.net 中如何把用户控件应用于母版页
    1 .net中自定义事件的步骤
    .NET中跨线程访问winform控件的方法
    1 sql server 中merge的用法
  • 原文地址:https://www.cnblogs.com/wanghongze95/p/13842601.html
Copyright © 2020-2023  润新知