「官方文档排布凌乱、搜索难用、API 丑陋不堪……」这是很多人对 TensorFlow 官方文档的吐槽。但吐槽归吐槽,到了工业界,你是无论如何也绕不开这个框架的。既然非学不可,那怎么让这个学习过程变得更加平滑呢?有人在 GitHub 开源了一个名为《30 天吃掉那只 TensorFlow2.0》的入门工具书,或许可以让你无痛上手 TensorFlow 2.0。
作者 lyhue1991 表示,这本书对「人类用户极其友善」,以「Don't let me think」为最高追求,「如果说通过学习 TensorFlow 官方文档掌握 TensorFlow2.0 的难度大概是 9 的话,那么通过学习本书掌握 TensorFlow2.0 的难度应该大概是 3。」该教程与 TensorFlow 的差异如下所示:
从课程大纲来看,有一定基础的读者只需三十天就可以学完整个教程,而且每天都被安排得明明白白。
开源电子书地址:https://lyhue1991.github.io/eat_tensorflow2_in_30_days/
GitHub 项目地址:https://github.com/lyhue1991/eat_tensorflow2_in_30_days
随着 PyTorch 热度的升高,越来越多的人似乎正在转向 PyTorch。与 TensorFlow 相比,PyTorch 在易用性方面占有更多优势,更加方便调试,满足了研究者快速迭代发表文章的需求,目前已经成为学术界使用的主流框架。在过去的 2019 年,几乎每个学术顶会都有大量论文用 PyTorch 实现。
但在工业界,TensorFlow 仍然是主导框架。原因在于,工业界最重要的是模型落地以及模型的高可用性,许多时候使用的都是成熟的模型架构,调试需求并不大。所以我们可能不得不面对这样一个现状:目前国内的大部分互联网企业只支持 TensorFlow 模型的在线部署,不支持 Pytorch。
所以作者指出,如果你是工程师,应该优先选 TensorFlow 2.0。
虽说是「仅用 30 天即可掌握 TensorFlow 2.0」,但学习这个教程也需要一定的知识储备作为前提。本书要求读者具备一定的机器学习和深度学习理论基础,同时使用过 Keras、Tensorflow1.0 或者 PyTorch 搭建训练过模型。
如果没有任何基础怎么办?你可以在学习本教程的同时参考深度学习大牛、Keras 之父 Francois Chollet 所著的《Python 深度学习》一书。这本书的优点在于,它假定读者无任何机器学习知识,全书没有一个数学公式,仅旨在培养读者的深度学习直觉。项目作者在 GitHub 界面提供了该书电子版的下载链接,读者可前往下载。
鉴于 TensorFlow 的官方文档难用到令人发指,作者就将该书的底线定为「不刻意恶心读者」,声称对读者极其友好。具体而言,这本书有以下三大写作特点:
在参考 TensorFlow 官方文档和函数 doc 文档的基础上整理而成,但在篇章结构和范例选择上进行了大量的优化;
不同于 TensorFlow 官方文档中教程指南混杂的篇章结构,本书按照内容难易程度、读者检索习惯和 TensorFlow 自身的层次结构设计内容,循序渐进,层次清晰,从而方便读者按照功能快速查找相应范例;
不同于 TensorFlow 官方文档中冗长的范例代码,本书在范例设计上也尽可能地简约化和结构化,从而增强了范例的易读性和通用性,大部分代码片段在实践中也实现了即取即用。
本书提供的所有学习内容均在 Jupyter 中编写,且在 TensorFlow 2.1 版本上全部测试通过。直接将项目克隆到本地,使用任意一款 markdown 软件即可查看。不过项目作者建议安装 jupytext,将 markdown 转换成 ipnb,之后就可以在 Jupyter 中交互式运行学习了。我们在 notebook 中运行如下代码,进行学习环境配置。
#克隆本书源码到本地,使用码云镜像仓库国内下载速度更快
!git clone https://gitee.com/Python_Ai_Road/eat_tensorflow2_in_30_days
#建议在jupyter notebook 上安装jupytext,以便能够将本书各章节markdown文件视作ipynb文件运行
!pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -U jupytext
#建议在jupyter notebook 上安装最新版本tensorflow 测试本书中的代码
!pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -U tensorflow
在 notebook 中输入如下代码,查看 TensorFlow 版本并测试 TensorFlow 是否安装成功:
import tensorflow as tf
#注:本书全部代码在tensorflow 2.1版本测试通过
tf.print("tensorflow version:",tf.__version__)
a = tf.constant("hello")
b = tf.constant("tensorflow2")
c = tf.strings.join([a,b]," ")
tf.print(c)
当看到如下输出时,说明 TensorFlow 已经成功安装并运行。接下来就可以愉快地开始课程学习了。
tensorflow version: 2.1.0
hello tensorflow2
以下是本书的 30 天学习计划安排,作者很详细地列出了每一小节学习的难度以及大致的学习时间,可谓体贴入微。真正做到了作者追求的为读者着想,不炫技为难读者。
在前一周的时间里,作者主要为我们介绍了 TensorFlow 的建模流程、相关核心概念以及不同层次 API 概述,使读者对 TensorFlow 有一个全面准确的认识,为后续具体的学习内容打下基础。毕竟子曾经曰过「工欲善其事,必先利其器」嘛。
在接下来的两周左右时间里,作者分别为我们介绍了 TensorFlow 的低阶、中阶和高阶 API。其中,低阶 API 涵盖了张量的操作与运算、自动图机制。中阶 API 涵盖 Dataset、layers、损失函数和优化器等内容介绍。高阶 API 涵盖了模型的构建与训练、单 GPU/多 GPU/TPU 的使用和训练完成模型的部署。可以说你应该了解 TensorFlow 的所有内容都在本书里面了。
GitHub 项目界面的「后记」文档显示,项目作者毕业于「北京吃饭大学」,学的是理论物理,原先在金融行业做量化交易,为了「改善伙食」一步步转行算法工程师。其间坚持自学并利用周末和晚上的时间录制教学课程。他的自我定位是「一个有毅力的吃货」,从书名也可以看出来。对项目作者感兴趣的读者可以去读一下「后记」文档。
✄------------------------------------------------
加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com
投稿或寻求报道:content
@jiqizhixin.com
广告 & 商务合作:bd@jiqizhixin.com