零起点TensorFlow快速入门(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-20 04:51:39

点击下载

作者:何海群

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

零起点TensorFlow快速入门

零起点TensorFlow快速入门试读:

前言

感谢梁忠先生在百忙之中为本书撰写序言,以TensorFlow为代表的神经网络,被视为互联网以来唯一的“黑科技”,无远弗届,无分行业领域,对社会各界从上至下带来彻底的颠覆与革命。

梁忠先生作为非IT领域的学者、专家,从第三方角度,冷静地观察这场数字革命,同时可以向更多的大众介绍这场革命的火花,推动行业变革,功莫大焉。

TensorFlow黑科技与泰坦尼克

经典大片《泰坦尼克》(Titanic),以1912年泰坦尼克号邮轮在其处女航行时撞击冰山而沉没的事件为背景,描述了处于不同阶层的两个人——穷画家杰克和贵族女露丝之间的爱情故事。

在机器学习领域,《Titanic数据集》是与《IRIS数据集》并列的经典数据集。《Titanic数据集》是根据泰坦尼克号上的人员是否存活而生成的数据集,是国际著名的机器学习大赛Kaggle的入门练手题。《泰坦尼克》案例就是通过使用神经网络算法,根据《Titanic 数据集》,计算两位主人公:穷画家杰克和贵族女露丝的生存概率。

初看这个问题,似乎是“不可能完成的任务”,不过,神经网络既然被誉为自Internet以来唯一的黑科技,自然有其解决的办法。

其中的一个案例,计算结果表明:杰克获救的机会是16.7%,露丝是95.8%。

曾经有历史学者,通过研究历史数据中的食盐、布匹消费量,而推断当时相关国家的人口、经济、军事等实力,并衍生出计量历史学这样一个学科。

马云曾经说过:“要么电子商务,要么无商可务。”

也许,未来的学术领域,也会“要么AI,要么NO-A。”这里的A,代表Anything。

相信随着类似《Titanic 数据集》案例、梵高画风等一系列基于神经网络、深度学习项目的不断涌现,未来的各个学科都会基于AI人工智能进行新的学术重组。

更好的TensorFlow入门教程

本书是目前较好的TensorFlow机器学习入门教程:

· 无需任何理论基础,全程采用MBA案例模式,懂Excel就可看懂。

· 独创的逆向式课件模式,结合TensorBoard可视化系统,图表优先,层层剖析。

· 率先系统介绍 TensorFlow 经典入门案例合集,Pkmital 帕拉格·库马尔案例合集。

· 率先系统介绍TensorFlow三大简化接口Keras、TFLearn和TensorLayer,并提供多组配套案例。

· 三位一体的课件模式:图书+开发平台+成套的教学案例,系统讲解,逐步深入。

本书采用独创的黑箱模式,MBA 案例教学机制,结合大量经典案例,介绍TensorFlow系统和常用的深度学习算法。“Python量化三部曲”“Python量化三部曲”包括:

·《零起点Python大数据与量化交易》(入门课程);

·《零起点Python机器学习与量化交易》(重点分析SKLearn);

·《零起点TensorFlow与量化交易》(重点分析TensorFlow)。

此外还有几部补充作品:

·《零起点Python足彩大数据与机器学习实盘分析》;

·《零起点Python机器学习快速入门》;

·《零起点TensorFlow快速入门》。

本书是《零起点Python机器学习快速入门》的后续之作,为了省略篇幅,省略了Python基础教程,以及SKLearn等机器学习方面的入门内容,没有经验的读者,建议先阅读《零起点 Python 机器学习快速入门》,再开始本书的学习,这样会收到事半功倍的效果。

本书原本是 TopQuant.vip 极宽量化培训课程高级班的教学课件,建议“Python量化三部曲”的读者,在读完入门课程后,先阅读本书和《零起点Python机器学习快速入门》,再阅读后面两部作品。

网络资源

本书的案例程序已经做过优化处理,无需 GPU显卡,全部支持单 CPU 平台,不过为避免版本冲突,请尽量使用zwPython 2017m6版本运行本书的案例程序。

使用其他Python运行环境的读者,如Linux、Mac平台的用户,请尽量使用Python 3.5 和 TensorFlow 1.1 版本,请自行安装其他所需的模块库,如 NumPy、Pandas、TuShare等第三方模块库。

此外需要注意的是,大家运行本书案例得到的结果可能与书中略有差别,甚至大家多次运行同一案例,每次运行的结果可能都有所差异,这属于正常情况。

这是因为TensorFlow等深度学习系统内部都使用了随机数作为种子数,用于系统变量初始化等操作,致使每次运行中间参数有所不同造成的。

本书的读者 QQ总群是:124134140(zwPython 量化交易&大数据),还有两个QQ群分别为650924099(Top极宽量化2群)和450853713(Top极宽量化3群)。大家可以自行加入。

本书有关的程序和数据下载,请浏览网站:TopQuant.vip 极宽量化社区,网站【下载中心】有最新的程序和数据下载地址。

本书在 TopQuant.vip极宽量化社区设有专栏,对本书、人工智能和机器学习有任何建议的,请在社区相关专栏发布信息,我们会在第一时间进行反馈和答复。

TopQuant极宽量化社区【下载中心】

网址1:http://TopQuant.vip/forum.php?mod=viewthread&tid=7。

网址2:http://ziwang.com/forum.php?mod=viewthread&tid=7。

目录设置

为运行本书课件程序,用户需要下载以下3个软件,并设置好目录。

· zwPython,必须是根目录、Python 开发平台,为避免版本冲突,请尽量使用zwPython 2017m6版本。

· ailib,也必须是根目录、AI智能模型和TnensorBoard可视化日志数据目录。

· TensorFlow深度学习课件,本书配套教学课件Python程序源码,请尽量下载最新版本,目录不必是根目录,但必须与 Ailib 在同一个硬盘,可以直接复制到Ailib目录之下。

以上软件、程序最好保存在SSD固态硬盘,此做法可以加快程序运行速度;目录名称不要使用中文名称,压缩文件中的中文名称只是为了便于用户下载。

致谢

本书的出版要特别感谢电子工业出版社的黄爱萍编辑,感谢她在选题策划和稿件整理方面做出的大量工作。

同时,在本书创作过程中,极宽开源量化团队和培训班的全体成员,提出很多宝贵的意见,并对部分课件程序做了中文注解。

特别是吴娜、余勤、孙洋、王硕、邢梦来、郜晶几位成员,为 Top极宽开源量化文库和TopQuant极宽量化开源软件编写文档,并且在团队成员管理方面做了大量工作,为他们的付出表示感谢!

本书完稿时,恰逢小女星语20岁生日。

谨以本书,献给我聪明美丽的女儿,作为她的成年礼。

愿她的一生,幸福安康。

何海群(字王)

北京极宽科技有限公司CTO

2017年6月18日

轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。

· 提交勘误:您对书中内容的修改意见可在 提交勘误 处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。

· 交流互动:在页面下方 读者评论 处留下您的疑问或观点,与我们和其他读者一同学习交流。

页面入口:http://www.broadview.com.cn/32333。第1章不朽的梵高1.1星夜传奇

经典永远是经典,传奇永远是传奇。

如图1-1所示是梵高的不朽名画《向日葵》,泡沫经济高峰的日本商人,曾经以一亿美元的拍卖价格,刷新了名画的拍卖纪录。图1-1 世界名画《向日葵》与梵高自画像

以下内容摘自百度艺术百科词条:向日葵。《向日葵》是荷兰画家梵高在阳光灿烂的法国南部所作。梵高用简练的笔法表现出植物形貌,充满了律动感及生命力。向日葵是梵高最典型最具代表性的作品。一位英国评论家说:“他用全部精力追求了一件世界上最简单、最普通的东西,这就是太阳。”

他的画面上不单充满了阳光下的鲜艳色彩,而且不止一次地描绘出令人无法逼视的太阳本身,并且多次描绘向日葵。在梵高看来,向日葵象征着一种激情和生命的永存。

几十年过去了,当年狂傲到要收购整个美国的日本经济泡沫早已破灭,日本“失去的三十年”也过去了多年。

2008 年的全球经济危机,一直持续到 2016 年,当全世界都感觉科技发展、技术进步已经停滞的时候,人工智能、深度学习异军突起,成为自“Internet以来真正的黑科技”,互联网+、人工智能+,为整个世界带来了新的活力。

神经网络梵高画风案例(Neural-Style)与 AlphaGo(阿尔法狗)围棋大师,可以说是2016年度TensorFlow深度学习领域最成功,也是最经典的两个案例。

与庞大复杂的阿尔法狗(AlphaGo)系统不同,梵高案例(Neural-Style)只需要一台笔记本电脑即可运行,甚至连GPU加速卡都不需要,成为许多人工智能创业团队的hello入门案例。

目前,Github已经涌现了大量的相关衍生版本,甚至淹没了最早的Torch原始版本。

不过,梵高案例(Neural-Style)对于初学者而言,还是过于复杂,故此,Top极宽量化开源团队特意推出了一个更加简单的入门版本。

以文内容摘自《极宽版·梵高神经网络算法·深度学习案例》。

网址:http://ziwang.com/forum.php?mod=viewthread&tid=17807。

如图1-2所示是上述介绍的梵高风格案例程序,通过TensorFlow神经网络算法,模拟梵高风格,电脑自动生成的绘画作品。图1-2 通过TensorFlow神经网络算法生成的梵高风格绘画作品

如图 1-3 所示是原始照片素材,如图 1-4 所示是电脑学习使用模板,梵高名画《星夜》。图1-3 原始照片素材图1-4 电脑学习模板

以下内容摘自百度艺术百科词条:星夜。《星夜》,也被译为《星月夜》(The Starry Night,荷兰语:De sterrennacht),是荷兰后印象派画家文森特·梵高于1889年在法国圣雷米的一家精神病院里创作的一幅著名油画,是梵高的代表作之一,现藏于纽约现代艺术博物馆。有一种普遍的说法,由于这是梵高在精神病时期所作,世人普遍认为这是梵高想象出来的美妙情景。

梵高风格案例程序,不仅能够学习梵高的风格,把风景、人物照片自动变成梵高风格的艺术图片,还能够学习其他大师的作品,如莫奈的点彩画艺术,毕加索的立体派画风,后现代的野兽派画风。

除了西洋画,这套程序也可以学习中国的水墨山水画风格、工笔画风格,以及《清明上河图》的风格,生成类似的艺术风格图像。

梵高风格案例程序,除了学习名家绘画,也能根据中国的传统书法,生成各种风格的书法衍生作品。

这些艺术和书法衍生作品,虽然有的还很粗糙,但感兴趣的读者,可以不断优化、调整,提高电脑的创作水平。

本章稍后的一系列案例,将会陆续介绍部分相关程序,让大家有更深的感受。1.2TensorFlow简介

TensorFlow是谷歌公司研发的第二代人工智能学习系统,简称TF。

2011 年,谷歌开始研发第一代深度学习基础架构 DistBelief 系统,多年来,谷歌公司对其进行了各方面的改进。

2017年,谷歌公司宣布系统改名为TensorFlow,并采用开源模式,对外进行了发布。

如图1-5所示是2017年谷歌公司TensorFlow发布会的宣传海报。图1-5 TensorFlow宣传海报

TensorFlow 的命名来源于本身的运行原理,Tensor(张量)意味着 N 维数组,Flow(流)意味着基于数据流图的计算。TensorFlow,就是张量从数据图的一端流动到另一端的计算过程。

TensorFlow 是一种人工智能系统,可以将复杂的数据结构传输至人工智能神经网中,进行分析和处理。TensorFlow支持CNN卷积神经网络算法、RNN循环神经网络算法和LSTM长短时记忆算法,这都是目前在Image图像处理、Speech语音分析和NLP语义分析等领域,最流行的深度神经网络模型。

TensorFlow 表达了高层次的机器学习计算,大幅度简化了第一代系统,并且具备更好的灵活性和可延展性;大大降低了深度学习在各个行业中的应用难度,已经成为新一代人工智能系统的主流开发平台。

TensorFlow 内建深度学习的扩展支持,任何能够用计算流图形来表达的计算,都可以使用 TensorFlow。任何基于梯度的机器学习算法,都能够受益于 TensorFlow的自动求解算法(Auto-Differentiation)。

TensorFlow 可应用于众多领域,如语音识别、自然语言理解、计算机视觉、广告受众分析等。如图1-6所示是TensorFlow运行时,神经网络算法的内部示意图。图1-6 TensorFlow算法示意图

如图 1-6 所示,这些算法结构图把人工智能的研究从传统的数据分析、程序代码提升到更加现代的可视化分析阶段,可以大幅度提高人工智能的研究和学习效率。

TensorFlow 和神经网络模型、深度学习涉及的运算,通常是非常复杂而又难以理解的。

幸运的是,系统内置的 TensorBoard 可视化工具,是一套完整的 AI 可视化 log日志数据分析系统,可以更加方便用户对于TensorFlow程序的理解、调试与优化。

用户可以使用TensorBoard可视化工具来显示、分析TensorFlow的Graph运算结构图,生成相关的权重指标图及附加数据的可视化图像。案例1-1:星夜传奇实战编程

需要说明的是,本节案例远远超出各位读者目前的入门水平,笔者放在全书前面,只是为了展现TensorFlow神经网络算法的强大威力,以增加读者的体验与感受,这也是逆向式学习方法的特色。

有关程序,大家能够运行通过就可以了,其中的源码细节暂时无须了解,有兴趣的读者可以等以后水平提高了再深入研究。

案例1-1星夜传奇,文件名是tf101van.py,文件名中需要说明的是:

· 文件名中的tf,是TensorFlow的缩写。

· 101表示案例序号,不同章节编码略有不同。

· van是简单的说明,案例1-1当中的van是梵高英文名称的开头。

案例1-1说明如下。

案例 1-1 是源自极宽量化开源社区的《极宽版·梵高神经网络算法·深度学习·案例》,网址是:TopQuant.vip/forum.php?mod=viewthread&tid=17807。

大家在学习案例 1-1 的过程中,如果有心得体会或者疑难问题,都可以在社区该帖子后留言,与其他人进行交流沟通。

TensorFlow神经网络的Neural-Style案例。(1)案例源自 github 经典的 TensorFlow 神经网络 Neural-Style 案例:https://github.com/anishathalye/neural-style。(2)考虑初学者的水平情况,对源码stylize.py进行了高度精简。(3)本案例经过多处优化,可直接运行于纯CPU平台,i7笔记本默认参数3分钟左右。(4)参数Iterations是迭代次数,默认是迭代50,效果很差,500次迭代的效果,基本接近原案例。(5)为提高运行速度,对图片进行了缩减,只有原图的1/3,理论上可以提速9倍,原始图像文件保存在pic00目录。(6)输出文件和图像文件都保存在pic目录,输出文件名是'tg_n'+迭代次数。(7)模型库文件名为imagenet-vgg-verydeep-19.mat,大约550MB。

案例1-1主要源码如下:

案例1-1看起来很简单,就一个main函数,代码也不长,但是其中的原理非常复杂,远远超出各位读者目前的入门水平,所以建议大家不要过于纠结细节,能够运行通过就可以了。

案例1-1的文件头有一行代码:

这行代码,表示案例 1-1使用的是现有的 VGG19模型,模型文件位于 ailib智能模型数据目录。

TensorFlow案例,往往涉及很多不同的人工智能算法模型,以及测试学习数据,这些模型和数据通常都很大,如案例1-1中的VGG19模型为500多兆。

工程实践上,通常把代码文件和模型数据文件分开,便于用户下载,通常,模型数据目录是 ailib,必须是根目录,建议使用 ssd 固态硬盘。这也是源自工程一线的编程习惯,请大家尽量沿用。

案例1-1当中使用的VGG19模型是VGG模型的一个变种。

VGG 模型是比较稳定和经典的深度学习模型,有很多版本和变种,VGG 模型的特点是连续转换多,计算量大,一般都使用预先计算好的模型。

VGG算法模型和 Googlenet模型是2014年Imagenet竞赛的双雄,这两类模型结构有一个共同特点是 Go Deeper。与 Googlenet 不同的是,VGG 继承了 Lenet 及Alexnet的一些框架,尤其与Alexnet框架很像。

案例 1-1 中,大家需要注意的代码主要是最后几行,为了便于说明,我们特意对代码进行了分组,下面分别进行说明。

第1组代码如下:

该组代码的主要功能是设置参数:

· rss,图像数据目录为pic。

· fsr0,原照片的简化文件名,模板图像的简化文件名。

· nloop迭代次数,建议不要低于200次。

· fsr,fsty,选代路径的真实图像。

· ftg,结果图像文件名,采用的是合成模式,细节大家请参看源码。

第2组代码如下:

为了方便学习,我们特意增加了计时功能,使用的是新一代的arrow时间模块,细节大家请参看“零起点系列丛书”前面几部的有关章节,本书就不再重复介绍了。

第3组代码如下:

调用main主函数,注意,mian函数接口地址nloop迭代次数默认值是200次。

第4组代码如下:

计算结束时间和运行总时间,单位是秒。

笔者在e5-2683台式机测试,运行时间分别是:

· 100次迭代,778秒。

· 200次迭代,1510秒。

这个结果是 CPU 版本的运算结果,虽然原作者说支持 GPU 加速,但笔者在GTX1080+cuda8的运行环境下,这个案例几次都没有运行通过,大家可以在自己的GPU平台测试一下。

因为案例1-1和本书相关案例以教学为主,所以本书尽量采用CPU版本的案例,通过简化数据,来缩短案例运行时间。

需要注意的是,TensorFlow案例无论是CPU版本,还是GPU版本,在Spyder+IPython环境运行时,经常需要右下角的reset复位Python控制台,不然会出现一些意外的bug,导致无法运行。

所以在运行本书案例时,如果出现非案例源码的错误,通常都是因为需要reset复位Python控制台。

如图1-7和图1-8所示,分别是案例1-1中使用的照片和模板图像,模板使用的是梵高的经典名画《星夜》。

如图1-9和图1-10所示,分别是迭代100次和迭代200次的输出图片。图1-7 案例1-1照片原图图1-8 案例模板——梵高《星夜》图1-9 案例1-1迭代100次效果图图1-10 案例1-1迭代200次效果图案例1-2:星夜传奇批量编程

本书案例,考虑到读者的实际情况,TensorFlow案例尽量采用CPU版本,理论上,CPU版本的TensorFlow案例程序无须修改就可以直接运行于GPU平台。

案例1-1中,笔者在e5-2683台式机测试,运行时间分别是:

· 100次迭代,778秒。

· 200次迭代,1510秒。

每100次迭代大概需要10多分钟,一般默认参数是200次迭代,需要20多分钟,此为单张图像的时间,如果是多张图像,需要的时间更长。

案例 1-2 采用批量处理模式,虽然无法缩短运行时间,但是可以利用晚上的空闲时间,批量生成结果图片。

这种操作模式,也是TensorFlow神经网络程序、电脑三维特技渲染等工程一线经常采用的工作模式。

案例1-2星夜传奇批量版,文件名是tf102van_ext.py,文件名中需要说明的是:案例 1-2 与案例 1-1 代码基本一样,只是文件尾部数据定义有所不同,为了方便讲解,我们对main主程序源码进行了分组。

第1组代码如下:

定义图像目录名称,迭代次数nloop变量的初始值。

第2组代码如下:

定义原始图像名称和模板名称。

需要注意的是,案例 1-2 虽然简单,但采用的是双路批量模式,既支持批量原始图片,也支持批量模板文件。

其中的有关参数说明如下:

· rlst,原始图像文件名简称列表。

♦ p1,汉字楷体图像。

♦ p2,建筑物照片。

♦ p3,美国总统特朗普照片。

♦ p4,蒙娜丽莎图像。

♦ csty1,中国水墨山水画。

♦ csty2,中国古典彩色山水画。

♦ csty3,《清明上河图》局部。

· xlst,模板图像文件名简称列表。

♦ sty1,立体派风格模板。

♦ sty2,梵高《星夜》模板1。

♦ sty3,梵高《星夜》模板1。

♦ sty4,蒙娜丽莎图像。

♦ sty5,印象派画家莫奈名画《干草垛》。

♦ sty6,印象派画家莫奈名画《日出》。

♦ sty7,日本浮世绘作品。

需要注意的是,案例中的蒙娜丽莎一图既是图像,也是模板,我们希望测试图像与模板相同时的运行效果,遗憾的是,结果不是很理想,大家可以自己参看 pic目录下的图片。

第3组代码如下:

第3组代码采用双循环模式,循环内部代码分为两组:

· 3.a组,设置照片、模板文件及输出文件的文件名。

· 3.b组,调用主函数,进行图像转换。

如图1-11~图1-14所示是部分输出效果。图1-11 输出效果图1图1-12 输出效果图2图1-13 输出效果图3图1-14 输出效果图41.3十万次迭代

前面我们说过,神经网络梵高画风案例(Neural-Style)与AlphaGo(阿尔法狗)围棋大师可以说是 2016 年度 TensorFlow 深度学习领域最成功、也是最经典的两个案例。

梵高案例,也是目前很多人工智能初创团队和学者的研究课题,在写作本书时,笔者在网络上发现《梵高油画用深度卷积神经网络迭代十万次是什么效果?》这篇文章,(链接:http://www.36dsj.com/archives/75870)。

这篇文章中不光有类似的案例,还有非常专业的分析,大家可以作为参考。当然,这篇文章中的内容,远远超出了初学者的水平,大家可以收藏,以便日后学习参考。

如图1-15所示是本书首先提到的梵高画风的算法流程图。图1-15 梵高画风的算法流程图

如图 1-16 和图 1-17 所示是照片和模板图,照片是天安门,模板也是梵高的名画《星夜》。图1-16 天安门照片

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载