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

2021-01-11 機器之心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入門極簡教程
    糟糕的文檔。安裝比較困難!有大量的依賴包。只有少量種類的輸入格式,僅有一種輸出格式 HDF5(雖然你總是可以使用它的 Python/C++/Matlab 接口來運行,並從中得到輸出數據)。不適用於構建循環網絡。2. Theano:由蒙特婁大學研究團隊構建。Theano 的頂層構建了數值開源深度庫,包括 Keras、Lasagne 和 Blocks。
  • 從星際2深度學習環境到神經機器翻譯,上手機器學習這些開源項目必...
    從模式識別到電子遊戲,開發者們通過訓練 AI 算法實現了各種各樣好玩的應用:MarI/O 源碼地址:https://pastebin.com/ZZmSNaHX一段用神經網絡和遺傳算法寫的程序,可以玩「超級馬裡奧世界」。
  • 這裡有一份TensorFlow2.0中文教程
    今年 3 月份,谷歌在 Tensorflow Developer Summit 2019 大會上發布 TensorFlow 2.0 Alpha 版。作為當前最為流行的深度學習框架,2.0 Alpha 版的正式發布引人關注。近兩個月,網上已經出現了大量 TensorFlow 2.0 英文教程。在此文章中,機器之心為大家推薦一個持續更新的中文教程,以便大家學習。
  • TensorFlow驚現大bug?網友:這是逼著我們用PyTorch啊
    用戶表示很失望,「怒而轉用 PyTorch」。在事情發酵後,TensorFlow 團隊終於回復了,表示已經在改,但對應的功能將在 2.4 版本中才能用。谷歌團隊 2015 年發布的 TensorFlow 框架是目前機器學習領域最流行的框架之一。雖然後起之秀 PyTorch 奮起直追,但 TensorFlow 框架的使用者仍然眾多。
  • 對比深度學習十大框架:TensorFlow 並非最好?
    TensorFlow連結:https://www.tensorflow.org/對於那些聽說過深度學習但還沒有太過專門深入的人來說,TensorFlow 是他們最喜歡的深度學習框架,但在這裡我要澄清一些事實。
  • 深度| 對比深度學習十大框架:TensorFlow最流行但並不是最好
    TensorFlow連結:https://www.tensorflow.org/對於那些聽說過深度學習但還沒有太過專門深入的人來說,TensorFlow 是他們最喜歡的深度學習框架,但在這裡我要澄清一些事實。
  • 谷歌開源TensorFlow Object Detection API物體識別系統
    API 將谷歌內部使用的物體識別系統(2016 年 10 月,該系統在 COCO 識別挑戰中名列第一)開源給更大的社區,幫助打造更好的計算機視覺模型。今天,我們很高興通過 TensorFlow Object Detection API 把該系統開源給更大的研究社區。這個代碼庫是一個建立在 TensorFlow 頂部的開源框架,方便其構建、訓練和部署目標檢測模型。我們設計這一系統的目的是支持當前最佳的模型,同時允許快速探索和研究。
  • 五分鐘喝不完一杯咖啡,但五分鐘可以帶你入門TensorFlow
    Windows上:安裝CPU版本:管理員模式打開命令行,輸入命令:pip install tensorflow安裝GPU版本:管理員模式打開命令行,輸入命令:pip install tensorflow-gpuLinux上:命令和上面一樣,如果你使用的是
  • tensorflow2.4的重大改進
    TensorFlow pip軟體包現在使用CUDA11和cuDNN 8.0.2構建。這不太可能在深度學習模型的實踐中引起問題。在某些情況下,TensorFloat-32也可用於complex64 ops。可以通過運行禁用TensorFloat-32 tf.config.experimental.enable_tensor_float_32_execution(False)。
  • PyTorch稱霸頂會:CVPR論文佔比是TensorFlow 4 倍
    機器之心報導參與:杜偉在開源框架領域,PyTorch 與 TensorFlow 之爭一直存在,研究人員在寫論文時也會有不同的偏向。但不得不說,當前最為火熱的開源框架,依然是谷歌的 TensorFlow 與 Facebook 手中的 PyTorch。兩者之間的競爭,也是社區內津津樂道的話題。
  • 2020,PyTorch真的趕上TensorFlow了嗎?
    原創 Synced 機器之心機器之心報導參與:張倩、杜偉幾天前,OpenAI 通過官方博客宣布了「全面轉向 PyTorch」的消息,計劃將自家平臺的所有框架統一為 PyPyTorch。
  • TensorFlow 2.1指南:keras模式、渴望模式和圖形模式(附代碼)
    如你所知,在Tensorflow中,存在這樣的範例:首先定義計算圖,然後進行編譯(或將其移至GPU),然後運行它。這種範例非常好,從技術上來講很有意義,但是,一旦在GPU中擁有了模型,幾乎就不可能對其進行調試。這就是為什麼,自從TensorFlow 2.0以其Alpha版本發布以來已經過去了大約一年,我決定在TensorFlow 2.1與大家分享使用的體驗。
  • 教程| 你來手繪塗鴉,人工智慧生成「貓片」:edges2cats圖像轉換詳解
    edges2cats 是最近網絡中火爆的開源應用,它能以你隨手鼠繪的單色線圖為基礎自動生成一張「真實圖片」。其中繪製貓的版本最受歡迎。在 2 月 19 日推出以後,這個實現很快受到了大家的關注,甚至連 Yann LeCun 這樣的重量級人物也在其中開始了自己的「創作」。
  • iPhone 11 訓練神經網絡的開源項目火了,準確率可與 i7 MacBook...
    在模型架構和訓練參數相同的情況下,同時在 iphone 11上運行 Core ML 和在 i7 MacBook Pro 上運行 TensorFlow 2.0,兩種方式的準確率都超過了0.98,前者訓練時間大概為248秒,後者為158秒。雖然用時上還有一定差距。但該項目和實驗被認為證明了 ios 設備計算性能的提升,也探索了行動裝置在本地訓練的可能性。
  • 2020,國產AI開源框架「亮劍」TensorFlow、PyTorch
    「AI技術生態論」 人物訪談欄目是CSDN發起的百萬人學AI倡議下的重要組成部分。通過對AI生態專家、創業者、行業KOL的訪談,反映其對於行業的思考、未來趨勢的判斷、技術的實踐,以及成長的經歷。本文為 「AI技術生態論」系列訪談第05期。百萬人學AI你也有份!參與文章評論,評論區留言入選,可獲得價值299元的「2020 AI開發者萬人大會」在線直播門票一張。
  • Google 這次用來重返中國的人工智慧 TensorFlow,究竟是什麼?
    上月彭博社報導,Google 這次想要在中國推廣自家的開源人工智慧框架 TensorFlow,通過減低開發者開發和使用人工智慧的難度,重回中國市場。也許非開發人員對 TensorFlow 並不熟悉,但你應該聽說過 DeepMind 這個名字,這個團隊開發出了今年打敗柯潔的 AlphaGo,以及自學 3 天在圍棋界找不到對手的 AlphaGo Zero。
  • 手把手教你如何用TensorFlow實現基於DNN的文本分類
    從它的名字就能看出這個框架基本的工作原理:由多維數組構成的張量(tensor)在圖(graph)結點之間定向流動(flow),從輸入走到輸出。在 TensorFlow 中,每次運算都可以用數據流圖(dataflow graph)的方式表示。
  • 推薦| ThoughtWorks 大牛教你入門 Tensorflow
    2015年,谷歌深度學習系統 TensorFlow 在工程師圈中引起了很大反響雷鋒網(公眾號:雷鋒網)AI慕課學院誠邀您報名 Tensorflow & 神經網絡算法高級應用班,看 ThoughtWorks 大牛更多秀出代碼,拒絕枯燥的理論講解,減少數學公式!
  • 詳解深度強化學習展現TensorFlow 2.0新特性(代碼)
    本文完整代碼資源連結:GitHub:https://github.com/inoryy/tensorflow2-deep-reinforcement-learning>>> import tensorflow as tf>>> print(tf.
  • 代碼+實戰:TensorFlow Estimator of Deep CTR——DeepFM/NFM/AFM/...
    以 DeepFM 為例來看看如何使用 TensorFlow Estimator and Datasets API 來實現 input_fn and model_fn:#1 1:0.5 2:0.03519 3:1 4:0.02567 7:0.03708 8:0.01705 9:0.06296 10:0.18185 11:0.02497 12:1 14: