机器之心整理

参与:一鸣

还记得李沐老师的《动手学深度学习》吗?近日,该书的 TF2.0 代码复现项目来了。


UC 伯克利李沐的《动手学深度学习》开源书一经推出便广受好评。很多开发者使用了书的内容,并采用各种各样的深度学习框架将其复现。据机器之心所知,现在已有 MXnet(原版)和 PyTorch 版本。


近日,《动手学深度学习》书又有了一个新的复现代码版本——TensorFlow2.0 版。这一项目登上了 12 月 9 日的 GitHub 热榜,一天获得了百星。

李沐讲深度学习(李沐动手学深度学习TF2.0版本来了)(1)


项目地址:https://github.com/TrickyGo/Dive-into-DL-TensorFlow2.0


项目作者表示,该项目是基于中文版的书进行的更新和重构,在代码上参考了 PyTorch 版本。目前该项目已更新到第五章,仍在继续更新。


本项目主要两位作者来自北大软件和微电子学院。项目已获得李沐老师本人授权。

李沐讲深度学习(李沐动手学深度学习TF2.0版本来了)(2)


TF2.0 版的《动手学》怎么样


本项目包括 code 和 doc 两个文件夹。其中 code 保存了 Jupyter 格式的代码,而 doc 则是 md 格式的书籍文件。由于原书使用的是 MXnet,因此代码和文本略有不同。


书籍内容展示


考虑到 md 格式对公式的展示不太优秀,作者使用 docsify (https://docsify.js.org/#/zh-cn/) 将文本转到了 GitHub pages 上,你可以像浏览网页那样阅读全书。


网页展示地址:https://trickygo.github.io/Dive-into-DL-TensorFlow2.0


李沐讲深度学习(李沐动手学深度学习TF2.0版本来了)(3)

从网页来看,目前确实更新到了第五章,但是考虑到这是一个小团队做的代码重构工作,能完成这么多实属不易。


代码展示


在书中,代码和文本是穿插进行了,因此可以一边读书一边写代码复现,还可以随时随地检查结果。

李沐讲深度学习(李沐动手学深度学习TF2.0版本来了)(4)


以「构建 MLP 网络」为例,作者提供了最 Python 的复现方法——为模型定义一个类,并继承 tf.keras.Model 的基类。在 TF2.0 的代码中,这是一种较为稳妥的方法。

李沐讲深度学习(李沐动手学深度学习TF2.0版本来了)(5)


当然,也有这样较为简单的实现代码。总之,代码非常简洁易懂。


全书目录


和之前机器之心介绍过的一样,这里提供全书目录,供读者参考。



怎样使用这一项目


作者在项目介绍中提供了两种使用方法,你可以从网页上阅读全书和配套代码,并一步一步跟着复现。当然,还有另一种本地浏览的方法。


具体而言,你需要首先安装 docify-cli 工具:


npm i docsify-cli -g


接着将本项目 clone 到本地并进入目录:


git clone https://github.com/TrickyGo/Dive-into-DL-TensorFlow2.0 cd Dive-into-DL-TensorFlow2.0


然后可以运行一个本地服务器,你可以在浏览器中输入 http://localhost:3000,然后就可以实时访问文档并查看渲染效果了。


docsify serve docs

,