前言
建立一个 Tensorflow 开发环境,是一件既简单、又复杂的事儿。说简单:只需要下载 1 个应用,执行 1 条命令,就可以搭建完成;说复杂:要想打磨一套既高效、又顺手的工作环境,就需要搞清楚每件事儿背后的故事,靠着网上的资料,人云亦云,只能永远跟在别人后面。
打造一个 Tensorflow 开发环境需要了解的事儿,可以参考另一篇文章 “基于 Thinkpad X1 Carbon 打造 Tensorflow 开发移动工作站(完整版)”。
这里为想快速建立环境、进入学习、不折腾的小白,编写一个 “极速版” ,真的只需要 1 个应用,1 条命令,就 OK 了哦。
极速建立 Tensorflow 开发环境
- 下载 Anaconda 最新版(下载地址)。
- 安装 Anaconda,一路 Next 就搞定,不需要任何选项。
- 运行 “Anaconda Prompt”。
- 键入以下命令:
- 安装 Tensorflow CPU 版
conda create --name tf-cpu python=3.6 tensorflow
- 安装 Tensorflow GPU 版
conda create --name tf-gpu python=3.6 tensorflow-gpu
Tips:
- 既然是小白,Windows 10 就是最佳选择了。想折腾 Linux 也没问题,本方法同时适用于:Windows 7 及以上版本、ubuntu 16.04 及以上版本。
- Tensorflow GPU 版可以极大地提升深度学习的训练速度,但是硬件上需要一块符合要求的 NVIDIA GPU,请参考“GPU 支持 | Tensorflow - 硬件要求”。简单来说:NVIDIA GTX 950(桌面型显卡)/ GTX 940M(笔记本型显卡)及以上型号的显卡,都符合要求。(对游戏迷来说:能 “流畅吃鸡” 的 NVIDIA 显卡,一般都符合要求)。
- 使用本方法安装 Tensorflow GPU 版,无需预先安装 CUDA Toolkit 和 cuDNN,conda 将自行下载安装以上软件包。
- 显卡驱动还是得自己装,不过一般在安装操作系统的时候,显卡驱动都是安装好了的。请打开自动更新,保证显卡驱动为最新版。
- 无需设置任何的环境变量。
- 你也可以同时安装 Tensorflow CPU 版和 GPU 版,两者不会发生任何冲突,也无需做任何特别的设置。你可以对比一下 CPU 版和 GPU 版的速度差异。
校验是否安装成功
用一小段代码(矩阵乘法),可以检验 Tensorflow 是否安装成功。这里,你需要懂一点儿 conda 命令,和 python 语法:
- 激活工作环境:
conda activate tf-cpu
和conda activate tf-gpu
- 退出当前工作环境:
conda deactivate
- 启动 Python:
python
- 从 Python 中退出:
exit()
校验 Tensorflow CPU 版
- 运行 “Anaconda Prompt”,执行以下命令,进入 Python 环境。
conda activate tf-cpu
python
- 键入以下代码:
import tensorflow as tf
a = tf.constant([[3., 3.]])
b = tf.constant([[2.],[2.]])
product = tf.matmul(a, b)
sess = tf.Session()
result = sess.run(product)
print(result)
- 输出:
如果得到如下的输出,则表明安装成功。
[[12.]]
校验 Tensorflow GPU 版
- 运行 “Anaconda Prompt”,执行以下命令,进入 Python 环境。
conda activate tf-gpu
python
- 键入以下代码:
import tensorflow as tf
a = tf.constant([[3., 3.]])
b = tf.constant([[2.],[2.]])
product = tf.matmul(a, b)
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
result = sess.run(product)
print(result)
- 输出:
- 键入
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
时,系统大致输出如下,则表明:已找到 GPU,列出 GPU 信息,并将运算指向 GPU。
2019-02-28 22:34:32.503929: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
2019-02-28 22:34:32.779658: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 0 with properties:
name: GeForce RTX 2070 major: 7 minor: 5 memoryClockRate(GHz): 1.62
pciBusID: 0000:0a:00.0
totalMemory: 8.00GiB freeMemory: 6.57GiB
2019-02-28 22:34:32.786266: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1511] Adding visible gpu devices: 0
2019-02-28 22:34:33.436171: I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-02-28 22:34:33.440095: I tensorflow/core/common_runtime/gpu/gpu_device.cc:988] 0
2019-02-28 22:34:33.442374: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 0: N
2019-02-28 22:34:33.445215: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 6305 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2070, pci bus id: 0000:0a:00.0, compute capability: 7.5)
Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: GeForce RTX 2070, pci bus id: 0000:0a:00.0, compute capability: 7.5
2019-02-28 22:34:33.455824: I tensorflow/core/common_runtime/direct_session.cc:307] Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: GeForce RTX 2070, pci bus id: 0000:0a:00.0, compute capability: 7.5
- 键入
result = sess.run(product)
时,系统大致输出如下,则表明:将 a、b 以及 matmul 运算指向了 GPU。
MatMul: (MatMul): /job:localhost/replica:0/task:0/device:GPU:0
2019-02-28 22:35:17.405035: I tensorflow/core/common_runtime/placer.cc:927] MatMul: (MatMul)/job:localhost/replica:0/task:0/device:GPU:0
Const: (Const): /job:localhost/replica:0/task:0/device:GPU:0
2019-02-28 22:35:17.407979: I tensorflow/core/common_runtime/placer.cc:927] Const: (Const)/job:localhost/replica:0/task:0/device:GPU:0
Const_1: (Const): /job:localhost/replica:0/task:0/device:GPU:0
2019-02-28 22:35:17.412175: I tensorflow/core/common_runtime/placer.cc:927] Const_1: (Const)/job:localhost/replica:0/task:0/device:GPU:0
- 最终得到运算结果如下,则表明安装成功。
[[12.]]