《TensorFlow实战》- 掌握谷歌深度学习框架

TensorFlow in Practice: First Book on TensorFlow in Chinese

Posted by Yuan Tang on February 12, 2017

Google TensorFlow研发团队内部推荐的首本中文教程——《TensorFlow实战》,由TensorFlow Contributor、Committer倾力编写,获Jeff Dean、TensorFlow工程研发总监 Rajat Monga、李开复等专家赞誉好评,已成为许多中国公司和研究机构的教导材料的首选,并且已被翻译成韩语等多种语言。

适读人群:希望快速上手TensorFlow、了解深度学习技术及其应用实践的人士,以及机器学习、分布式计算领域的学生、从业者。特别是对正在学习深度学习技术,立志从事AI相关行业,成为数据科学家的人来说,本书更是非常实用的工具书。

《TensorFlow实战》 是由PPmoney大数据算法总监黄文坚美国Uptake数据科学家唐源倾力编写的新书。本书是Google TensorFlow研发团队内部推荐的教程,两位作者均是TensorFlow开发者,其中唐源是TensorFlow研发团队的Committer。本书结合了大量代码实例,深入浅出地介绍了如何使用TensorFlow。

预售链接: 京东; 互动出版网; 亚马逊

front-cover

内容简介

Google近日发布了TensorFlow 1.0候选版,这第一个稳定版将是深度学习框架发展中的里程碑的一步。自TensorFlow于2015年底正式开源,距今已有一年多,这期间TensorFlow不断给人以惊喜,推出了分布式版本,服务框架TensorFlow Serving,可视化工具TensorFlow,上层封装TF.Learn,其他语言(Go、Java、Rust、Haskell)的绑定、Windows的支持、JIT编译器XLA、动态计算图框架Fold,以及数不胜数的经典模型在TensorFlow上的实现(Inception Net、SyntaxNet等)。在这一年多时间,TensorFlow已从初入深度学习框架大战的新星,成为了几近垄断的行业事实标准。

本书希望用最简单易懂的语言带领大家探索TensorFlow(基于1.0版本API)。在本书中我们讲述了TensorFlow的基础原理,TF和其他框架的异同。并用具体的代码完整地实现了各种类型的深度神经网络:AutoEncoder、MLP、CNN(AlexNet,VGGNet,Inception Net,ResNet)、Word2Vec、RNN(LSTM,Bi-RNN)、Deep Reinforcement Learning(Policy Network、Value Network)。此外,本书还讲解了TensorBoard、多GPU并行、分布式并行、TF.Learn和其他TF.Contrib组件。本书希望能帮读者快速入门TensorFlow和深度学习,在工业界或者研究中快速地将想法落地为可实践的模型。

作者介绍

黄文坚 (Wenjian Huang),PPmoney大数据算法总监,负责集团的风控、理财、互联网证券等业务的数据挖掘工作。Google TensorFlow Contributor。前明略数据技术合伙人,领导了对诸多大型银行、保险公司、基金的数据挖掘项目,包括建立金融风控模型、新闻舆情分析、保险复购预测等。曾就职于阿里巴巴搜索引擎算法团队,负责天猫个性化搜索系统。曾参加阿里巴巴大数据推荐算法大赛,于7000多支队伍中获得前10名。本科、研究生就读于香港科技大学,曾在顶级会议和期刊SIGMOBILE MobiCom、IEEE Transactions on Image Processing发表论文,研究成果获美国计算机协会移动计算大会(MobiCom)最佳移动应用技术冠军,并获得两项美国专利和一项中国专利。

唐源 (Yuan Tang),目前在芝加哥的Uptake公司带领团队建立用于多个物联网领域的数据科学引擎进行条件和健康监控,也建立了公司的预测模型引擎,现在被用于航空、能源等大型机械领域。一直活跃在开源软件社区,是TensorFlow和DMLC的成员,是TensorFlow、XGBoost、MXNet等软件的committer,TF.Learn、ggfortify等软件的作者,以及caret、pandas等软件的贡献者。曾获得谷歌Open Source Peer Bonus,以及多项高校和企业编程竞赛的奖项。在美国宾州州立大学获得荣誉数学学位,曾在本科学习期间成为创业公司DataNovo的核心创始成员,研究专利数据挖掘、无关键字现有技术搜索、策略推荐等。

