2017最后一天的学习-TensorFlow

中午吃过饭后,家人都去午休了,我就躺在沙发上看电视,然后稀里糊涂睡着了,突然自己问自己今天写点什么呢,然后在迷糊中突然想到了TensorFlow,好了,那今天就看看它吧。

什么是TensorFlow,如果按照标准的官方说法,就是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。数据流图的概念稍后来讲。

TensorFlow到底有多火呢,按照github 2016年的数据是29622个星,2017年这个数字飙升到了8万多,毫无疑问,是2017年最闪亮的项目。

TensorFlow引起很多的关注和兴趣,可能源自AlphaGo,因为都是来自Google Mind团队。他们的关系非常紧密,可以说互相依存。

如果从我的理解来说,该怎么解释这个技术呢。我个人完全不懂围棋的玩法,就班门弄斧说下围棋的这个事情吧,可能很多是不对的,纯是技术交流。以前的计算机模拟的基本都是穷举的模型,比如有一个步骤有100种可能,那么我就计算100次,每一次得到的结果可能都是局限的,如果要看远一些,那么比如看到后面的5步的走法,按照这个方式理解,那就是100*100*100*100*100种可能性,这种方式结算的结果如果从整体来把握,几乎是不可控的,因为围棋里的玩法不是一个固定的模式,不像你输入一个数据,就立马通过公式计算出一个结果一样。所以说在各种不确定中找到确定的方案,而且能够确定边界,难度应该是相当的大,但是如果换一种思路,比如我把所有不同棋手的学习过程都借鉴过来,比如100个人下棋,在某一个阶段下了某一步棋,对整个棋局都是有利,那么计算机就会标记下来,算是学习了这个技巧,不断的借鉴不断的模仿,然后自我改进,这个过程必然会用的大量的数据和大量的计算,于是乎,各种经验和技巧就不断的迭代,不断的抽象出来,所以说如果让计算机来说某一步具体为什么要那么下,可能没有一个很好的答案,但是它有大把的数据显示这么下一定是目前最好的方案,它会把经验集合起来,而不去做最初穷举的计算。

这方面的实力哪里最强,个人认为还是硅谷,大学里面占据地理优势的就是斯坦福了。今年十一去斯坦福的时候,真是被里面的美景和文化氛围吸引了,非常典型的西班牙建筑特征:红陶筒瓦、手工抹灰墙、陶艺挂件、拱璇门廊。

大名鼎鼎的吴恩达就是斯坦福的教授,也在网易开通了机器学习的公开课,感兴趣自行搜索下。

下午的时候开始简单了解了下,然后开始部署下环境。

TensorFlow的安装可以分为不同的操作系统版本,最早是不支持windows的(现在的版本支持),在Unix,Linux下部署还是很方便的。它提供了大量的Python API,这是大多数深度学习框架都有的; 安装时会根据CPU,GPU的差别有不同的安装类型;目前推荐的操作系统是Ubuntu,不同的Python版本安装也有差别。

