ubuntu服务器上搭建 keras环境(tensorflow [cpu / gpu] 作为后端)

文章目录

    • 引言
    • miniconda3 安装
    • 创建python虚拟环境
    • 验证cuda 以及 cudnn(gpu版本,可选)
    • 安装所需的工具包(tensorflow, keras等)
    • 过程中的小bug

引言

服务器上搭建环境其实与本地也差不多,只是在服务器上我们往往没有sudo的权限,所以所有需要sudo命令的步骤可能都无法执行。所以如果你学会了在服务器上搭建环境,在本地肯定是ok的。

miniconda3 安装

miniconda3是Anaconda3的简略版,如果只是使用到Anaconda3的包管理功能,可以考虑使用miniconda3。当然如果你内存够大,选anaconda3也是ok的。
从miniconda3的官网下载对应版本的.sh文件,对应版本这个看三点:

  1. 操作系统
  2. 32位还是64位(建议最好选择64位,如果自己电脑是64位的话)
  3. python版本2.x 和 3.x(这个如果自己没有特别要求的话,建议选3.x)

下载好之后直接使用sh命令安装即可。安装过程中问到是否将 miniconda3 的安装路径写入到 ~/.bashrc 文件中,选择 yes。如果不需要,可以自己到这个文件中进行删除。

创建python虚拟环境

这个步骤可以参考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版本,可选)

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, keras等)

根据之前选择的版本号,安装对应的tensorflow的cpu版本或gpu版本:

pip install tensorflow==1.x.x / tensorflow-gpu==1.x.x

注意:

  1. 这里使用pip 没有使用 conda,使用conda 安装的时候,在下载gpu版本的时候会连带下载对应的cpu版本,故选pip管理工具进行下载比较好。
  2. 如果不指定特定的版本,会默认安装最新的版本,这很可能不被服务器支持,所以还是需要找到合适的tensorflow版本。
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 搭配。其他的版本搭配可以自行百度一下。

安装完成之后,在终端输入pythonimport 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,建议按照示例进行验证。

过程中的小bug

  1. 安装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。

  2. 当激活 tensorflow环境的时候,出现:"-bash: activate: No such file or directory",而且对文件及文件夹的颜色标识也消失。
    解决:检查~/.bashrc文件或其他配置文件中是否有miniconda3的安装目录,如果没有,则补充上去。如果有,则只需使其生效即可,输入:source ~/.bashrc 即可。

你可能感兴趣的:(python,运行环境配置,ubuntu,keras,环境搭建)