首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用Anaconda搭建TensorFlow-GPU环境

使用Anaconda搭建TensorFlow-GPU环境

作者头像
Gxjun
发布于 2018-03-27 03:52:49
发布于 2018-03-27 03:52:49
4.7K00
代码可运行
举报
文章被收录于专栏:mlml
运行总次数:0
代码可运行

前言:

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 所使用的系统: 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

  大概会出现这些信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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路径:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
     conda install --channel https://conda.anaconda.org/nehaljwani tensorflow-gpu

      5.3 检测是否安装成功:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   在控制端输入:  
        python -> 进入python编辑环境
        import tensorflow as tf 

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> 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      

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ln -s libcusolver.so.8.0  libcusolver.so.7.5

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/cuda/lib64"
export CUDA_HOME=/usr/local/cuda

然后在测试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-07-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
私有api:com.apple.springboard.lockcomplete审核被拒
被拒 满心期待项目上线,等到的结果确是被拒,查看被拒原因,竟然因为com.apple.springboard.lockcomplete是苹果禁止的私有API. 如何确定是哪里引用了com.apple.springboard.lockcomplete呢? 1.  打开终端,   cd 到自己的项目下; 2.输入: find . | grep -v .svn | grep "\.a" | grep -v "\.app" | xargs grep com.apple.springboard.lockcomplet
honey缘木鱼
2018/07/04
1.2K0
手把手教你构建自定义的Mimikatz二进制文件
在这篇文章中,我们将教会大家如何通过修改源代码的方式构建自定义的Mimikatz二进制文件,并绕过反病毒/终端检测与响应产品。
FB客服
2020/10/27
1K0
手把手教你构建自定义的Mimikatz二进制文件
有赞iOS-基于二进制的编译提效策略
自有赞零售正式发布以来,已迭代百余个版本,业务的发展免不了带来工程代码的飞速增加,时至今日,有赞零售工程的业务代码数量已达24w行,所使用的的二方/三方 Pod 库的数量达到了100+,业务模块包括商品,交易,库存,会员等模块一共有15+;工程的急速膨胀给我们的日常开发中带来了诸多痛点:
有赞coder
2020/08/24
1.8K0
有赞iOS-基于二进制的编译提效策略
Kubernetes 二进制部署(一)单节点部署(Master 与 Node 同一机器)
0. 前言 最近受“新冠肺炎”疫情影响,在家等着,入职暂时延后,在家里办公和学习 尝试通过源码编译二进制的方式在单一节点(Master 与 Node 部署在同一个机器上)上部署一个 k8s 环境,整理相关步骤和脚本如下 参考原文:Kubernetes二进制部署(一)单节点部署 1. 相关概念 1.1 基本架构 1.2 核心组件  1.2.1 Master 1.2.1.1 kube-apiserver 集群的统一入口,各组件协调者 以RESTful API提供接口服务 所有对象资源的增删改查和监听操作都
西凉风雷
2022/11/23
1.5K0
Kubernetes 二进制部署(一)单节点部署(Master 与 Node 同一机器)
以二进制文件安装K8S之部署Master高可用集群
如下以二进制文件方式部署安全的Kubernetes Master高可用集群,具体步骤如下: 1.下载Kubernetes服务的二进制文件 2.部署kube-apiserver服务 3.创建客户端CA证书 4.创建客户端连接kube-apiserver服务所需的kubeconfig配置文件 5.部署kube-controller-manager服务 6.部署kube-scheduler服务 7.使用HAProxy和keepalived部署高可用负载均衡器
编程随笔
2023/10/15
6550
以二进制文件安装K8S之部署Master高可用集群
如何在 npm 上发布二进制文件?
📢📢📢号外,号外。我们的f_cli现在有了npm版本了。有两种主流的方式来访问
前端柒八九
2024/02/17
4000
如何在 npm 上发布二进制文件?
在Linux环境中使用Go编译静态二进制文件[译]
Go语言的一个优势是能够生成静态链接的可执行程序。但是,这并不是说默认情况下编译出来的Go可执行程序都是静态链接的。在有些情况下,需要额外的操作才能实现。具体情况取决于操作系统,本文介绍Unix系统下如何达成这一目标。
数据小冰
2025/04/01
2260
在Linux环境中使用Go编译静态二进制文件[译]
K8S学习笔记之二进制部署Kubernetes v1.13.4 高可用集群
本次采用二进制文件方式部署,本文过程写成了更详细更多可选方案的ansible部署方案 https://github.com/zhangguanzhang/Kubernetes-ansible 和之前的步骤差不多都是和kubeadm步骤一样,不过这次所有kubelet全部走bootstrap不会像之前master上的kubelet生成证书,另外证书换成openssl生成
Jetpropelledsnake21
2019/04/01
2K0
K8S学习笔记之二进制部署Kubernetes v1.13.4 高可用集群
鲲鹏arm64 centos7下官方二进制文件带证书https安装minio X509等问题解决实践
下载地址:https://dl.minio.io/server/minio/release/linux-arm64/minio
cookily
2022/09/09
1.7K0
鲲鹏arm64 centos7下官方二进制文件带证书https安装minio X509等问题解决实践
【深入浅出C#】章节 7: 文件和输入输出操作:处理文本和二进制数据
文件和输入输出操作在计算机编程中具有重要性,因为它们涉及数据的持久化存储和交互。数据可以是不同类型的,例如文本、图像、音频、视频和二进制数据。这些不同类型的数据具有不同的存储需求。 文本数据是最常见的数据类型之一,用于存储和传输可读的字符信息。文本文件在配置文件、日志记录和文档中广泛使用。处理文本数据需要关注字符编码和解码,确保数据在不同系统之间正确地传递 二进制数据则是以字节为单位存储的数据,适用于存储非文本数据,如图像、音频和视频。由于这些数据的特殊性,需要特定的读写方式来确保数据的正确性和完整性。 不同类型数据的存储需求不同。文本数据需要考虑字符编码、换行符等。二进制数据需要考虑字节顺序、文件结构等。了解如何处理不同类型的数据能够帮助开发人员有效地进行文件读写和输入输出操作,从而满足应用程序的需求。
喵叔
2023/08/14
1.1K0
K8S二进制部署过程-v1.17.0
到 https://github.com/coreos/etcd/releases 页面下载最新版本的发布包:
cuijianzhe
2022/06/14
7740
K8S二进制部署过程-v1.17.0
搭建k8s高可用集群 - 二进制方式
这五台机器均需事先安装好Docker,由于安装过程比较简单这里不进行介绍,可以参考官方文档:
端碗吹水
2020/09/23
2K1
搭建k8s高可用集群 - 二进制方式
了解和分析iOS Crash Report
翻译自苹果官方文档:Understanding and Analyzing Application Crash Reports
nimomeng
2018/09/13
1.9K0
了解和分析iOS Crash Report
二进制程序分析指南
分析恶意软件的第一步是收集二进制程序在主机上执行的行为事件,研究人员根据这些行为大体形成一个思路来描述恶意软件的功能。
FB客服
2021/10/11
2.3K0
iPhone使用教程_iphone基础使用
大家好,又见面了,我是你们的朋友全栈君。 iPhone史上最全的使用教程 iPhone的解锁、越狱、激活、固件等等是什么意思,有什么分别 这几天看见好多新人问这几个词的含义及区别。我在这儿说说我的看法,不是官方解释,不懂的学习一下,懂的绕道,如有错误,敬请指正! 第一次买来时或恢复官方固件后,iPhone会处于那种只能拨打紧急电话状态,不能使用其它功能,如果要使用其它功能,就必须进行一项操作,那就是“激活”。一般有锁版的只有使用对应运营商的卡(如美国的AT&T卡)或者无锁版使用任何卡,才可以激活。激活之
全栈程序员站长
2022/09/29
14.3K0
kubernetes(七) 二进制部署k8s(1.18.4版本)
Etcd 是一个分布式键值存储系统,Kubernetes使用Etcd进行数据存储,所以先准备一个Etcd数据库, 为解决Etcd单点故障,应采用集群方式部署,这里使用3台组建集群,可容忍1台机器故障,当然,你也 可以使用5台组建集群,可容忍2台机器故障。
alexhuiwang
2020/09/23
9020
kubernetes(七) 二进制部署k8s(1.18.4版本)
Python100Days
这可能是我目前发现最好最好的Python教程了,故整理至我的博客。 原项目GitHub地址https://github.com/jackfrued/Python-100-Days
一点儿也不潇洒
2018/08/07
10.1K0
正经分析iOS包大小优化
包大小优化是项目开发中不可避免会遇到的,网上关于包大小优化的文章很多,每篇文章说的都不尽相同,笔者曾经根据网上的文章做过包大小优化,但效果不尽人意;因此笔者想根据已有的文章、知识结合自己的理解、实践,做一份总结梳理,整理自己的包大小优化逻辑,不光要知道怎么做可以让包大小变化,还要知道为什么这么做能产生效果,所以就有了这篇文章。
莫空9081
2021/05/28
6.3K0
Android必看面试题——基础篇
温馨提示:文章干货内容较多,可能一次看不完,建议点个“在看”并收藏,下次再查阅不迷路~
Android扫地僧
2020/03/19
3.2K1
Android必看面试题——基础篇
【Java面试】第二章:P5级面试
特别说明:本文薪资目标为22k,别纠结于薪资能不能到22k,在到达22k之前,这些博文里的专业技能方面都要懂吧,如果连这些基础的东西都不懂,你到了22k,估计也是很水的存在了。除此之外,拿22薪你还需要具备,能独立完成一个复杂模块的需求分析、方案设计和最终落地实现,寻找更优的设计和解决方案,积极优化慢 SQL、慢服务,具备排查问题的能力,遇到线上问题能及时定位和修复上线,例如:数据库死锁、服务器宕机、服务器 Full GC 频繁等。合理分配需求,做好进度把控、风险评估、Code Review。
全栈程序员站长
2022/08/01
8240
【Java面试】第二章:P5级面试
推荐阅读
相关推荐
私有api:com.apple.springboard.lockcomplete审核被拒
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档