「官方文档排布凌乱、搜索难用、API 丑陋不堪……」这是很多人对 TensorFlow 官方文档的吐槽。但吐槽归吐槽,到了工业界,你是无论如何也绕不开这个框架的。既然非学不可,那怎么让这个学习过程变得更加平滑呢?有人在 GitHub 开源了一个名为《30 天吃掉那只 TensorFlow2.0》的入门工具书,或许可以让你无痛上手 TensorFlow 2.0。

作者 lyhue1991 表示,这本书对「人类用户极其友善」,以「Don't let me think」为最高追求,「如果说通过学习 TensorFlow 官方文档掌握 TensorFlow2.0 的难度大概是 9 的话,那么通过学习本书掌握 TensorFlow2.0 的难度应该大概是 3。」该教程与 TensorFlow 的差异如下所示:

查看tensorflow版本(从零开始学tensorflow2.0电子版)(1)

图片来自项目作者提供的开源文档。

从课程大纲来看,有一定基础的读者只需三十天就可以学完整个教程,而且每天都被安排得明明白白。

开源电子书地址:
https://lyhue1991.github.io/eat_tensorflow2_in_30_days/

GitHub 项目地址:
https://github.com/lyhue1991/eat_tensorflow2_in_30_days

为什么一定要学 TensorFlow?

随着 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版本(从零开始学tensorflow2.0电子版)(2)

在接下来的两周左右时间里,作者分别为我们介绍了 TensorFlow 的低阶、中阶和高阶 API。其中,低阶 API 涵盖了张量的操作与运算、自动图机制。中阶 API 涵盖 Dataset、layers、损失函数和优化器等内容介绍。高阶 API 涵盖了模型的构建与训练、单 GPU/多 GPU/TPU 的使用和训练完成模型的部署。可以说你应该了解 TensorFlow 的所有内容都在本书里面了。

查看tensorflow版本(从零开始学tensorflow2.0电子版)(3)

查看tensorflow版本(从零开始学tensorflow2.0电子版)(4)

作者简介

GitHub 项目界面的「后记」文档显示,项目作者毕业于「北京吃饭大学」,学的是理论物理,原先在金融行业做量化交易,为了「改善伙食」一步步转行算法工程师。其间坚持自学并利用周末和晚上的时间录制教学课程。他的自我定位是「一个有毅力的吃货」,从书名也可以看出来。