使用Anaconda搭建TensorFlow-GPU环境

前言:

     对于深度学习来说,各种框架torch,caffe,keras,mxnet,tensorflow,pandapanda环境要求各一,如果我们在一台服务器上部署了较多的这样的框架,那么各种莫名的冲突

会一直伴随着你,吃过很多次亏之后,慢慢的接触了Anaconda,真的是很爽的一个功能,来管理环境配置。我们进行tensorflow安装的时候,还是使用Anaconda,鉴于国内墙太高

,我们使用了Tsinghua的镜像文件,清华大学的Anaconda介绍地址见:https://mirror.tuna.tsinghua.edu.cn/help/anaconda/

这里记录下linux的安装方式:

 所使用的系统: ubuntu16.10

  安装步骤
        1: 先登录到这个页面:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 
       2. 下载: wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda2-2.4.1-Linux-x86_64.sh
        3. 运行: bash  Anaconda2-2.i.1-Linux-x86_64.sh [中间会有几个询问,全部设置yes或者y]
       4. 设置镜像仓库:
        TUNA 还提供了 Anaconda 仓库的镜像,运行以下命令:
          conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
          conda config --set show_channel_urls yes
        即可添加 Anaconda Python 免费仓库。
        运行 conda install numpy 测试一下吧。
     5. 安装tensorflow:
        5.1 查询conda下的tensorflow可以利用的镜像:
      anaconda search -t conda tensorflow

  大概会出现这些信息:

gxjun@gxjun:~$ anaconda search -t conda tensorflow
Using Anaconda API: https://api.anaconda.org
Run 'anaconda show <USER/PACKAGE>' to get more details:
Packages:
     Name                      |  Version | Package Types   | Platforms      
     ------------------------- |   ------ | --------------- | ---------------
     HCC/tensorflow            |    1.0.0 | conda           | linux-64       
     HCC/tensorflow-cpucompat  |    1.0.0 | conda           | linux-64       
     HCC/tensorflow-fma        |    1.0.0 | conda           | linux-64       
     SentientPrime/tensorflow  |    0.6.0 | conda           | osx-64         
                                          : TensorFlow helps the tensors flow
     acellera/tensorflow-cuda  |   0.12.1 | conda           | linux-64       
     anaconda/tensorflow       |    1.1.0 | conda           | linux-ppc64le, linux-64, osx-64, win-64
     anaconda/tensorflow-gpu   |    1.1.0 | conda           | linux-ppc64le, linux-64, win-64
     conda-forge/r-tensorflow  |      0.7 | conda           | linux-64, osx-64, win-64
     conda-forge/tensorflow    |    1.2.0 | conda           | linux-64, win-64, osx-64
                                          : TensorFlow helps the tensors flow
     creditx/tensorflow        |    0.9.0 | conda           | linux-64       
                                          : TensorFlow helps the tensors flow
     derickl/tensorflow        |    1.1.0 | conda           | osx-64         
     dhirschfeld/tensorflow    |    1.2.0 | conda           | win-64         
                                          : Computation using data flow graphs for scalable machine learning 
     dseuss/tensorflow         |          | conda           | osx-64         
     guyanhua/tensorflow       |    1.0.0 | conda           | linux-64       
     ijstokes/tensorflow       | 2017.03.03.1349 | conda, ipynb    | linux-64       
     jjh_cio_testing/tensorflow |    1.2.1 | conda           | linux-64       
                                          : TensorFlow is a machine learning library
     jjh_cio_testing/tensorflow-gpu |    1.2.1 | conda           | linux-64       
                                          : TensorFlow is a machine learning library
     jjh_ppc64le/tensorflow    |    1.2.1 | conda           | linux-ppc64le  
                                          : TensorFlow is a machine learning library
     jjh_ppc64le/tensorflow-gpu |    1.2.1 | conda           | linux-ppc64le  
                                          : TensorFlow is a machine learning library
     jjhelmus/tensorflow       | 0.12.0rc0 | conda, pypi     | linux-64, osx-64
                                          : TensorFlow helps the tensors flow
     jjhelmus/tensorflow-gpu   |    1.0.1 | conda           | linux-64       
     kevin-keraudren/tensorflow |    0.9.0 | conda           | linux-64       
     lcls-rhel7/tensorflow     |    1.1.0 | conda           | linux-64       
     marta-sd/tensorflow       |    1.2.0 | conda           | linux-64       
     marta-sd/tensorflow-gpu   |    1.2.0 | conda           | linux-64       
     memex/tensorflow          |    0.5.0 | conda           | linux-64, osx-64
                                          : TensorFlow helps the tensors flow
     mhworth/tensorflow        |    0.7.1 | conda           | osx-64         
                                          : TensorFlow helps the tensors flow
     miovision/tensorflow      | 0.10.0.gpu | conda           | linux-64, osx-64
     msarahan/tensorflow       | 1.0.0rc2 | conda           | linux-64       
     mutirri/tensorflow        | 0.10.0rc0 | conda           | linux-64       
     mwojcikowski/tensorflow   |    1.0.1 | conda           | linux-64       
     nehaljwani/tensorflow     |    1.1.0 | conda           | win-64, osx-64 
                                          : TensorFlow is a machine learning library
     nehaljwani/tensorflow-gpu |    1.1.0 | conda           | win-64         
                                          : TensorFlow is a machine learning library
     rdonnelly/tensorflow      |    0.9.0 | conda           | linux-64       
     rdonnellyr/r-tensorflow   |    0.4.0 | conda           | osx-64         
     test_org_002/tensorflow   | 0.10.0rc0 | conda           |                