精彩书评

“TensorFlow很好地降低了人工智能时代的入门门槛,提高了开发效率。这本书的作者有丰富的TensorFlow实战经验,对框架有深刻理解。作为入门教材,这本书不可多得,值得有志于人工智能研发的学生和从业人员阅读。”

创新工场董事长兼首席执行官,李开复

“AI and machine learning are going to be a key part of the future of many, many industries and areas of human endeavor. We built and open-sourced TensorFlow because we wanted everyone to be able to benefit from these technologies, and for the world to have a common language for expressing machine learning ideas. As part of this, we were hoping the community would work together to provide materials describing the concepts behind TensorFlow in a wide variety of languages, and this book is a great example of that. “

Google Senior Fellow and Leader of Google Brain Team, Jeff Dean

“AI and Machine Learning are going to be a key part of our future. We made TensorFlow open source to bring these technologies to everyone and help move the world forward. This book is a great example of the TensorFlow community giving back to multiply everyone’s efforts. ”

Engineering Director of TensorFlow,Rajat Monga

“TensorFlow 的开源对整个学术界及工业界都产生了巨大的影响,可以比做机器学习的Hadoop。本书涵盖了从多层感知机、CNN、RNN到强化学习等一系列模型的TensorFlow实现。在详尽地介绍算法和模型的细节的同时穿插实际的代码,对帮助读者快速建立算法和代码的联系大有助益。对入门TensorFlow和深度学习的研究者来说是一份非常好的学习材料。”

360首席科学家,颜水成

“TensorFlow是基于Computation Graph的机器学习框架,支持GPU和分布式,是目前最有影响力的开源深度学习系统。TensorFlow的工程实现非常优秀,拓展也非常灵活,对机器学习尤其是深度学习的推广大有裨益。本书结合了大量的实际例子,清晰地讲解了如何使用TensorFlow构筑常见的深度学习模型,可通读也可作为工具书查阅。在本书上市前,国内还没有介绍TensorFlow的技术书籍,推荐对TensorFlow或深度学习感兴趣的人士阅读此书。”

北京大学计算机系教授 网络与信息系统研究所所长,崔斌

“深度学习乃至人工智能正逐渐在FinTech领域发挥巨大的作用,其应用包括自动报告生成、金融智能搜索、量化交易和智能投顾。而TensorFlow为金融业方便地使用深度学习提供了可能。本书介绍了通过TensorFlow实现各类神经网络的案例,非常适合初学者快速入门。”

PPmoney CTO,康德胜

“《TensorFlow实战》由浅入深,透过大量的代码实例,为读者揭开深度学习的层层面纱,加深理论理解的同时,也更好地联系了实际应用。”

小米图像算法资深工程师,万韶华

前言

AlphaGo在2017年年初化身Master,在弈城和野狐等平台上连胜中日韩围棋高手,其中包括围棋世界冠军井山裕太、朴廷桓、柯洁等,还有棋圣聂卫平,总计取得60连胜,未尝败绩。遥想2016年3月,当时AlphaGo挑战李世石还一度不被看好,到今日已经可以完胜各位高手。AlphaGo背后神秘的推动力就是TensorFlow——Google于2015年11月开源的机器学习及深度学习框架。DeepMind宣布全面迁移到TensorFlow后,AlphaGo的算法训练任务就全部放在了TensorFlow这套分布式框架上。

TensorFlow在2015年年底一出现就受到了极大的关注,在一个月内获得了GitHub上超过一万颗星的关注,目前在所有的机器学习、深度学习项目中排名第一,甚至在所有的Python项目中也排名第一。本书将重点从实用的层面,为读者讲解如何使用TensorFlow实现全连接神经网络、卷积神经网络、循环神经网络,乃至Deep Q-Network。同时结合TensorFlow原理,以及深度学习的部分知识,尽可能让读者通过学习本书做出实际项目和成果。

