远程Linux服务器装Anaconda&指定版本TensorFlow

说明:

由于疫情影响,原先使用的服务器已断电,故重选了一台服务器对环境重选进行搭建,正好补上这篇博文。

01 下载Anaconda3

  1. 进入清华开源软件镜像站,其网址如下:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
  2. 下载相应的版本信息:

此处可通过命令 uname -a查看系统的版本等信息:

zcc@new-gpu:/home$ uname -a
Linux new-gpu 4.4.0-78-generic #99-Ubuntu SMP Thu Apr 27 15:29:09 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
  1. 通过Xftp将下载好的软件上传到服务器上

02 安装

  1. 定位到Anaconda3-2019.10-Linux-x86_64.sh所在路径

  2. 在命令窗口中输入:bash Anaconda3-2019.10-Linux-x86_64.sh 进行安装

    • 安装过程中根据相应提示,输入enter/yes等确认操作
  3. 安装过程很快速,安装完成后,提示:Thank you for installing Anaconda3!

  4. 环境激活:输入命令source ~/.bashrc ,激活环境后,默认进入base环境下

    • 如:(base) zcc@new-gpu:~$

    若无法通过该命令激活环境,则采取下列操作:

    1. vim ~/.bashrc
    2. 在最后一行加上:export PATH=$PATH:/你的路径/anaconda3/bin
    3. 保存后再运行source ~/.bashrc
  5. 验证是否安装成功:输入命令conda --version,查看是否能查看安装版本

    • (base) zcc@new-gpu:~$ conda --version
      conda 4.7.12

上述版本的Anaconda安装后,默认安装了python3

  1. 镜像源的修改:各种镜像源的更换

03 安装指定版本TensorFlow

版本解决

考虑到项目中需要使用的TensorFlowpython版本和服务器端现有的CUDA``版本,故重新创建一个新的conda环境进行各个内容的安装,此处我需要安装的版本为:python3.6,tensorflow-gpu 1.12.0

  1. 查看服务器端的cudacudnn版本, 通过输入命令:cat /usr/local/cuda/version.txtcat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2,如下:
(base) zcc@new-gpu:~$ cat /usr/local/cuda/version.txt
CUDA Version 8.0.61
(base) zcc@new-gpu:~$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 5
#define CUDNN_MINOR 1
#define CUDNN_PATCHLEVEL 10
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL) #include "driver_types.h"
  1. 在以下网址查看需要安装的TensorFlow是否匹配cudacudnnPython版本,如下:https://tensorflow.google.cn/install/source

  1. 非常不幸的是,这台服务器上的CUDA版本和我的需要安装的TensorFlow版本并不匹配:-(

该不匹配的情况不会影响你后续的安装,因此先进行后续的安装,完成后再来解决cuda版本匹配问题

修改CUDNCUDNN版本

再次说明:因为之前我遇到过一次该问题,也的确是会有版本冲突的问题,去了英伟达的官方网下载了相应的cudnn,但是这次虽然版本也没有匹配上,但是程序居然跑通了,弄的我一脸懵逼。

故在此只贴出上次解决是参考的博客:https://blog.csdn.net/weixin_42567692/article/details/80844696

亲测有效

后来在路径usr/local一查,原来服务器下CUDA8.0和CUDA9.0的版本都有

创建新Conda环境

  1. 创建一个新的conda环境,并指定Python的版本号未3.6
# conda create -n 环境名 python=制定版本号
conda create -n tensorflow1.12 python=3.6 # ....创建环境,安装各种包.... # To activate this environment, use
#
# $ conda activate tensorflow1.12
#
# To deactivate an active environment, use
#
# $ conda deactivate

由于并没有进行镜像的更换,可以在命令后方制定临时的镜像源

  1. 安装成后,通过命令conda info -e查看目前现有环境,通过命令conda activate tensorflow1.12切换到指定环境

    当出现如下错误时:

    CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
    To initialize your shell, run $ conda init <SHELL_NAME>

    解决:

    1. 输入命令source activate进入base环境
    2. 再输入conda activate 环境名即可
    3. 退出环境命令:source deactivate
  2. 输入python,查看是python是否是你指定安装的Python版本

安装tensorflow

方式一:直接安装

通过pip工具对tensorflow-gpu进行安装

# 指定临时镜像源对指定版本的tensorflow进行安装
pip install tensorflow-gpu==1.12.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/ # ...漫长的安装tensorflow+依赖包...

若出现下载链接超时pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='pypi.tuna.tsinghua.edu.cn', port=443): Read timed out.的异常

可设定超时时间:pip install --default-timeout=1000 tensorflow-gpu==....

若还是下载缓慢,比如我这次安装时就遇见了,那就采用下载方式二:

方式二:本地下载好再装

  1. 根据pip在下载时提示的网站地址,自行下载

例如我下载的tensorflow1,12-gpu的地址为: https://pypi.tuna.tsinghua.edu.cn/packages/55/7e/bec4d62e9dc95e828922c6cec38acd9461af8abe749f7c9def25ec4b2fdb/tensorflow_gpu-1.12.0-cp36-cp36m-manylinux1_x86_64.whl

  1. 下载完成后,将文件tensorflow_gpu-1.12.0-cp36-cp36m-manylinux1_x86_64.whl移动到服务器端
  2. 通过命令pip install 包路径+包名指定刚刚上传的包路径进行安装

此方法安装也会去网上下载所依赖的包,因此最好也指定下路径,最好还指定下超时时间

我的完整命令如下:

pip install --default-time=1000 tensorflow_gpu-1.12.0-cp36-cp36m-manylinux1_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/

验证:

经过漫长的安装:控制端提示安装成功,验证如下:

(tensorflow1.12) zcc@new-gpu:~$ python
Python 3.6.10 |Anaconda, Inc.| (default, Jan 7 2020, 21:14:29)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.__version__
'1.12.0'

可见,我们tensorflow1.12安装成功

在导入包的时候会报一串FutureWarning警告,这是由于numpy的版本问题,不影响使用,网上有很多解决方法,此处就不贴解决方案了。

参考:

https://blog.csdn.net/weixin_41519463/article/details/89373643

https://blog.csdn.net/qq_33221533/article/details/100150534

https://blog.csdn.net/weixin_38705903/article/details/86533863

PS:就在我刚刚装完环境后,居然告诉我电力恢复,我真是晕了:-(

Linux服务器装Anaconda&TensorFlow的更多相关文章

  1. TensorFlow开发流程 Windows下PyCharm开发+Linux服务器运行的解决方案

    不知道是否有许多童鞋像我一样,刚开始接触TensorFlow或者其他的深度学习框架,一时间有一种手足无措的感觉. 怎么写代码?本机和服务器的关系是啥?需要在本机提前运行吗?怎么保证写的代码是对的??? ...

  2. 华为云linux服务器部署TensorFlow-gpu全攻略

    最近在玩谷歌新开源的自然语言模型bert,最开始是在google的免费GPU上面来弄的(这个部分其实也是可以写一个教程的,中间坑也挺多).但谷歌比较坑人,小数据集还行,大点的数据集训练耗费时间长,再加 ...

  3. 在Linux服务器上运行Jupyter notebook server教程

    在Linux服务器上运行Jupyter notebook server教程 很多deep learning教程都推荐在jupyter notebook运行python代码,方便及时交互.但只在本地运行 ...

  4. Django项目在Linux服务器上部署和躺过的坑

    引言 在各方的推荐下,领导让我在测试环境部署之前开发的测试数据预报平台.那么问题来了,既然要在服务器上部署, 就需要准备: 1.linux服务器配置 2.linux安装python环境搭建与配置 3. ...

  5. Linux服务器安全配置

    众所周知,网络安全是一个非常重要的课题,而服务器是网络安全中最关键的环节.Linux被认为是一个比较安全的Internet服务器,作为一种开放源代码操作系统,一旦Linux系统中发现有安全漏洞,Int ...

  6. Linux服务器开机没响应,BIOS信息都没有

    于2015-10-16,记得是4月份装的服务器,上边ineedle都部署完毕,当时没有派上用场,这次华为测试需要一台ineedle测试机,便把这个安装好的ineedle请出来了,插上电源后,接上网线, ...

  7. linux服务器下添加字体

    版权声明:本文为楼主原创文章,未经楼主允许不得转载,如要转载请注明来源. 引言:这两天在开发一个动态生成海报的东西(图片拼接,图片水印),开发在windows下没有问题,图片和文字都能正常的生成出来. ...

  8. 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群

    高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...

  9. Linux服务器操作系统

    Linux服务器操作系统 今日大纲 ●    服务器操作系统的系列.Linux的主流产品.虚拟机软件 ●    安装linux ●    linux基本命令 ●    用户管理及权限(多用户) ●   ...

随机推荐

  1. Android系统编程入门系列之应用内数据保存数据库

    上篇文章已经介绍了如何使用SharedPreferences存储键值对形式的轻量级数据,对于那些相同结构的多组数据,类似于存储Java中定义的类的多个对象属性值,如果按照键值对的形式一条条读写,需要分 ...

  2. noip模拟题7

    目录 T1:匹配 T2:回家 思路 上代码: T3:寿司 基本思路: 上代码: T1:匹配 ##思路:   首先,这道题既可以用KMP,也可以用hash   先说KMP,首先要注意的一点是:KMP的n ...

  3. 学习Tomcat(一)之容器概览

    Tomcat是Apache软件基金会的一个顶级项目,由Apache.Sun和其它一些公司及个人共同开发,是目前比较流行的Web服务器之一.Tomcat是一个开源的.小型的轻量级应用服务器,具有占用系统 ...

  4. JDK7&JDK9处理异常新特性

    1.JDK7新特性是在 try (定义对象,作用域就是try方法体) 复制一个文件实例: 复制文件的原理: 先从硬盘写出到内存中,创建文件输入流对象 FileInputStream fis; 中间是在 ...

  5. 第23篇-虚拟机对象操作指令之getstatic

    Java虚拟机规范中定义的对象操作相关的字节码指令如下表所示. 0xb2 getstatic 获取指定类的静态域,并将其值压入栈顶 0xb3 putstatic 为指定的类的静态域赋值 0xb4 ge ...

  6. zip命令常用选项

    大家都知道,在linux上一切皆文件,在实际生产环境中,如果我们需要部署一些系统的服务,我们会将一些软件包提前下载下来统一放到一个文件夹中, 然后将部署的过程用shell或者python写成一个脚本, ...

  7. k8s 部署elasticsearch报 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

    1.由于登不上云的节点 不采用修改节点配置的方式 修改部署的stateful 加上 initContainers 它和 containers 同一层级的 initContainers: - name: ...

  8. HDU - 3790 最短路径问题 (dijkstra算法)

    HDU - 3790 最短路径问题 Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费 ...

  9. java设计模式,工厂,代理模式等

    javaEE设计模式: 工厂模式:主要分为三种模式: 定义:在基类中定义创建对象的一个接口,让子类决定实例化哪个类.工厂方法让一个类的实例化延迟到子类中进行. 为什么要使用工厂模式: (1) 解耦 : ...

  10. PHP设计模式之享元模式

    享元模式,"享元"这两个字在中文里其实并没有什么特殊的意思,所以我们要把它拆分来看."享"就是共享,"元"就是元素,这样一来似乎就很容易理解 ...