谷歌开源的火爆的深度学习框架。一些零散的想法。
(原文发表在我的博客,欢迎访问
0x00.碎碎念
安装
可以从源码安装或者直接pip,推荐环境是python3.6而不是python2.7。
刚开始图方便直接pip安装,后来要用到gpu,pip安装的tensorflow编译的cudnn是5.1,我本地是6.0,所以下载源码重新编译了一下。
云服务器没有gpu,所以不管他。我本机是archlinux,官方仓库是cuda8.0与cudnn6.0,所以没有源码安装cudnn5.1,源码安装了tensorflow。命令如下:
# 首先下载源码
$ git clone https://github.com/tensorflow/tensorflow
# 安装bazel的意思
$ sudo pacman -S bazel
# 进入tensorflow文件夹里
$ ./configure
# 执行如下两个命令编译pip包
$ bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
# 编译好的包在如下路径里,因为tensorflow版本不同,包的名字也不一样
$ sudo pip install /tmp/tensorflow_pkg/tensorflow-1.0.1-py2-none-any.whl
cpu与gpu
有些计算只能跑在cpu上,但是通常来说gpu运算速度更快,适合浮点运算和密集运算。所以有人买很多gpu挖矿。
因为最近找了一些单机大作,游戏对显卡要求较高,所以也有一点了解。现在用来深度学习的gpu性能比较好的比如gtx 1080,gtx 1080 Ti。
像我的笔记本,显卡是GeForce 940M,性能一般,玩游戏可能勉强带起来。跑GAN的一步大概是2.7s,云服务器是两核cpu,一步要22s。
所以以后有机会弄个工作站吧,插满gpu的服务器或是自己组装的双显台式。
面向未来
最近了解了在tensorflow之上的keras,可以通过操作keras而不考虑究竟是tensorflow还是其他的框架。说的不是很明白,可以谷歌了解一下。
我觉得这就是未来,等tensorflow非常得心应手时候再了解吧。
有个说法是spark用在工业上,tensorflow用在研究上。spark上有mlib来机器学习,有deeplearning4j来深度学习。python可以通过pyspark来交互式执行代码。我想,可不可以将二者联系起来呢?