本书各章节间没有太强的依赖关系,如果读者对某一章感兴趣,可以直接阅读。本书使用TensorFlow 1.0.0-rc0作为示例讲解,应该与最新版的TensorFlow兼容绝大部分代码,可能存在少数接口的更新,读者可参阅提示信息。书中大部分代码是Python代码,这也是TensorFlow支持的最全、最完整的接口语言。

本书的前两章介绍了TensorFlow的基础知识和概念。第3章和第4章介绍了简单的示例及全连接神经网络。第5章和第6章介绍了基础的卷积神经网络,以及目前比较经典的AlexNet、VGGNet、Inception Net和ResNet。第7章介绍了Word2Vec、RNN和LSTM。第8章介绍了强化学习,以及基于深度学习的策略网络和估值网络。第9章介绍了TensorBoard、单机多GPU并行,以及分布式并行。

第10章介绍了TensorFlow里面的contrib.learn模块,包含许多类型的深度学习及流行的机器学习算法的使用方法,也解析了这个模块的分布式Estimator的基本架构,以及如何使用Estimator快速搭建自己的分布式机器学习模型架构,进行模型的训练和评估,也介绍了如何使用监督器更好地监测和跟踪模型的训练及使用DataFrame读取不同的数据格式。第11章介绍了Contrib模块,这个模块里提供了许多机器学习需要的功能,包括统计分布、机器学习层、优化函数、指标,等等。本章将简单介绍其中的一些功能让大家了解TensorFlow的涵盖范围,并感受到社区的积极参与和贡献度。第10章和第11章使用了TensorFlow 0.11.0-rc0版本作为示例讲解。

作者在写作本书时,获得了亲人、同事、好友的帮助,在此非常感谢你们的支持。

目录

  • 1 TensorFlow基础 1
    • 1.1  TensorFlow概要 1
    • 1.2  TensorFlow编程模型简介 4
  • 2 TensorFlow和其他深度学习框架的对比 18
    • 2.1  主流深度学习框架对比 18
    • 2.2  各深度学习框架简介 20
  • 3 TensorFlow第一步 39
    • 3.1  TensorFlow的编译及安装 39
    • 3.2  TensorFlow实现SoftmaxRegression识别手写数字 46
  • 4 TensorFlow实现自编码器及多层感知机 55
    • 4.1  自编码器简介 55
    • 4.2  TensorFlow实现自编码器 59
    • 4.3  多层感知机简介 66
    • 4.4  TensorFlow实现多层感知机 70
  • 5 TensorFlow实现卷积神经网络 74
    • 5.1  卷积神经网络简介 74
    • 5.2  TensorFlow实现简单的卷积网络 80
    • 5.3  TensorFlow实现进阶的卷积网络 83
  • 6 TensorFlow实现经典卷积神经网络 95
    • 6.1  TensorFlow实现AlexNet 97
    • 6.2  TensorFlow实现VGGNet 108
    • 6.3  TensorFlow实现GoogleInceptionNet 119
    • 6.4  TensorFlow实现ResNet 143
    • 6.5  卷积神经网络发展趋势 156
  • 7 TensorFlow实现循环神经网络及Word2Vec 159
    • 7.1  TensorFlow实现Word2Vec 159
    • 7.2  TensorFlow实现基于LSTM的语言模型 173
    • 7.3  TensorFlow实现BidirectionalLSTMClassifier 188
  • 8 TensorFlow实现深度强化学习 195
    • 8.1  深度强化学习简介 195
    • 8.2  TensorFlow实现策略网络 201
    • 8.3  TensorFlow实现估值网络 213
  • 9 TensorBoard、多GPU并行及分布式并行 233
    • 9.1  TensorBoard 233
    • 9.2  多GPU并行 243
    • 9.3  分布式并行 249
  • 10 TF.Learn从入门到精通 259
    • 10.1  分布式Estimator 259
    • 10.2  深度学习Estimator 267
    • 10.3  机器学习Estimator 272
    • 10.4  DataFrame 278
    • 10.5  监督器Monitors 279
  • 11 TF.Contrib的其他组件 283
    • 11.1  统计分布 283
    • 11.2  Layer模块 285
    • 11.3 性能分析器tfprof 293
  • 参考文献 297

源代码

本书的源代码实现请点这里


Banner Credit to TensorFlow Org