使用Anaconda搭建TensorFlow-GPU环境

  

前言:

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

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

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

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

 所使用的系统: ubuntu16.

  安装步骤
: 先登录到这个页面:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
   . 下载: wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda2-2.4.1-Linux-x86_64.sh
. 运行: bash Anaconda2-.i.-Linux-x86_64.sh [中间会有几个询问,全部设置yes或者y]
  . 设置镜像仓库:
     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 测试一下吧。
. 安装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. | conda | linux-
HCC/tensorflow-cpucompat | 1.0. | conda | linux-
HCC/tensorflow-fma | 1.0. | conda | linux-
SentientPrime/tensorflow | 0.6. | conda | osx-
: TensorFlow helps the tensors flow
acellera/tensorflow-cuda | 0.12. | conda | linux-
anaconda/tensorflow | 1.1. | conda | linux-ppc64le, linux-, osx-, win-
anaconda/tensorflow-gpu | 1.1. | conda | linux-ppc64le, linux-, win-
conda-forge/r-tensorflow | 0.7 | conda | linux-, osx-, win-
conda-forge/tensorflow | 1.2. | conda | linux-, win-, osx-
: TensorFlow helps the tensors flow
creditx/tensorflow | 0.9. | conda | linux-
: TensorFlow helps the tensors flow
derickl/tensorflow | 1.1. | conda | osx-
dhirschfeld/tensorflow | 1.2. | conda | win-
: Computation using data flow graphs for scalable machine learning
dseuss/tensorflow | | conda | osx-
guyanhua/tensorflow | 1.0. | conda | linux-
ijstokes/tensorflow | 2017.03.03.1349 | conda, ipynb | linux-
jjh_cio_testing/tensorflow | 1.2. | conda | linux-
: TensorFlow is a machine learning library
jjh_cio_testing/tensorflow-gpu | 1.2. | conda | linux-
: TensorFlow is a machine learning library
jjh_ppc64le/tensorflow | 1.2. | conda | linux-ppc64le
: TensorFlow is a machine learning library
jjh_ppc64le/tensorflow-gpu | 1.2. | conda | linux-ppc64le
: TensorFlow is a machine learning library
jjhelmus/tensorflow | 0.12.0rc0 | conda, pypi | linux-, osx-
: TensorFlow helps the tensors flow
jjhelmus/tensorflow-gpu | 1.0. | conda | linux-
kevin-keraudren/tensorflow | 0.9. | conda | linux-
lcls-rhel7/tensorflow | 1.1. | conda | linux-
marta-sd/tensorflow | 1.2. | conda | linux-
marta-sd/tensorflow-gpu | 1.2. | conda | linux-
memex/tensorflow | 0.5. | conda | linux-, osx-
: TensorFlow helps the tensors flow
mhworth/tensorflow | 0.7. | conda | osx-
: TensorFlow helps the tensors flow
miovision/tensorflow | 0.10..gpu | conda | linux-, osx-
msarahan/tensorflow | 1.0.0rc2 | conda | linux-
mutirri/tensorflow | 0.10.0rc0 | conda | linux-
mwojcikowski/tensorflow | 1.0. | conda | linux-
nehaljwani/tensorflow | 1.1. | conda | win-, osx-
: TensorFlow is a machine learning library
nehaljwani/tensorflow-gpu | 1.1. | conda | win-
: TensorFlow is a machine learning library
rdonnelly/tensorflow | 0.9. | conda | linux-
rdonnellyr/r-tensorflow | 0.4. | conda | osx-
test_org_002/tensorflow | 0.10.0rc0 | conda |
Found 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. 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 , in <module>
File "/home/gxjun/anaconda2/lib/python2.7/site-packages/tensorflow/__init__.py", line , in <module>
from tensorflow.python import *
File "/home/gxjun/anaconda2/lib/python2.7/site-packages/tensorflow/python/__init__.py", line , in <module>
from tensorflow.python import pywrap_tensorflow
File "/home/gxjun/anaconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line , 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 , 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 , in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "/home/gxjun/anaconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line , 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.
/usr/lib/x86_64-linux-gnu/stubs/libcusolver.so
/usr/local/cuda-8.0/doc/man/man7/libcusolver.so.
/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.
/usr/local/cuda-8.0/targets/x86_64-linux/lib/stubs/libcusolver.so
/usr/share/man/man7/libcusolver.so..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. |Anaconda 4.2. (-bit)| (default, Jul , ::)
[GCC 4.4. (Red Hat 4.4.-)] 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://*.com/questions/42013316/after-building-tensorflow-from-source-seeing-libcudart-so-and-libcudnn-errors

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

上一篇:PHP后台图片上传作品 接口


下一篇:.NET Remoting与Socket、Webservice和WCF的比较及优势 (转)