機器之心報導
項目作者:lyhue1991
「官方文檔排布凌亂、搜索難用、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 項目界面的「後記」文檔顯示,項目作者畢業於「北京吃飯大學」,學的是理論物理,原先在金融行業做量化交易,為了「改善夥食」一步步轉行算法工程師。其間堅持自學並利用周末和晚上的時間錄製教學課程。他的自我定位是「一個有毅力的吃貨」,從書名也可以看出來。對項目作者感興趣的讀者可以去讀一下「後記」文檔。