服务器上搭建环境其实与本地也差不多,只是在服务器上我们往往没有sudo的权限,所以所有需要sudo命令的步骤可能都无法执行。所以如果你学会了在服务器上搭建环境,在本地肯定是ok的。
miniconda3是Anaconda3的简略版,如果只是使用到Anaconda3的包管理功能,可以考虑使用miniconda3。当然如果你内存够大,选anaconda3也是ok的。
从miniconda3的官网下载对应版本的.sh文件,对应版本这个看三点:
下载好之后直接使用sh命令安装即可。安装过程中问到是否将 miniconda3 的安装路径写入到 ~/.bashrc
文件中,选择 yes。如果不需要,可以自己到这个文件中进行删除。
这个步骤可以参考pytorch官网的步骤,比tensorflow官网的安装步骤更实用一点。这里也简单地列一下。
注意: 下好miniconda3或者Anaconda3之后需要重开一个窗口才可以使用conda命令。
conda create -n tensorflow python=x.x(2.7, 3.6等)
创建名为 tensorflow 的python环境
注意: 千万!千万!千万不要贪图最新的python版本,不设置python参数的话也会默认安装最新的版本。需要根据tensorflow的版本所支持的python版本进行选择。而tensoflow的cpu版本没有什么讲究,gpu版本则要根据cuda以及cudnn的版本进行选择。如果用3.x的话,建议盲选3.5或者3.6(开玩笑哈哈哈,最好还是根据官网对应地选),后面会介绍到因为版本出现的个别bug。
source/conda activate tensorflow
使用 source 或者 conda 命令切换到tensorflow环境下
source/conda deactivate
使用 source 或者 conda 命令退出当前python环境
cuda,以及 cudnn 这是使用gpu所必须的。之所以说可选是因为大部分有gpu的服务器已经帮你装好了cuda以及cudnn。如果真的需要自己在服务器上装的话,这里有一篇可以供参考:传送门
那么如何检查是否安装好cuda, cudnn呢?
检查 cuda
:
cat /usr/local/cuda/version.txt
看其他博文有说这个version.txt
中的结果与命令 nvcc -V
的结果不一样时,是因为服务器中装了多个cuda,以 nvcc -V
的结果为正在使用的版本。但是笔者的服务器刚好没有装nvcc,所以也无法验证。
如果发现cuda已安装,可在自己的账户下的~/.bashrc
文件底部添加如下命令,将cuda的安装目录加入到系统环境变量中。
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
检查cudnn
:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
如果已装有cudnn的话,结果会显示四个宏定义,包括CUDNN的版本号的宏定义。主要关注CUDNN_MAJOR的大小即可。
根据cuda以及cudnn的版本就可以从tensorflow的官网中找到自己合适的tensorflow的版本,记下版本号
根据之前选择的版本号,安装对应的tensorflow的cpu版本或gpu版本:
pip install tensorflow==1.x.x / tensorflow-gpu==1.x.x
注意:
conda install keras==2.x.x
一键安装keras,相关的依赖都会安装。
这里强调一下keras与tensorflow的版本也需要搭配一下: tensorflow 1.4.0 和keras 2.1.3搭配,tensorflow 1.3.0 和keras 2.1.2 搭配。其他的版本搭配可以自行百度一下。
安装完成之后,在终端输入python
,import keras
,验证keras安装是否成功。
验证gpu版本的安装成功,可激活创建的python环境,输入python ,进入python命令行。输入:
import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
如果出现大量的gpu信息,则说明安装成功。
注意: 之前有人说当 import keras
时出现相关gpu的信息说明 gpu版本安装成功,但是实际并不完全正确。可能如果是自己本地安装的cuda以及cudnn这个方法才比较准确。而如果是服务器中已有的cuda,cudnn,建议按照示例进行验证。
安装tensorflow-gpu 1.4.0,以及最新的keras的过程中出现:"module 'tensorflow.python.ops.nn' has no attribute 'leaky_relu'"
解决:版本问题。降低keras的版本,以及 tensorflow的版本。参考:传送门。但是降低的时候也要兼顾服务器所兼容的tensorflow版本。笔者的服务器适用的是tensorflow 1.3.0 和 1.4.0 。将keras降到2.1.2,tensorflow-gpu降到1.3.0。
当激活 tensorflow环境的时候,出现:"-bash: activate: No such file or directory"
,而且对文件及文件夹的颜色标识也消失。
解决:检查~/.bashrc
文件或其他配置文件中是否有miniconda3的安装目录,如果没有,则补充上去。如果有,则只需使其生效即可,输入:source ~/.bashrc
即可。