Linux服务器装Anaconda&TensorFlow
远程Linux服务器装Anaconda&指定版本TensorFlow
说明:
由于疫情影响,原先使用的服务器已断电,故重选了一台服务器对环境重选进行搭建,正好补上这篇博文。
01 下载Anaconda3
- 进入清华开源软件镜像站,其网址如下:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
- 下载相应的版本信息:
此处可通过命令
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
- 通过
Xftp
将下载好的软件上传到服务器上
02 安装
定位到
Anaconda3-2019.10-Linux-x86_64.sh
所在路径在命令窗口中输入:
bash Anaconda3-2019.10-Linux-x86_64.sh
进行安装- 安装过程中根据相应提示,输入enter/yes等确认操作
安装过程很快速,安装完成后,提示:
Thank you for installing Anaconda3!
环境激活:输入命令
source ~/.bashrc
,激活环境后,默认进入base
环境下- 如:
(base) zcc@new-gpu:~$
若无法通过该命令激活环境,则采取下列操作:
vim ~/.bashrc
- 在最后一行加上:
export PATH=$PATH:/你的路径/anaconda3/bin
- 保存后再运行
source ~/.bashrc
- 如:
验证是否安装成功:输入命令
conda --version
,查看是否能查看安装版本(base) zcc@new-gpu:~$ conda --version
conda 4.7.12
上述版本的
Anaconda
安装后,默认安装了python3
- 镜像源的修改:各种镜像源的更换
03 安装指定版本TensorFlow
版本解决
考虑到项目中需要使用的TensorFlow
与python
版本和服务器端现有的CUDA``版本,故重新创建一个新的conda
环境进行各个内容的安装,此处我需要安装的版本为:python3.6
,tensorflow-gpu 1.12.0
- 查看服务器端的
cuda
与cudnn
版本, 通过输入命令:cat /usr/local/cuda/version.txt
与cat /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"
- 在以下网址查看需要安装的
TensorFlow
是否匹配cuda
,cudnn
和Python
版本,如下:https://tensorflow.google.cn/install/source
- 非常不幸的是,这台服务器上的
CUDA
版本和我的需要安装的TensorFlow
版本并不匹配:-(
该不匹配的情况不会影响你后续的安装,因此先进行后续的安装,完成后再来解决cuda版本匹配问题
修改CUDN
和CUDNN
版本
再次说明:因为之前我遇到过一次该问题,也的确是会有版本冲突的问题,去了英伟达的官方网下载了相应的cudnn
,但是这次虽然版本也没有匹配上,但是程序居然跑通了,弄的我一脸懵逼。
故在此只贴出上次解决是参考的博客:https://blog.csdn.net/weixin_42567692/article/details/80844696
亲测有效
后来在路径
usr/local
一查,原来服务器下CUDA8.0和CUDA9.0的版本都有
创建新Conda
环境
- 创建一个新的
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
由于并没有进行镜像的更换,可以在命令后方制定临时的镜像源
- 安装成后,通过命令
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>
解决:
- 输入命令
source activate
进入base环境 - 再输入
conda activate 环境名
即可 - 退出环境命令:
source deactivate
- 输入命令
- 输入
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==....
若还是下载缓慢,比如我这次安装时就遇见了,那就采用下载方式二:
方式二:本地下载好再装
- 根据
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
- 下载完成后,将文件
tensorflow_gpu-1.12.0-cp36-cp36m-manylinux1_x86_64.whl
移动到服务器端 - 通过命令
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的更多相关文章
- TensorFlow开发流程 Windows下PyCharm开发+Linux服务器运行的解决方案
不知道是否有许多童鞋像我一样,刚开始接触TensorFlow或者其他的深度学习框架,一时间有一种手足无措的感觉. 怎么写代码?本机和服务器的关系是啥?需要在本机提前运行吗?怎么保证写的代码是对的??? ...
- 华为云linux服务器部署TensorFlow-gpu全攻略
最近在玩谷歌新开源的自然语言模型bert,最开始是在google的免费GPU上面来弄的(这个部分其实也是可以写一个教程的,中间坑也挺多).但谷歌比较坑人,小数据集还行,大点的数据集训练耗费时间长,再加 ...
- 在Linux服务器上运行Jupyter notebook server教程
在Linux服务器上运行Jupyter notebook server教程 很多deep learning教程都推荐在jupyter notebook运行python代码,方便及时交互.但只在本地运行 ...
- Django项目在Linux服务器上部署和躺过的坑
引言 在各方的推荐下,领导让我在测试环境部署之前开发的测试数据预报平台.那么问题来了,既然要在服务器上部署, 就需要准备: 1.linux服务器配置 2.linux安装python环境搭建与配置 3. ...
- Linux服务器安全配置
众所周知,网络安全是一个非常重要的课题,而服务器是网络安全中最关键的环节.Linux被认为是一个比较安全的Internet服务器,作为一种开放源代码操作系统,一旦Linux系统中发现有安全漏洞,Int ...
- Linux服务器开机没响应,BIOS信息都没有
于2015-10-16,记得是4月份装的服务器,上边ineedle都部署完毕,当时没有派上用场,这次华为测试需要一台ineedle测试机,便把这个安装好的ineedle请出来了,插上电源后,接上网线, ...
- linux服务器下添加字体
版权声明:本文为楼主原创文章,未经楼主允许不得转载,如要转载请注明来源. 引言:这两天在开发一个动态生成海报的东西(图片拼接,图片水印),开发在windows下没有问题,图片和文字都能正常的生成出来. ...
- 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群
高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...
- Linux服务器操作系统
Linux服务器操作系统 今日大纲 ● 服务器操作系统的系列.Linux的主流产品.虚拟机软件 ● 安装linux ● linux基本命令 ● 用户管理及权限(多用户) ● ...
随机推荐
- Docker容器管理——Docker容器常用命令
1.查看所有的容器 docker ps 2.查看运行的容器 docker ps -a 3.启动.停止.重启docker容器 docker start ... docker stop ... docke ...
- noip模拟29
这次终于是早上考试了 早上考试手感不错,这次刷新了以前的最高排名- %%%cyh巨佬 \(rk1\) %%%CT巨佬 \(t2\) 90 纵观前几,似乎我 \(t3\) 是最低的-- 总计挂分10分, ...
- python库--pandas--写入文本文件
pandas.DataFrame.to_csv 参数 说明 path_or_buf=None 文件路径或对象, 若果为None, 则结果作为字符串返回 sep=',' 分隔符 na_rep='' 缺失 ...
- redis的集群安装
1.创建安装目录 在master ,node1 ,node2中分别创建 mkdir /usr/local/soft/redis-cluster 2.将redis 复制到redis-cluster 目录 ...
- layui日期选择无效的问题
解决layui引入时间控件无效的问题 - 简书 (jianshu.com) 原因是因为在使用日期选择器的时候,layui源码里有一个laydate.css文件找不到 将下载的文档文件里的css文件夹, ...
- express 路由匹配和数据获取
express配置路由只需要通过app.method(url,func)来配置,其中url配置和其中的参数获取方法不同 直接写全路径 路由中允许存在. get请求传入的参数 router.get(&q ...
- Docker系列(16)- 容器数据卷
什么是容器数据卷 docker的理念回顾 将应用和环境打包成一个镜像 数据?如果数据都在容器中,那么我们容器删除,数据就会丢失!新增一个需求:数据可以持久化 MySQL,容器删了等于删库跑路!新增一个 ...
- Java开发基础平台带集成的审批工作流
前言 activiti工作流,企业erp.oa.hr.crm等审批系统轻松落地,请假审批demo从流程绘制到审批结束实例. 一.项目形式 springboot+vue+activiti集成了activ ...
- modern php closure 闭包
* 在array_map()函数中使用闭包 <?php $numbersPlusOne = array_map(function($number) { return $number + 1; } ...
- Windows环境下实现WireShark抓取HTTPS
https 加密传输,Wireshark 没有设置的情况下是没有办法抓到包的 https 的数据包. 设置系统环境变量(SSLKEYLOGFILE) WireShark 设置 SSL 选项 参考文章: ...