作者 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 專案介面的「後記」文件顯示,專案作者畢業於「北京吃飯大學」,學的是理論物理,原先在金融行業做量化交易,為了「改善伙食」一步步轉行演算法工程師。其間堅持自學並利用週末和晚上的時間錄製教學課程。他的自我定位是「一個有毅力的吃貨」,從書名也可以看出來。對專案作者感興趣的讀者可以去讀一下「後記」文件。