Found 36 packages

      我们选择其中的一个进行安装之前,先查询这个分支的URL路径:

gxjun@gxjun:~$ anaconda show  nehaljwani/tensorflow-gpu
Using Anaconda API: https://api.anaconda.org
Name:    tensorflow-gpu
Summary: TensorFlow is a machine learning library
Access:  public
Package Types:  conda
Versions:
   + 1.1.0

To install this package with conda run:
     conda install --channel https://conda.anaconda.org/nehaljwani tensorflow-gpu

      5.2 安装

     conda install --channel https://conda.anaconda.org/nehaljwani tensorflow-gpu

      5.3 检测是否安装成功:

   在控制端输入:  
        python -> 进入python编辑环境
        import tensorflow as tf 

  如果没有报错,则说明幸运的安装成功了~

  对于失败的情况,我这里给出最容易出现的:

>>> import tensorflow as tf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/gxjun/anaconda2/lib/python2.7/site-packages/tensorflow/__init__.py", line 24, in <module>
    from tensorflow.python import *
  File "/home/gxjun/anaconda2/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "/home/gxjun/anaconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 52, in <module>
    raise ImportError(msg)
ImportError: Traceback (most recent call last):
  File "/home/gxjun/anaconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 41, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "/home/gxjun/anaconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "/home/gxjun/anaconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
ImportError: libcusolver.so.7.5: cannot open shared object file: No such file or directory

  这种问题,是说我们没有找到这个动态库,或者干脆就没有这个动态库.

   解决方法:

      先问是不是: 输入这条命令查查看有没有: locate libcusolver.so      

gxjun@gxjun:~$ locate   libcusolver.so
/usr/lib/x86_64-linux-gnu/libcusolver.so
/usr/lib/x86_64-linux-gnu/libcusolver.so.8.0
/usr/lib/x86_64-linux-gnu/libcusolver.so.8.0.44
/usr/lib/x86_64-linux-gnu/stubs/libcusolver.so
/usr/local/cuda-8.0/doc/man/man7/libcusolver.so.7
/usr/local/cuda-8.0/targets/x86_64-linux/lib/libcusolver.so
/usr/local/cuda-8.0/targets/x86_64-linux/lib/libcusolver.so.8.0
/usr/local/cuda-8.0/targets/x86_64-linux/lib/libcusolver.so.8.0.61
/usr/local/cuda-8.0/targets/x86_64-linux/lib/stubs/libcusolver.so
/usr/share/man/man7/libcusolver.so.7.gz

