Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

官方文档太辣鸡?TensorFlow 2.0开源工具书,30天「无痛」上手

「官方文档排布凌乱、搜索难用、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

为什么一定要学 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 的低阶、中阶和高阶 API。其中,低阶 API 涵盖了张量的操作与运算、自动图机制。中阶 API 涵盖 Dataset、layers、损失函数和优化器等内容介绍。高阶 API 涵盖了模型的构建与训练、单 GPU/多 GPU/TPU 的使用和训练完成模型的部署。可以说你应该了解 TensorFlow 的所有内容都在本书里面了。

作者简介

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

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

推荐文章
非常感谢,正在学习中,不知道有没有类似的pytorch高质量开源文档呢。