TensorFlow 入门:从安装到计算 1+1

这是 TF 系列的第 1 篇,我将在这里分享学习 TensorFlow 的一些总结。由于是我个人的一些经验,往往不具有普适性,如果大家在实际操作过程中碰到不一致的情况,可以在后台提出一起交流。并且,我刚刚上手TF不久,对于 TF 的了解也远远不够,如果有理解错误或者书写错误,希望各位不吝赐教,在下感激不尽。

以上算是免责声明了。

1 TensorFlow 是什么

TensorFlow 是当前最火的「深度学习」框架之一,我们来看下官网的介绍( toulan.jpg ):

TensorFlow™ 是一个使用数据流图进行数值计算的开源软件库。图中的节点代表数学运算, 而图中的边则代表在这些节点之间传递的多维数组(张量)。这种灵活的架构可让您使用一个 API 将计算工作部署到桌面设备、服务器或者移动设备中的一个或多个 CPU 或 GPU。 TensorFlow 最初是由 Google 机器智能研究部门的 Google Brain 团队中的研究人员和工程师开发的,用于进行机器学习和深度神经网络研究, 但它是一个非常基础的系统,因此也可以应用于众多其他领域。

好了,看完以上文字你可能还是不知道 TensorFlow,请不要「fang」,继续读下去。

2 为什么要用 TensorFlow

深度学习框架这么多,为什么要用 TensorFlow 呢?还不是它好用!它的好用体现在哪里呢?再来看下官网的介绍( youtoulan.jpg ):

快速

在构建和部署机器学习系统时,性能是至关重要的。因此,TensorFlow 中包含了 XLA,这是一款强大的线性代数编译器,可以帮助 TensorFlow 代码在嵌入式处理器、CPU、GPU、TPU 和其他硬件平台上尽可能快速地运行。

灵活

TensorFlow 既提供了高层级的 API 以便让您轻松构建和训练您的模型,也提供了低层级的控制功能以尽可能提高灵活性和性能。

支持生产环境

TensorFlow 可以灵活适应不同的使用规模,既支持探索性研究,也支持大规模生产用途。无论您是在开发新类型的模型还是在处理生产环境中的数以百万计的请求,所使用的 TensorFlow API 是不变的,因而您不会有陌生感。

不知道你有没有看懂,就是它特别好用,但…所以…我们要用 TensorFlow。

3 安装

我们要想使用 tf(TensorFlow 的简称)第一步肯定是要配置好开发环境,下面我将介绍三个安装 Tips 给你,保证没问题:

  1. 不要使用 Windows !
  2. 不要使用 Windows !
  3. 不要使用 Windows !

上面的 Tips 是开玩笑,如果你手上的设备是 Windows 也是可以用的,但 tf 在 Win 下只支持 Python3.5 以上的版本。官方推荐使用的 Linux 的发行版 Ubuntu,并对其提供技术支持。我的建议也是用 Ubuntu。

下面我们进入进入正题,我们首先要确定安装的版本,tf 分为 cpu 版和 gpu 版,gpu 版可以提供 gpu 加速,大大提高训练效率,这里我们仅仅安装 cpu 版本进行测试。

1 安装 Python

tf 有很多种语言的版本,这里我们选择最流行也是最容易使用的 Python 版。

这里要插一段关于 Python 版本选择问题。目前 Python 有两个主流版本,一个是老版本的 Python2.7,一个是新版本的 Python3.6。如果在去年这个时候你问我要装哪个版本,我肯定说 Python2,那个时候有很多包还不支持 Python3,但现在大多数包已经齐全,即使没有某个包,也会有合适的替代方案。就在前几天,著名数值计算包 Numpy 也宣布即将不再对 Python2 进行支持,逐渐完全迁移到 Python3 上来。因此,我们这里也选择使用 Python3。

为了减轻我们安装 Python 环境和包的工作量,选择使用 Anaconda 会很方便,它几乎包含了我们平时用到的所有 Python 包。