我们发现我们只有libcusolver.so.8.0,并没有我们要找的libcusolver.so.7.5,看了一下官方的文档:

  给出的建议是: 可以使用.8.0来替代.7.5,我们命名一个.8.0的软连接为.7.5

      我们先到/usr/lib/cuda/lib64 下:

ln -s libcusolver.so.8.0  libcusolver.so.7.5

  然后在.bashrc系统环境下配置一下这个路径:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/cuda/lib64"
export CUDA_HOME=/usr/local/cuda

然后在测试:

gxjun@gxjun:~$ python 
Python 2.7.12 |Anaconda 4.2.0 (64-bit)| (default, Jul  2 2016, 17:42:40) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>> import tensorflow as tf
>>> 

正常了,说明已经完全安装好了~

  参考:

    https://mirror.tuna.tsinghua.edu.cn/help/anaconda/

    http://www.jianshu.com/p/7be2498785b1

              https://stackoverflow.com/questions/42013316/after-building-tensorflow-from-source-seeing-libcudart-so-and-libcudnn-errors

              https://github.com/tensorflow/tensorflow/issues/1501

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯移动品质中心TMQ的专栏

Android手机上用户操作模拟方法的研究与实现

一、 问题背景 最近研究了一下Android手机上用户操作的模拟方法, 有一些心得与大家分享下。 之所以去研究Android手机上用户操作的模拟方法,是因为最...

1.5K60
来自专栏AI科技评论

开发 | 在 Mac OS X 装不上 TensorFlow?看了这篇就会装

AI科技评论按:本文原作者Enachan。本文原载于作者的GitHub。译者投稿,雷锋网版权所有。 这个文档说明了如何在 Mac OS X 上安装 Tensor...

37770
来自专栏进击的程序猿

raft 系列解读(4) 之 etcd-raft学习

大多数Raft的实现都是整体设计,包括存储处理,消息序列化和网络传输,但是本raft库在实现的时候只实现了最核心的算法,换来了灵活性和性能,网络和disk IO...

15540
来自专栏生信技能树

ATAC-seq实操

本实操完全学习了:给学徒的ATAC-seq数据实战(附上收费视频) 的代码及流程,首先致谢!

1.2K10
来自专栏逸鹏说道

C# 温故而知新:Stream篇(七)

NetworkStream 目录: NetworkStream的作用 简单介绍下TCP/IP 协议和相关层次 简单说明下 TCP和UDP的区别 简单介绍下套接字...

32850
来自专栏非典型程序猿

你不知道的gRPC反向代理

可用性、可靠性和扩展性是衡量后台服务的基本标准,HTTP反向代理,是任何一个提供大型Web服务后台所必备的,用以提高服务的这些基础参数,且通过支持到负载均衡而进...

2.7K120
来自专栏利炳根的专栏

学习笔记TF064:TensorFlow Kubernetes

AlphaGo,每个实验1000个节点,每个节点4个GPU,4000 GPU。Siri,每个实验2个节点,8个GPU。AI研究,依赖海量数据计算,离性能计算资源...

71300
来自专栏AI研习社

在 Mac OS X 装不上 TensorFlow?看了这篇就会装

这个文档说明了如何在 Mac OS X 上安装 TensorFlow。(从 1.2 版本开始,在 Mac OS X 上 TensorFlow 不再支持 GPU。...

75260
来自专栏乐沙弥的世界

Oracle RAC OCR 的管理与维护

   OCR相当于Windows的注册表。对于Windows而言,所有的软件信息,用户,配置,安全等等统统都放到注册表里边。而集群呢,同样如此,所有和集群相关的...

12940
来自专栏Kubernetes

TensorFlow on Kubernetes性能瓶颈定位

Author: xidianwangtao@gmail.com 当前性能问题描述 增加worker数,一定范围内能带来较好的性能提升,但是继续增加work...

68970

扫码关注云+社区

领取腾讯云代金券