第三篇,安装Tensorflow2.0

写在前面

上一篇文章(搭建机器学习基础环境)中,讲解了在新安装的Ubuntu系统下,如何安装Nvidia机器学习环境
这篇文章主要讲解如何更好的安装tensorflow和keras相关开发环境。还是老前提,使用本文的方式进行安装,需要有一个好用的梯子。

要做的事情:

  1. 如何使用Conda
  2. 更好的方式安装Tensorflow2.0

机器配置:
CPU:i9-7940X
GPU:1080Ti × 2
内存:64G
磁盘:1T SSD + 2T HDD

STEP.1 Anaconda的使用

Anaconda是什么?为什么要使用Anaconda?
Anaconda(官方网站)就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。

Anaconda具有如下特点:

  • 开源
  • 安装过程简单
  • 高性能使用Python和R语言
  • 免费的社区支持

其特点的实现主要基于Anaconda拥有的:

  • conda包
  • 环境管理器
  • 1,000+开源库

Anaconda的安装这里不细说了,可以参考(从0开始安装Ubuntu)。


新建一个带Python3.7的虚拟环境,其中“env_name”为环境的名称

conda create -n env_name python=3.7

此处注意一下,这个python3.7不是在创建环境的时候必须指定的,可以在环境创建以后,通过conda install来进行安装。


激活名称为“env_name”的环境,一共三种方式:
Windows

activate env_name

Linux

source activate env_name

通用

conda activate env_name

使用通用方式之前需要先对Shell进行初始化,可能会出现如下异常信息:

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

    $ conda init <SHELL_NAME>

Currently supported shells are:
  - bash
  - fish
  - tcsh
  - xonsh
  - zsh
  - powershell

See 'conda init --help' for more information and options.

IMPORTANT: You may need to close and restart your shell after running 'conda init'.

解决方法很简单,按照上面的提示,对Shell进行切换之后就行了。
比如使用的是默认Shell,那么执行如下命令:

conda init bash

zsh是个不错的Shell,用的人比较多,比如我也是用的这个,只不过是他的升级版,Oh-My-ZSH,处理方法一样的,初始化zsh就行了。

conda init bash

这时候再执行激活命令就不会有问题了。

conda activate env_name

当一个环境在Shell中激活之后,使用的相关包都会使用这个环境下面的。
可以实验一下,新建两个环境,分别是Python2.7和Python3.7,然后切换环境,分别查看Python的版本,他们的输出是不一样的。


安装当前环境下需要的包

conda install cudatoolkit=10.0

这个指令就会安装CUDA相关开发到到当前环境,并指定CUDA版本为10.0


退出当前环境的操作和激活是类似的,参考下方命令。
Windows

deactivate

Linux

source deactivate

通用

conda deactivate

删除“env_name”环境

conda remove -n env_name --all

--all参数为删除环境下面所有的包,如果不想全部删除,可以指定需要删除的包名称。但是不能不指定,也就是说删除环境,必须删除环境下面至少一个包。

STEP.2 安装Tensorflow2.0

大家如果看了我的上一篇文章(搭建机器学习基础环境),其中CUDA是安装的最新版10.2,但是TF是不支持10.2的,所以我们需要一个10.0的环境,来让TF正常运行。如果是以前,可能就需要把CUDA卸载掉,然后安装一个10.0的版本。没有地方依赖10.2还好,否则,10.2还不能轻易卸载,这就是导致两难的局面。
有了Conda,这个问题可以很轻松解决。
先使用Conda新建一个虚拟环境,使用python3.7,暂且叫它“tf20-test”吧。

conda create -n tf20-test python=3.7

切换到新建的环境

conda activate tf20-test

安装CUDA环境,这样就和系统本身已经安装的CUDA隔离开了。

conda install cudatoolkit=10.0

然后安装tensorflow,注意,一定要安装GPU版本。这一点不像PyTorch,TF是否支持GPU是根据安装的版本决定的,PyTorch默认就对GPU提供支持。

conda install tensorflow-gpu=2

这样,TF就安装完成了,可能有人有疑问,说好的Keras还没安装。其实,TF里面就已经包含Keras了,Keras官方也推荐使用TF作为后端时,就直接使用TF中整合的Keras更好。

At this time, we recommend that Keras users who use multi-backend Keras with the TensorFlow backend switch to tf.keras in TensorFlow2.0. tf.keras is better maintained and has better integration with TensorFlow features (eager execution, distribution support and other).
Keras 2.2.5 was the last release of Keras implementing the 2.2.* API. It was the last release to only support TensorFlow 1 (as well as Theano and CNTK).
The current release is Keras 2.3.0, which makes significant API changes and add support for TensorFlow 2.0. The 2.3.0 release will be the last major release of multi-backend Keras. Multi-backend Keras is superseded by tf.keras.
Bugs present in multi-backend Keras will only be fixed until April 2020 (as part of minor releases).
For more information about the future of Keras, see the Keras meeting notes.

引用自:https://keras.io/


验证一下安装的TF,使用官方提供的图片分类示例。

from __future__ import absolute_import, division, print_function, unicode_literals
import tensorflow as tf

载入并准备好 MNIST 数据集。将样本从整数转换为浮点数:

mnist = tf.keras.datasets.mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

将模型的各层堆叠起来,以搭建 tf.keras.Sequential 模型。为训练选择优化器和损失函数:

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

训练并验证模型:

model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test,  y_test, verbose=2)

运行程序,观察日志输出,看下是否有异常或警告。如果CUDA环境安装的有问题,程序也能以CPU模式运行,并且输出警告日志。

或者观察GPU占用率是否上升,判断下TF环境是否安装成功。

watch -n 0.1 nvidia-smi

我把刷新率指定为0.1秒刷新一次,这样更能清晰看见GPU占用率变化。


到此,TF安装就结束了。

结束

本篇文章举例了如何使用Conda虚拟环境的使用,以及如何创建一个Tensorflow的虚拟环境。
Ubuntu系统安装这个系列就结束了,后续使用中遇到的问题及小技巧会独立在简短文章中进行记录。
如果大家对机器学习感兴趣请关注“深度学习”栏目,对Python感兴趣可以关注“Python”栏目。本人能力有限,文章中不足之处请指出,我们共同学习。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值