官方文檔太辣雞?TensorFlow 2.0開源工具書,30天「無痛」上手

2020-12-04 機器之心Pro

機器之心報導

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

相關焦點

  • 輸入示例,自動生成代碼:TensorFlow官方工具TF-Coder已開源
    最近,谷歌 TensorFlow 開源了一個幫助開發者寫 TensorFlow 代碼的程序合成工具 TF-Coder。項目地址:https://github.com/google-research/tensorflow-coderGoogle Colab 試用地址:https://colab.research.google.com/github/google-research/tensorflow-coder/blob/master/TF-Coder_Colab.ipynb
  • 基於TensorFlow2.0的中文深度學習開源書來了!GitHub趨勢日榜第一
    十三 發自 凹非寺 量子位 報導 | 公眾號 QbitAITensorFlow 2.0 發布已有一個半月之久,你會用了嗎?近日,一個叫做深度學習開源書的項目在火了。因為這是一本基於TensorFlow 2.0 正式版的中文深度學習開源書。還包含電子書和配套原始碼。話不多說,一起來看看這本爆款書籍吧!
  • 玩轉TensorFlow?你需要知道這30功能
    這意味著,如果不想使用低階的模型,那仍然可以用高階 API 的用戶友好性來實現圖形+模型的構建。2.0 版本將會有更多的功能!網址:https://www.tensorflow.org/guide/keras12)Tensor2TensorTensor2Tensor 是一個深度學習模型和數據集的開源軟體庫
  • 終於來了,TensorFlow 新增官方 Windows 支持
    同時,谷歌也在 TensorFlow 框架中進行過各類研究、開源了其中一些項目,這些研究涉及到自然語言處理、機器翻譯、圖像描述、圖像分類等等。谷歌在開發者博客上寫到:「原生的 Windows 版 TensorFlow 是自開源以來,我們工作的重中之重。
  • TensorFlow極速入門
    最後給出了在 tensorflow 中建立一個機器學習模型步驟,並用一個手寫數字識別的例子進行演示。1、tensorflow是什麼?tensorflow 是 google 開源的機器學習工具,在2015年11月其實現正式開源,開源協議Apache 2.0。
  • 從星際2深度學習環境到神經機器翻譯,上手機器學習這些開源項目必...
    從模式識別到電子遊戲,開發者們通過訓練 AI 算法實現了各種各樣好玩的應用:MarI/O 源碼地址:https://pastebin.com/ZZmSNaHX一段用神經網絡和遺傳算法寫的程序,可以玩「超級馬裡奧世界」。
  • 從框架優缺點說起,這是一份TensorFlow入門極簡教程
    糟糕的文檔。安裝比較困難!有大量的依賴包。只有少量種類的輸入格式,僅有一種輸出格式 HDF5(雖然你總是可以使用它的 Python/C++/Matlab 接口來運行,並從中得到輸出數據)。不適用於構建循環網絡。2. Theano:由蒙特婁大學研究團隊構建。Theano 的頂層構建了數值開源深度庫,包括 Keras、Lasagne 和 Blocks。
  • Tensorflow 2.0 即將入場
    而就在即將到來的2019年,Tensorflow 2.0將正式入場,給暗流湧動的框架之爭再燃一把火。如果說兩代Tensorflow有什麼根本不同,那應該就是Tensorflow 2.0更注重使用的低門檻,旨在讓每個人都能應用機器學習技術。
  • TensorFlow 攜手 NVIDIA,使用 TensorRT 優化 TensorFlow Serving...
    目前,TensorFlow Serving 1.13 已實現對 TF-TRT 的支持,而不久後  TensorFlow 2.0 也將支持 TF-TRT 的實現。 TensorFlow 在官方博客中對這項成果進行了發布,雷鋒網 AI 科技評論編譯如下。
  • 深度解讀TensorFlow,了解它的最新發展!
    Tensorboard是tensorflow內置的一個可視化工具,它通過將tensorflow程序輸出的日誌文件的信息可視化,使得tensorflow程序的理解、調試和優化更加簡單高效。Tensorboard的可視化依賴於tensorflow程序運行輸出的日誌文件,因而tensorboard和tensorflow程序在不同的進程中運行。
  • 揭秘框架的本源:開源中文書「TensorFlow內核剖析」
    項目連結:https://github.com/horance-liu/tensorflow-internals在項目地址中,作者提供了全部的 LaTexPDF下載地址:https://raw.github.com/horance-liu/tensorflow-internals/master/tensorflow-internals.pdf
  • 谷歌正式發布TensorFlow 1.5,究竟提升了哪些功能?
    昨天,谷歌在 GitHub 上正式發布了 TensorFlow 的最新版本 1.5.0,並開源了其代碼。支持 CUDA 9 和 cuDNN 7 被認為是本次更新的最重要部分。機器之心對這次更新的重大改變以及主要功能和提升進行了編譯介紹,原文請見文中連結。
  • TensorFlow與PyTorch之爭,哪個框架最適合深度學習
    如果你對這一領域還不是很熟悉,那麼簡單來說,深度學習使用了「人工神經網絡」,這是一種類似大腦的特殊架構,這個領域的發展目標是開發出能解決真實世界問題的類人計算機。為了幫助開發這些架構,谷歌、Facebook 和 Uber 等科技巨頭已經為 Python 深度學習環境發布了多款框架,這讓人們可以更輕鬆地學習、構建和訓練不同類型的神經網絡。
  • 這裡有一份TensorFlow2.0中文教程
    今年 3 月份,谷歌在 Tensorflow Developer Summit 2019 大會上發布 TensorFlow 2.0 Alpha 版。作為當前最為流行的深度學習框架,2.0 Alpha 版的正式發布引人關注。近兩個月,網上已經出現了大量 TensorFlow 2.0 英文教程。在此文章中,機器之心為大家推薦一個持續更新的中文教程,以便大家學習。
  • 關於TensorFlow,你應該了解的9件事
    TensorFlow 是開源的,你可以免費下載並立即開始使用。TensorFlow 下載地址:https://www.tensorflow.org/install/TensorFlow 初始教程:https://www.datacamp.com/community/tutorials/tensorflow-tutorial
  • TensorFlow 2.0 新鮮出爐!新版本,新架構,新特性
    基於這三大特點,TensorFlow 2.0也有新架構,如下面的簡化概念圖所示:TensorFlow 2.0 將專注於簡單性和易用性,具有以下更新:使用 Keras 和 eager execution,輕鬆構建模型在任意平臺上實現生產環境的穩健模型部署為研究提供強大的實驗工具通過清理廢棄的 API 和減少重複來簡化 API下面詳細介紹TF2.0
  • 資源| TensorFlow版本號升至1.0,正式版即將到來
    選自github機器之心編譯參與:吳攀2015 年 11 月份,谷歌宣布開源了深度學習框架 TensorFlow,一年之後,TensorFlow 就已經成長為了 GitHub 上最受歡迎的深度學習框架(參見機器之心文章《深度 | TensorFlow 開源一周年:這可能是一份最完整的盤點》),儘管那時候 TensorFlow 的版本號還是 v0.11。
  • 教程| 如何用TensorFlow在安卓設備上實現深度學習推斷
    以「Ok Google」這個功能為例:用一名用戶的聲音來訓練「Ok Google」,他的手機在接收到這個關鍵詞的時候就會被喚醒。這種小型關鍵詞檢測(small-footprint keyword-spotting,KWS)推斷通常在本地設備上運行,所以你不必擔心服務提供商隨時監聽你的聲音。而雲服務只在你發出指令後才啟動。
  • TensorFlow極簡教程:創建、保存和恢復機器學習模型
    這意味著「恢復」操作必須能夠訪問會話以恢復圖內的權重。理解恢復操作的最好方法是將其簡單地當作一種初始化。_2:0')# output_conv =vgg_graph.get_tensor_by_name('conv2_2:0')# output_conv =vgg_graph.get_tensor_by_name('conv3_3:0')# output_conv =vgg_graph.get_tensor_by_name('conv4_3:0')
  • 基於TensorFlow 、OpenCV 和 Docker 的實時視頻目標檢測
    Docker在數據科學中的應用我不在這裡描述 Tensorflow 目標檢測 API 的實現,因為相關的文檔很多。我將展示數據科學家在日常工作中如何使用 Docker。注意,我會使用 Tensorflow 的經典 ssd_mobilenet_v2_coco 模型來提高性能。