我们通过网站(https://www.tensorflow.org/install/)的目录结构就很容易看到TensorFlow的大体情况,支持的平台。

目前最新的版本是1.4,下载链接是:

https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.4.0-cp27-none-linux_x86_64.whl

我们可以根据pip来安装,当然我任性了一会,在RedHat 6版本上安装了,结果发现过程还是很痛苦的。

如果直接使用pip install --upgrade来安装,很可能会提示网站的安全性问题,我们可以先用wget拿到whl文件,然后使用pip install来安装。

当然后面又碰到了一堆的问题,最郁闷的就是glibc的版本兼容性问题。在RHEL 6中的glibc版本是2.12,而在7中则为2.17,安装TensorFlow需要的版本至少是2.16,所以在RHEL6版本中还需要手工升级,glibc算是核心库,我们运行的命令ls,rm这些都和这个库息息相关,所以操作不当就会导致整个系统不可用,我算是趟上了这个坑,当手工升级glibc的时候,发现到问题的时候,貌似有些晚了,因为ls,rm都可不用了,而我的虚拟机上已经在跑一些测试环境了。有很多数据都没来得及备份,我一边想办法,后悔没完整备份,一边在找补救措施,最后好不容易搞定,赶紧做了两件事情:

  1. 备份认为关键的数据和程序
  2. 对虚拟机开启了快照,随时跟进快照情况进行回退

有了这两个保障,也算是有惊无险。

所以最好还是按照指定的环境,比如Ubuntu来吧。

所以如果说简单些,TensorFlow就是个软件库,我们直接引用即可。

比如一个最简单的TensorFlow程序,引入这个库,然后这样一个3+5的操作还得不到8

import tensorflow as tf
a = tf.add(3, 5)
print(a)
>> Tensor("Add: 0", shape=(), dtype=int32)

这是因为需要开启session,在session中操作能够被执行,简单改进下:

import tensorflow as tf

a = tf.add(3, 5)

sess = tf.Session()

print(sess.run(a))

sess.close()

>> 8

看今天的晚会里面,已经有了全自动码头,看来各行各业都在革命,难啊。

走入IT路,也不容易。

用王家卫《一代宗师》里的台词来简单总结下:

从此只有眼前路,没有身后身,回头无岸

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2017-12-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

Python机器学习的生态系统

Python生态系统正在不断成长,并可能成为机器学习的统治平台。

22370
来自专栏马哥教育

想学Python?这里有一个最全面的职位分析

Python从2015年开始,一直处于火爆的趋势,目前Python工程师超越Java、Web前端等岗位,起薪在15K左右,目前不管是小公司还是知名大公司都在热招...

51250
来自专栏数据小魔方

一个关于Excel的秘密——微软向用户隐藏了什么?

一个关于Excel的秘密 ▌写在前面的话: 这是小魔方公众号开通的第一天,也是小魔方推送的第一篇文章,算是破壳日吧!感谢大家关注小魔方,同时小魔方也会持续努力更...

30570
来自专栏phodal

全栈工程师的百宝箱:图形工具篇

为了防止我下次钱包丢失,我正在努力打造一个智能(带GPS、蓝牙)的钱包,所以最近文章会少一点。 在上一篇《全栈工程师的百宝箱:黑魔法之文档篇》我们介绍了一些文档...

233100
来自专栏Java学习网

互联网高手教你如何搜集你想要的信息

  写在前面   几个月前,团队邀我做次内部的分享,主题是如何有效搜索信息。这是因为平时工作中,我经常会分享一些专业学习文档,而这些文档的出现往往很及时,回应一...

38480
来自专栏AI科技评论

学界 | MIT CSAIL提出并行计算系统Fractal,能实现88倍加速

AI科技评论按:MIT News最新报道,MIT CSAIL(麻省理工学院计算机科学与人工智能实验室)已经开发出了一个新系统Fractal,这个系统不仅能使并行...

298100
来自专栏机器学习算法与Python学习

基于遗传算法(C#编写)的智能组卷系统优化

最近由于项目的需要,基于.Net 4.0框架和WPF开发window的客户端(开发环境为win7 旗舰版;Visual Studio 2013),在功能实现上需...

36180
来自专栏企鹅号快讯

还记得DeepMind那个会跑酷的AI吗?它打算用这套Python强化学习工具吊打OpenAI

还记得这个会跑酷的机器人吗? 5个多月前,DeepMind连发三篇强化学习论文,让机器人在仿真环境中自己就能学会灵活多变的各种动作,包括步行、跑动、跳跃、翻墙,...

227100
来自专栏FreeBuf

网络蜜罐技术探讨

*原创作者bt0sea,本文属FreeBuf原创奖励计划,未经许可禁止转载 之前在FreeBuf发表的第一篇有关蜜罐文章,引起了业界不小的轰动,但是...

45990
来自专栏Python中文社区

用Python对鹿晗、关晓彤微博进行情感分析

專 欄 ❈大吉大利小米酱,Python中文社区专栏作者,Python爱好者,顽强地自学中,18线灵魂画手/段子手/脑洞女王。 简书: http://www....

36890

扫码关注云+社区

领取腾讯云代金券