O'Reilly: TensorFlow速查手冊(cè)
定 價(jià):78 元
這是一本使用Python實(shí)現(xiàn)TensorFlow設(shè)計(jì)模式的簡(jiǎn)明參考書,可以幫助你對(duì)各種不同用例做出明智的決策。本書作者并不是只強(qiáng)調(diào)TensorFlow本身,而是全面地介紹了數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)領(lǐng)域中的常見主題和任務(wù)。
什么時(shí)候使用NumPy或流式數(shù)據(jù)集提供訓(xùn)練數(shù)據(jù)?為什么?訓(xùn)練過程中你要如何建立數(shù)據(jù)轉(zhuǎn)換和工作流?如何使用遷移學(xué)習(xí)充分利用一個(gè)預(yù)訓(xùn)練的模型?如何完成超參數(shù)調(diào)優(yōu)?選擇這本書,它會(huì)大大減少你為TensorFlow用例搜尋選擇方案花費(fèi)的時(shí)間。
前言TensorFlow 生態(tài)系統(tǒng)已經(jīng)演化為很多不同的框架,為各種不同的角色和功能提供服務(wù)。這種靈活性一定程度上解釋了為什么TensorFlow 得到了廣泛采用,不過這也使數(shù)據(jù)科學(xué)家、機(jī)器學(xué)習(xí)(Machine Learning,ML)工程師和其他技術(shù)相關(guān)者的學(xué)習(xí)曲線變得復(fù)雜化。對(duì)于常見的任務(wù),如數(shù)據(jù)和特征工程、數(shù)據(jù)攝取、模型選擇、訓(xùn)練模式、針對(duì)過擬合的交叉驗(yàn)證以及部署策略,管理TensorFlow模型的方法有很多,這就帶來了大量繁復(fù)的選擇。本書將幫助你選擇如何使用TensorFlow 開展工作,包括如何在Python 中使用TensorFlow 2.0 設(shè)計(jì)模式建立常用的數(shù)據(jù)科學(xué)和ML 工作流。書中的示例將描述并演示TensorFlow 編碼模式以及你在ML 項(xiàng)目工作中可能經(jīng)常遇到的其他任務(wù)。可以把它作為一個(gè)指南,也可以作為一本參考書。這本書面向當(dāng)前以及未來的ML工程師、數(shù)據(jù)科學(xué)家和企業(yè)ML解決方案架構(gòu)師,他們希望增進(jìn)自己在TensorFlow 建模的可重用模式和最佳實(shí)踐方面的知識(shí)和經(jīng)驗(yàn)。你可能已經(jīng)讀過一本入門的TensorFlow 書,而且時(shí)刻跟蹤數(shù)據(jù)科學(xué)領(lǐng)域的發(fā)展,對(duì)此已經(jīng)有基本的了解。本書假設(shè)你有使用Python(可能還有NumPy、pandas 和JSON 庫(kù))完成數(shù)據(jù)工程和特征工程以及構(gòu)建TensorFlow 模型的實(shí)踐經(jīng)驗(yàn)。如果你熟悉常用的一些數(shù)據(jù)結(jié)構(gòu)(如列表、字典和NumPy 數(shù)組),這些經(jīng)驗(yàn)也會(huì)很有幫助。與很多其他TensorFlow 書不同,這本書重點(diǎn)關(guān)注你要完成的任務(wù),并圍繞這個(gè)中心組織全書內(nèi)容,包括: 何時(shí)以及為什么采用NumPy 數(shù)組或流式數(shù)據(jù)集提供訓(xùn)練數(shù)據(jù)(第2 章和第5 章)? 如何使用遷移學(xué)習(xí)充分利用預(yù)訓(xùn)練的模型(第3 章和第4 章)? 使用一個(gè)通用的fit 函數(shù)完成訓(xùn)練還是編寫一個(gè)自定義訓(xùn)練循環(huán)(第6 章)? 如何管理和使用模型檢查點(diǎn)(第7 章)? 如何使用TensorBoard 檢查訓(xùn)練過程(第7 章)? 如果無法將所有數(shù)據(jù)放入運(yùn)行時(shí)環(huán)境的內(nèi)存,如何使用多個(gè)加速器(如GPU)完成分布式訓(xùn)練(第8 章)? 推理過程中如何將數(shù)據(jù)傳遞到模型,另外如何處理輸出(第9 章)? 你的模型公平嗎(第10 章)?如果你正糾結(jié)于這些問題,這本書會(huì)對(duì)你很有幫助。排版約定本書采用以下排版約定。斜體表示新術(shù)語(yǔ)、URL、電子郵件地址、文件名和文件擴(kuò)展名。等寬字體(Constant Width)表示程序清單,在段落內(nèi)表示程序元素,例如變量、函數(shù)名稱、數(shù)據(jù)庫(kù)、數(shù)據(jù)類型、環(huán)境變量、語(yǔ)句和關(guān)鍵字。粗體等寬字體(Constant width bold)表示應(yīng)由用戶原封不動(dòng)輸入的命令或其他文本。斜體等寬字體(Constant width italic)表示應(yīng)該替換成用戶提供值的文本,或者由上下文決定的值。提示表示提示或建議。使用代碼示例這本書的補(bǔ)充材料( 代碼示例, 練習(xí)等) 可以從https://github.com/shinchan75034/tensorflowpocket-ref 下載。如果你有技術(shù)問題,或者使用代碼示例時(shí)遇到問題,請(qǐng)發(fā)送電子郵件至errata@oreilly.com.cn。本書的目的是要幫助你完成工作。一般來講,如果書中提供了示例代碼,你可以在你的程序和文檔中使用這些示例代碼,除非你直接復(fù)制了大部分的代碼,否則不需要聯(lián)系我們來得到許可。例如,如果你在編寫一個(gè)程序,使用了本書中的多段代碼,這并不需要得到許可。但是出售或發(fā)行OReilly 書的示例代碼則需要得到許可;卮饐栴}時(shí)如果引用了這本書的文字和示例代碼,這不需要得到許可。但是如果你的產(chǎn)品文檔借用了本書中的大量示例代碼,則需要得到許可。我們希望但不嚴(yán)格要求標(biāo)明引用出處。引用信息通常包括書名、作者、出版商和ISBN。例如,TensorFlow 2 Pocket Reference by KC Jung(OReilly).Copyright 2021 Favola Vera, LLC, 978-1-492-08918-6。如果你認(rèn)為使用代碼示例時(shí)超出了合理使用范圍或者上述許可范圍,可以隨時(shí)聯(lián)系我們:permissions@oreilly.com。OReilly 在線學(xué)習(xí)平臺(tái)(OReilly Online Learning)近40 年來,OReilly Media 致力于提供技術(shù)和商業(yè)培訓(xùn)、知識(shí)和卓越見解,來幫助眾多公司取得成功。公司獨(dú)有的專家和改革創(chuàng)新者網(wǎng)絡(luò)通過OReilly 書籍、文章以及在線學(xué)習(xí)平臺(tái),分享他們的專業(yè)知識(shí)和實(shí)踐經(jīng)驗(yàn)。OReilly 在線學(xué)習(xí)平臺(tái)按照您的需要提供實(shí)時(shí)培訓(xùn)課程、深入學(xué)習(xí)渠道、交互式編程環(huán)境以及來自O(shè)Reilly 和其他200 多家出版商的大量書籍與視頻資料。更多信息,請(qǐng)?jiān)L問網(wǎng)站:https://www.oreilly.com/。聯(lián)系我們任何有關(guān)本書的意見或疑問,請(qǐng)按照以下地址聯(lián)系出版社。美國(guó):OReilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中國(guó):北京市西城區(qū)西直門南大街2 號(hào)成銘大廈C 座807 室(100035)奧萊利技術(shù)咨詢(北京)有限公司針對(duì)這本書,我們還建有一個(gè)網(wǎng)頁(yè),列出了有關(guān)勘誤、示例和其他信息?梢酝ㄟ^以下地址訪問這個(gè)頁(yè)面:https://oreil.ly/tensorflow2pr。如果對(duì)這本書有什么意見,或者詢問技術(shù)上的問題,請(qǐng)發(fā)送電子郵件至errata@oreilly.com.cn。要了解關(guān)于我們的圖書和課程的新聞和信息,請(qǐng)?jiān)L問我們的網(wǎng)站:http://www.oreilly.com。我們的Facebook:http://facebook.com/oreilly。我們的Twitter:http://twitter.com/oreillymedia。我們的YouTube:http://www.youtube.com/oreillymedia。致謝非常感謝OReilly 編輯們周密而專業(yè)的工作。此外,我還要感謝技術(shù)審校Tony Holdroyd、Pablo Marin、Giorgio Saez 和Axel Sirota 提供的寶貴反饋和建議。最后,還要特別感謝Rebecca Novack 和Sarah Grey 給我這個(gè)機(jī)會(huì),與我合作編寫了這本書。
KC Tung 是微軟的云解決方案架構(gòu)師,擅長(zhǎng)在企業(yè)云架構(gòu)中設(shè)計(jì)和交付機(jī)器學(xué)習(xí)和AI 解決方案。他幫助企業(yè)客戶使用用例驅(qū)動(dòng)的架構(gòu),在云中完成 AI/ML 模型開發(fā)和部署,以及選擇最適合其需求的技術(shù)和集成方案。他是微軟認(rèn)證的人工智能工程師和數(shù)據(jù)工程師,擁有得克薩斯大學(xué)西南醫(yī)學(xué)院的分子生物物理學(xué)博士學(xué)位。
目錄前言 . 1第1 章 TensorFlow 2 簡(jiǎn)介 . 71.1 TensorFlow 2 的改進(jìn) 81.1.1 Keras API .81.1.2 TensorFlow 中的可重用模型 91.2 簡(jiǎn)化常用操作 101.2.1 開源數(shù)據(jù) 101.2.2 使用分布式數(shù)據(jù)集 101.2.3 數(shù)據(jù)流式處理 111.2.4 數(shù)據(jù)工程 111.2.5 遷移學(xué)習(xí) 121.2.6 模型風(fēng)格 121.2.7 監(jiān)視訓(xùn)練過程 121.2.8 分布式訓(xùn)練 131.2.9 提供TensorFlow 模型服務(wù) 131.2.10 改善訓(xùn)練體驗(yàn) 131.3 總結(jié) 14第2 章 數(shù)據(jù)存儲(chǔ)和攝取 152.1 使用Python 生成器流式處理數(shù)據(jù) 162.2 使用生成器流式處理文件內(nèi)容 .182.3 JSON 數(shù)據(jù)結(jié)構(gòu) .212.4 建立文件名模式 222.5 將一個(gè)CSV 文件劃分為多個(gè)CSV 文件232.6 使用tf.io 創(chuàng)建文件模式對(duì)象 .242.7 創(chuàng)建流式數(shù)據(jù)集對(duì)象 .252.8 流式處理CSV 數(shù)據(jù)集 282.9 組織圖像數(shù)據(jù) 292.10 使用TensorFlow 圖像生成器312.11 流式處理交叉驗(yàn)證圖像332.12 查看調(diào)整大小后的圖像 .342.13 總結(jié) .36第3 章 數(shù)據(jù)預(yù)處理 . 393.1 準(zhǔn)備表格數(shù)據(jù)進(jìn)行訓(xùn)練 393.1.1 標(biāo)記列 .413.1.2 將列交互編碼為可能的特征 463.1.3 創(chuàng)建交叉驗(yàn)證數(shù)據(jù)集483.1.4 開始模型訓(xùn)練過程 493.1.5 小結(jié) 503.2 準(zhǔn)備圖像數(shù)據(jù)進(jìn)行處理 513.2.1 將圖像轉(zhuǎn)換為固定大小 553.2.2 訓(xùn)練模型 583.2.3 小結(jié) 603.3 準(zhǔn)備文本數(shù)據(jù)進(jìn)行處理 603.3.1 文本分詞 613.3.2 創(chuàng)建字典和反轉(zhuǎn)字典653.4 總結(jié) 67第4 章 可重用模型元素 694.1 基本TensorFlow Hub 工作流 704.2 利用遷移學(xué)習(xí)完成圖像分類 744.2.1 模型需求 744.2.2 數(shù)據(jù)轉(zhuǎn)換和輸入處理754.2.3 利用TensorFlow Hub 實(shí)現(xiàn)模型 .774.2.4 定義輸出 784.2.5 輸出映射到純文本格式 794.2.6 評(píng)估:創(chuàng)建一個(gè)混淆矩陣 .814.2.7 小結(jié) 834.3 使用tf.keras.applications 模塊獲得預(yù)訓(xùn)練模型 834.3.1 利用tf.keras.applications 實(shí)現(xiàn)模型 834.3.2 微調(diào)tf.keras.applications 的模型 854.4 總結(jié) 86第5 章 流式攝取數(shù)據(jù)管道 895.1 使用text_dataset_from_directory 函數(shù)流式處理文本文件 .905.1.1 下載文本數(shù)據(jù)并建立字典 .905.1.2 創(chuàng)建數(shù)據(jù)管道 925.1.3 檢查數(shù)據(jù)集 935.1.4 小結(jié) 945.2 使用flow_from_dataframe 方法利用文件列表流式處理圖像 945.2.1 下載圖像并創(chuàng)建目錄955.2.2 創(chuàng)建數(shù)據(jù)攝取管道 965.2.3 檢查數(shù)據(jù)集 995.2.4 構(gòu)建和訓(xùn)練tf.keras 模型 .1005.3 使用from_tensor_slices 方法流式處理NumPy 數(shù)組 1015.3.1 加載示例數(shù)據(jù)和庫(kù) .1025.3.2 檢查NumPy 數(shù)組 1035.3.3 為NumPy 數(shù)據(jù)建立輸入管道 1045.4 總結(jié) .106第6 章 模型創(chuàng)建風(fēng)格 1076.1 使用符號(hào)式API .1086.1.1 加載CIFAR-10 圖像 .1086.1.2 檢查標(biāo)簽分布 1106.1.3 檢查圖像 . 1116.1.4 構(gòu)建數(shù)據(jù)管道 1136.1.5 批處理數(shù)據(jù)集進(jìn)行訓(xùn)練 1146.1.6 構(gòu)建模型 . 1156.2 理解繼承 1186.3 使用命令式API .1216.4 選擇API 1246.5 使用內(nèi)置訓(xùn)練循環(huán) 1256.6 創(chuàng)建和使用自定義訓(xùn)練循環(huán) 1266.6.1 創(chuàng)建循環(huán)的元素 1266.6.2 在自定義訓(xùn)練循環(huán)中集成所有元素 1286.7 總結(jié) .130第7 章 監(jiān)視訓(xùn)練過程 1337.1 回調(diào)對(duì)象 1347.1.1 ModelCheckpoint 1347.1.2 EarlyStopping 1427.1.3 小結(jié) 1447.2 TensorBoard .1447.2.1 由本地Jupyter Notebook 調(diào)用TensorBoard 1507.2.2 由本地命令終端調(diào)用TensorBoard .1517.2.3 由Colab Notebook 調(diào)用TensorBoard 1517.2.4 使用TensorBoard 可視化顯示模型過擬合 .1527.2.5 使用TensorBoard 可視化學(xué)習(xí)過程 1537.3 總結(jié) .155第8 章 分布式訓(xùn)練 1578.1 數(shù)據(jù)并行化 1588.1.1 異步參數(shù)服務(wù)器 1598.1.2 同步全歸約 1608.2 使用類tf.distribute.MirroredStrategy 1618.2.1 創(chuàng)建分布式訓(xùn)練 1638.2.2 利用tf.distribute.MirroredStrategy 使用GPU 集群 1678.2.3 小結(jié) 1738.3 Horovod API 1738.3.1 實(shí)現(xiàn)Horovod API 的代碼模式 .1748.3.2 封裝模型架構(gòu) 1758.3.3 封裝數(shù)據(jù)分離和分片過程 1768.3.4 工作節(jié)點(diǎn)間的參數(shù)同步 1778.3.5 模型檢查點(diǎn)回調(diào) 1788.3.6 聚合梯度的分布式優(yōu)化器 1788.3.7 使用Horovod API 的分布式訓(xùn)練 1798.4 總結(jié) .186第9 章 提供TensorFlow 模型服務(wù). 1879.1 模型序列化 1879.1.1 將模型保存為h5 格式 1959.1.2 將模型保存為pb 格式 1969.1.3 選擇模型格式 1989.2 TensorFlow Serving .1999.3 總結(jié) .206第10 章 改善建模體驗(yàn):公平性評(píng)估和超參數(shù)調(diào)優(yōu) . 20710.1 模型公平性 20810.1.1 模型訓(xùn)練和評(píng)估 21010.1.2 公平性評(píng)估21210.1.3 顯示Fairness Indicators.21410.2 超參數(shù)調(diào)優(yōu) 22110.2.1 整數(shù)列表作為超參數(shù) 22210.2.2 項(xiàng)選擇作為超參數(shù) 22310.2.3 浮點(diǎn)值作為超參數(shù) 22310.3 端到端超參數(shù)調(diào)優(yōu) .22310.4 總結(jié) 231