申请了一台超算服务器,里面的系统很旧,试着安装了一下 tensorflow 和 keras,折腾了一天也无法在 python 中运行。今天耐下心来研究了一下安装程序,轻松解决这个问题。
了解 conda
在 ubuntu 系统中,有两个安装工具需要了解,一个是 conda,另一个是 pip。
这两个工具主要区别是,conda 不仅能为 python 安装软件包,而且也能为其它语言安装。pip 只能安装 python 的软件包。
conda 可以创建自己的运行环境。最初我反复折腾,没有效果,主要原因是我是在 base 环境下实验的。因为这台机器系统很老了,安装的有些混乱,所以基本上把我折腾死了。
(base) gaopeng@ssk80-SYS-7048GR-TR:~$ conda create -n yeping_py37 python=3.7
... ...
done
#
# To activate this environment, use
#
# $ conda activate yeping_py37
#
# To deactivate an active environment, use
#
# $ conda deactivate
... ...
# 安装 tensorflow 和 keras
(base) gaopeng@ssk80-SYS-7048GR-TR:~$ conda activate yeping_py37
# 注意命令行提示符的环境从(base)变成了(yeping_py37)
(yeping_py37) gaopeng@ssk80-SYS-7048GR-TR:~$ conda install tensorflow
(yeping_py37) gaopeng@ssk80-SYS-7048GR-TR:~$ conda install tensorflow-gpu
(yeping_py37) gaopeng@ssk80-SYS-7048GR-TR:~$ conda install keras
测试安装效果
属于下面的代码测试一下安装效果,非常OK!
>>> import tensorflow as tf
>>> tf.compat.v1.disable_eager_execution()
>>> hello=tf.constant('Hello, Tensorflow!')
>>> sess = tf.compat.v1.Session()
>>> sess.run(hello)
b'Hello, Tensorflow!'
说明
一般教程会用下面的命令测试,但是 tensorflow 2.0 以上版本会显示错误:
>>> sess = tf.Session()
module 'tensorflow' has no attribute 'Session'
原因是因为新版本的tf改了名称,需要对应改成
sess = tf.compat.v1.Session()
就可以了。
可能会之后会报一个
The Session graph is empty. Add operations to the graph before calling run().
这个是需要一开始声明一个不用 eager_execution 就好
tf.compat.v1.disable_eager_execution()