本書特色
◎ TensorFlow開發者之一的傾力著作,最佳工程實作
◎ 全面、深入、實例多,一本掌握Google 深度學習框架
◎ TensorFlow行動端開發及端到端應用開發的實戰寶典
內容簡介
本書重點
◎ 用電腦玩AI不稀奇,在行動裝置上執行才夠力
◎ 最新行動端的AI架構,包括NNAPI、CoreML
◎ 在Android、 iOS及樹莓派上開發視覺及語音AI應用程式
◎ 使用TensorFlow Serving+TPU訓練及最佳化模型
◎ TensorFlow Mobile執行影像分類、物體偵測、時尚、聲音識別
◎ TensorFlow Lite+GPU的使用,還有ML Kit
本書主要內容
作為TensorFlow的開發者和使用者,作者完整地講解使用TensorFlow進行端到端開發的實例和開發技巧,同時分享如何使用開源工具進行軟體發展的工程實作和經驗。本書提供全方位的視角説明為讀者開啟不同的思路,即使作為一本軟體發展和工程開發的書籍閱讀,也會使讀者受益匪淺。
全書大綱如下
►機器學習和TensorFlow 簡述
►建置開發環境
►以行動端為基礎的機器學習的開發方式和流程
►建置TensorFlow Mobile
►用TensorFlow Mobile 建置機器學習應用
► TensorFlow Lite 的架構
►用TensorFlow Lite 建置機器學習應用
►行動端的機器學習開發
►TensorFlow 的硬體加速
►機器學習應用架構
►以行動裝置為基礎的機器學習的未來
適合讀者群:機器學習初學者、對機器學習感興趣者,或大專院校相關科系學生。
作者簡介:
王眾磊
TensorFlow的開發者之一,現定居美國矽谷,長期從事軟體發展工作,常在國際上發表論文並有多項國際專利。曾在Google等多家大型國際公司及初創企業工作,有豐富的中國、國際開發及管理經驗。
近幾年以行動端開發、邊緣運算、雲端運算和機器學習為主,從事開發和管理工作。工作之餘喜歡和家人一起去各地旅遊、打高爾夫球、滑雪等。
陳海波
深蘭科技DeepBlue Technology創始人,南京工業大學特聘教授,清華大學—深蘭科技機器視覺聯合研究中心管理委員會主任;上海交通大學—深蘭科技人工智慧聯合實驗室管理委員會主任、中南大學—深蘭科技人工智慧聯合研究院專家委員會委員。
致力於人工智慧的基礎研究和應用開發,創建的深蘭科學院擁有人工智慧研究院、科學計算研究院、生命及AI腦科學院、自動化研究院和智慧汽車研究院。團隊擁有包括CVPR、PAKDD、IEEEISI等多項國際競賽冠軍成績,在自動駕駛和整車、機器人研發及製造、生物科技、自然語言處理(語義智慧)、資料採擷等領域都有深度佈局。
作者序
前言
2018 年,我有很長一段時間在中國和美國兩地跑,同時在中國大陸工作和生活了比較長的一段時間,這是我近二十年來第一次和中國大陸的開發者一起長時間工作。在享受各種美食之外,對中國大陸的開發、產品和管理有了全新的了解和認識。
說起寫書的緣由,我本來的想法只是寫一點可以作為工程師教育訓練教材的東西。2018 年初,TensorFlow 作為一個技術熱點,逐漸普及到機器學習應用程式開發的各方面,但是對於TensorFlow 在行動端的開發和應用還處於初始階段。我當時也剛剛結束一個TensorFlow 專案,想把這些經驗和想法沉澱一下。於是我就把以前寫的筆記和記錄檔重新整理,增加一些內容並修改了文字,基本形成了一個原始版本。
後來,遇到博文視點的南海寶編輯,透過商談,出版社欣然同意把這些資料整理出書。我的筆記和記錄檔的內容很多和程式緊密相關,其中很多內容後來演變成了文件,我覺得這對初學者和有經驗的開發者都是一個很好的參考,至少可以提供另外一個角度,讓開發者多方面了解TensorFlow。所以,我就開始寫作,前後花費了近兩年的時間。
我是一邊寫作一邊工作的,在這過程中很快就遇到了兩個很大的挑戰。
第一是文字。我的筆記都是英文的,要把這些轉換成中文,我借助了Google 翻譯,雖然翻譯後的文字有很多需要修改,但至少省下了不少打字的時間。另外,就是專有術語的翻譯,由於我對中文的專業術語不熟悉,所以即使簡單的術語也要斟酌確定,這也花費了一些時間。如果讀者在文字中發現一些奇怪的說法,還請見諒,我和編輯雖然盡了最大的努力,可能還是會有很多遺漏。
第二是重新認識和了解了中國大陸開發的各方面。我在美國和中國大陸的開發者也有不少接觸,我想在兩邊工作應該不會有什麼差別,可實際工作起來還是有很多不同和挑戰,感觸頗深。首先是技術層面。開放原始碼的理念和軟體在中國大陸滲透到各方面,幾乎所有網際網路公司都是從使用開放原始碼軟體開始架設自己的產品。由於Google 在開放原始碼社區的貢獻和影響力,中國大陸普遍對Google 的好感度很高,我也同享了這個榮耀。而且,很多公司和開發者也把對開放原始碼社區做出貢獻看作責任和榮耀,這是一個很好的趨勢,中國很快會發展出自己的開放原始碼生態和社區。
關於開發環境和工程師文化,我想提一下兩邊對新員工教育訓練的區別。在中國大陸對新員工的教育訓練中,職業道德教育訓練和公司文化的教育訓練佔了很大一部分。而在矽谷,至少像Google、臉書這些公司,教育訓練中技術教育訓練佔了很大一部分,基本是一周的教育訓練後,員工就要進行實際的工作,而中國大陸很多公司的新員工第二周才開始技術工作。這裡我能充分感受到中美公司之間的差別。
另外是開發管理方法,由於管理方法的不同,實際的工作中要做對應的改變。例如中國大陸對開發和產品的進度的管理是非常嚴格的。但是,這種嚴格大都表現在層級的匯報關係上,而非對技術細節的掌控和指導上。Google 的工程師會經常以程式的提交作為一個專案開始和結束的標示,這在中國大陸公司很少見到。
我希望把這些經驗、想法和體會能或多或少表現在這本書裡。舉例來說,使用Markdown 寫文件,能使寫文件變成一件不是很煩瑣的事,可以讓作者更專注於內容的寫作,而非花費太多時間在操作編輯器上。本書就是全部用Markdown 寫作完成,再轉換成Word 文件的。舉例來說,使用Bazel 編譯,需要對程式的依賴有清晰的定義。可能很多工程師不會特別在意這點,但是透過它,工程師可以非常清楚地了解程式重用和參考的狀況,避免隨意的程式重用,並加強程式的品質。我希望透過這些在書中給讀者傳達一些不同的開發經驗。
總之,我會把這本書作為這一年工作和生活的紀念。看到書中的各個章節,我就可以聯想起寫書時發生的許多事。但是,真的由於時間和我自己的能力非常有限,書中一定會有很多錯誤和瑕疵,還望讀者能寬容和諒解。
最後,要感謝我的家人能支援和陪伴我度過2018 年,我和我的母親一起度過了2018 年春節,是近20 年來在中國大陸度過的第一個春節。還要感謝我的妻子,她非常支援我,並幫助我寫完這本書。還有我的兩個女兒,總是能給我帶來無盡的快樂,還要感謝深蘭科技的創始人陳海波先生和首席戰略官王博士,兩位幫助我完成這本書,並提出了很多意見。
另外,感謝博文視點給我這個機會出版這本書,希望透過這本書能結識更多的開發者。還要感謝南海寶編輯在本撰寫作和出版過程中給予的指導和鼓勵。
前言
2018 年,我有很長一段時間在中國和美國兩地跑,同時在中國大陸工作和生活了比較長的一段時間,這是我近二十年來第一次和中國大陸的開發者一起長時間工作。在享受各種美食之外,對中國大陸的開發、產品和管理有了全新的了解和認識。
說起寫書的緣由,我本來的想法只是寫一點可以作為工程師教育訓練教材的東西。2018 年初,TensorFlow 作為一個技術熱點,逐漸普及到機器學習應用程式開發的各方面,但是對於TensorFlow 在行動端的開發和應用還處於初始階段。我當時也剛剛結束一個TensorFlow 專案,想把這些經驗和想法沉澱一下。於...
目錄
前言
01 機器學習和TensorFlow 簡述
1.1 機器學習和TensorFlow 的歷史及發展現狀
1.2 在行動裝置上執行機器學習的應用
1.3 機器學習架構
02 建置開發環境
2.1 開發主機和裝置的選擇
2.2 在網路代理環境下開發
2.3 整合式開發環境IDE
2.4 建置工具Bazel
2.5 載入TensorFlow
2.6 文件
03 以行動端為基礎的機器學習的開發方式和流程
3.1 開發方式和流程簡介
3.2 使用TPU 進行訓練
3.3 裝置端進行機器學習訓練
3.4 使用TensorFlow Serving 最佳化TensorFlow 模型
3.5 TensorFlow 擴充(Extended)
04 建置TensorFlow Mobile
4.1 TensorFlow Mobile 的歷史
4.2 TensorFlow 程式結構
4.3 建置及執行
05 用TensorFlow Mobile 建置機器學習應用
5.1 準備工作
5.2 影像分類(Image Classification)
5.3 物體檢測(Object Detection)
5.4 時尚繪製(Stylization)
5.5 聲音識別(Speech Recognization)
06 TensorFlow Lite 的架構
6.1 模型格式
6.2 底層結構和設計
6.3 工具
07 用TensorFlow Lite 建置機器學習應用
7.1 模型設計
7.2 開發應用
7.3 TensorFlow Lite 的應用
7.4 TensorFlow Lite 使用GPU
7.5 訓練模型
08 行動端的機器學習開發
8.1 其他裝置的支援
8.2 設計和最佳化模型
8.3 設計機器學習應用程式要點
09 TensorFlow 的硬體加速
9.1 神經網路介面
9.2 硬體加速
10 機器學習應用架構
10.1 ML Kit
10.2 聯合學習(Federated Learning)
11 以行動裝置為基礎的機器學習的未來
11.1 TensorFlow 2.0 和路線圖
11.2 人工智慧的發展方向
前言
01 機器學習和TensorFlow 簡述
1.1 機器學習和TensorFlow 的歷史及發展現狀
1.2 在行動裝置上執行機器學習的應用
1.3 機器學習架構
02 建置開發環境
2.1 開發主機和裝置的選擇
2.2 在網路代理環境下開發
2.3 整合式開發環境IDE
2.4 建置工具Bazel
2.5 載入TensorFlow
2.6 文件
03 以行動端為基礎的機器學習的開發方式和流程
3.1 開發方式和流程簡介
3.2 使用TPU 進行訓練
3.3 裝置端進行機器學習訓練
3.4 使用TensorFlow Serving 最佳化TensorFlow 模型
3.5 TensorFlow 擴充(Extended)
04 建置TensorF...