路过学校某实验室的时候发现他们在使用TensorFlow做开发,就突然想折腾下这东西,当然我对此也是非常感兴趣的。
最后更新日期 2017/10/3

TensorFlow 折腾之旅

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品如语音识别、Gmail、Google 相册和搜索其中许多产品曾使用过其前任软件DistBelief。TensorFlow最初由Google Brain团队开发,用于Google的研究和生产,于2015年11月9日在Apache 2.0开源许可证下发布。

安装的过程

感觉TensorFlow的中文教程还是比较少的,机器学习这东西对于我们学渣来讲非常高大上,要克服一些语言障碍来学习。相对而言英文文档描述的非常详细,在linux下只需要几条命令即可完成TensorFlow的安装过程。

因为我的显卡不支持英伟达的GPU加速,所以就选择了CPU版本的TensorFlow,然后使用的是Installing with virtualenv的安装方式,这种方式和直接用pip的方式安装其实区别不大,可以根据自己的python版本以及系统型号还有是否支持CUDA的情况来选择适合自己的安装方式,在此不做各种安装方式的介绍,只是单纯的记录自己的安装过程。

先是安装依赖(以Python3为版本)

sudo apt-get install python3-pip python3-dev python-virtualenv

创建虚拟环境

virtualenv --system-site-packages -p python3 ~/tensorflow

进入虚拟环境

source ~/tensorflow/bin/activate

当bash前面出现(tensorflow)的字样就说明进入了虚拟环境,然后使用下面的命令安装pip

easy_install -U pip

然后使用pip3安装tensorflow(只支持CPU的版本)

pip3 install --upgrade tensorflow

一阵等待过后tensorflow就应该安装完毕了,那么要怎样检验是否安装完毕呢,Google官方提供了这样的一个测试程序。

1
2
3
4
5
# Python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

我们先在虚拟环境中(bash前带有(tensorflow))输入

python3

然后再将上方的python代码输入到虚拟环境的python编译器中。如果得到Hello, TensorFlow!的结果就说明tensorflow已经安装完成啦完结撒花(大雾)

还有一些事情要说明,就是如何退出我们构建的虚拟环境,可以使用deactivate命令来退出虚拟环境,那么问题来了我们要如何再次进入虚拟环境呢,可以再次使用source ~/tensorflow/bin/activate来进入。

卸载的命令(其中targetDirectory为TensorFlow的存放目录)

rm -r targetDirectory

安装过程中出现的一些问题(什么嘛,不存在的)

1.在使用测试代码的时候出现了这样的警告The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.翻译大概的意思就是说TensorFlow库未编译和使用SSE4.2指令,但这些指令在您的机器上可用,并可加速CPU计算。问题出现的原因是TensorFlow为了兼容性在pip分发的包中没有编译SSE指令,SSE指令能够使TensorFlow的运行效率有很大的提升,那么要怎样才能开启SSE指令呢,需要使用源码安装的形式重新编译安装TensorFlow,如果忽略的话好像也没啥问题其实是懒

2.在使用测试代码进行测试的过程中,测试返回的结果为b'Hello, TensorFlow!'该b前缀是为了表明一个字节的字符串。这和当前使用的python版本有关。使用print(sess.run(hello).decode())输出的结果就正常了。