Anaconda 是一个 Python 发行版,用于科学计算和信号处理等领域,支持 Linux, Mac, Windows, 包含了众多流行科学计算、数据分析等Python 包。

我们去下载页https://www.anaconda.com/download/下载对应系统的包并安装:

1
2
3
wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh
sudo chmod +X Anaconda3-5.0.1-Linux-x86_64.sh
bash Anaconda3-5.0.1-Linux-x86_64.sh

安装完成后在Terminal里输入 conda, 如果看到以下内容说明安装成功:

1
2
3
usage: conda [-h] [-V] command ...
conda is a tool for managing and deploying applications, environments and packages.
...

此时你在 Terminal 里继续输入 python 按回车键,就会有 Python 的交互执行界面。

1
2
3
4
Python 3.6.3 |Anaconda, Inc.| (default, Oct  6 2017, 12:04:38)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

2 安装 pip

tf 是一个 Python 的包,我们使用 Python 包管理器 pip 来快速安装它。

如果你是使用了上文中的 Anaconda 进行安装的,那么这一步就可以省略了,conda 中自带了 pip 的包。

先从https://pypi.python.org/pypi/pip/9.0.1#downloads中下载 pip 的压缩包 pip-9.0.1.tar.gz,然后在本地解压后执行:

1
python setup.py

安装完成后执行:

1
2
pip -V
pip 9.0.1 from /anaconda3/lib/python3.6/site-packages (python 3.6)

如果显示出版本号,说明安装成功啦!

3 安装 TensorFlow

做完上述准备之后,我们就可以用 pip 直接安装 tf,使用以下命令你将安装最新稳定版的 tf。

1
pip install TensorFlow

如果一直卡着不动,可以尝试指定国内的 pip 源,下面用的是豆瓣提供的源:

1
pip install TensorFlow -i https://pypi.douban.com/simple

另外还可以从 github 的 tf 主页https://github.com/TensorFlow/TensorFlow上,下载特定版本的 tf 的*.whl文件,然后使用 pip 进行安装。

1
pip install *.whl

终于,我们完成了 tf 的安装。

4 Version

tf 到底有没有安装成功呢?我们需要引入后才知道。打开 Python 的交互命令行,输入下面的代码:

1
>>> import TensorFlow as tf

如果什么都没出现,那么表明你的安装成功啦!

接下来我们看看 tf 的版本号是多少,继续在命令行中输入:

1
2
>>> tf.__version__
'1.5.0-dev20171106'

为什么要看版本号呢?tf 的更新速度很快,每个月几乎都要发一个小版本,而且它的 API 改变非常大。如果是老版本的代码,在新版本上就不一定跑的起来。所以有的时候需要查看 tf 的版本号,保证它和代码的版本一致才行。

对于新手来说,顺利完成安装 tf 并不是一件容易的事情。不过不要怕,多折腾就好了。

5 计算 1 + 1

回头看一下标题,说好的教大家计算1 + 1,当然不能省掉!

下面开始正式开始,仔细阅读代码及注释,你很快就能学会。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 导入TensorFlow包
import tensorflow as tf

# 定义一个常量 1
a = tf.constant(1)
# 定义另外一个常量 1
b = tf.constant(1)

# 两个常量相加
c = tf.add(a, b)

# 建立会话
with tf.Session() as sess:
# 执行c
print(sess.run(c))
# result: 2

当你看到打印结果是2时,恭喜你学会了使用 tf 计算1 + 1

6 可能遇到的问题

1
ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory

先查看自己是否正确安装了 cuda 10。

1
2
3
cd /usr/local/cuda
cat version.txt
# CUDA Version 10.1.243

如果确认安装成功,就有可能是环境变量配置问题。

1
2
3
4
5
vim ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH=$PATH:/usr/local/cuda/bin:$PATH

source ~/.bashrc
作者

Ailln

发布于

2017-11-28

更新于

2024-03-02

许可协议

评论