【深智書摘】同時搞定TensorFlow、PyTorch

更新 發佈閱讀 5 分鐘
raw-image

TensorFlow、PyTorch 是目前佔有率最高的深度學習框架,初學者常會問『應該選擇PyTorch或 TensorFlow套件』,依個人看法,PyTorch、TensorFlow好比倚天劍與屠龍刀,各有擅場,兩個套件的發展重點有所不同,例如在偵錯方面,PyTorch比較容易,但TensorFlow/Keras建模、訓練、預測都只要一行程式,另外,物件偵測主流演算法YOLO,第四版以TensorFlow開發,第五版則以PyTorch開發,若我們只懂TensorFlow,那就無法使用最新版了。

差異比較

PyTorch 認為兩個主要對手,『TensorFlow 1.x版把簡單的事情複雜化』,『Keras把複雜的事情太過簡化』,因而促使TensorFlow 2.x版依據Keras規格重新開發並納入TensorFlow中,現在Keras已變成TensorFlow最重要的模組。

而PyTorch特色如下:

1. Python First:PyTorch開發團隊認為Python及相關套件功能已經相當強大,不須另外發明輪子(Reinvent the wheel),直接與Python生態環境緊密結合。

2. 除錯容易:TensorFlow/Keras 提供 fit 一行指令即可進行模型訓練,雖然簡單,但不易偵錯(Debug),PyTorch須自行撰寫優化求解的程序,雖然繁瑣,但在過程中可插入任意的程式碼偵錯或查看預測結果、損失函數變化,不必等到模型訓練完成。

3. GPU 記憶體管理較佳,筆者使用GTX1050Ti,記憶體只有4GB 時,同時執行2個以TensorFlow 開發的Notebook 檔案時,常會發生記憶體不足的狀況,但使用PyTorch,即使3、4 個Notebook 檔案也沒有問題。

4. 程式可自行決定變數及模型要在 CPU 或 GPU 運算:雖然比較麻煩,但可優化記憶體的使用,TensorFlow則是自行偵測GPU,如果有。則預設會使用GPU運算,反之,會使用CPU。

另外,文件說明還是以TensorFlow/Keras較為詳盡,且較有系統性,PyTorch方面,筆者常須依靠谷大哥搜尋,這也是筆者撰寫PyTorch入門書籍的原因。

一致的學習路徑

雖然存在以上差異,PyTorch與TensorFlow基本設計概念是相通的,採用相同的approach,可以一併學會兩個套件。

梯度下降法是神經網路主要求解的方法,計算過程會使用張量 (Tensor) 運算,另外,在反向傳導的過程中,則要進行偏微分,計算梯度,如下圖:

raw-image

基於上述求解過程的需求,大多數的深度學習套件至少會具備下列功能:

1. 張量運算:包括各種向量、矩陣運算。

2. 自動微分 (Auto Differentiation):透過偏微分計算梯度。

3. 提供各種神經層 (Layers) 及神經網路 (Neural Network) 模型構建。

因此,學習的路徑可以從簡單的張量運算開始,再逐漸熟悉高階的神經層函數,以奠定扎實的基礎。

raw-image

在上述學習路徑中,我們會發現TensorFlow/PyTorch基本設計概念是一致的:

1. TensorFlow/PyTorch張量 (Tensor) 均與NumPy陣列相容,不論是資料結構或是運算,包括 Broadcasting 機制。

2. 自動微分、梯度下降也是如此,只是語法不同而已。

3. 都支援順序型 (Sequential)、Functional API模型。

4. 均建議使用 Dataset/Data Loader 作為模型的資料來源。

►更詳盡的範例程式說明可參閱『同時搞定TensorFlow、PyTorch』。

raw-image


本文節錄自深智數位出版之《開發者傳授 PyTorch 秘笈》。


留言
avatar-img
深智數位的沙龍
10會員
25內容數
深智數位的沙龍的其他內容
2023/08/02
在機器學習中,我們的目標是找到一種能夠最好地描述數據的模型。例如,在迴歸問題中,我們希望找到一種函數,該函數能以一種對我們的目標變數(例如:銷售量、股票價格等) 的最佳估計的方式,描述輸入特徵(例如:廣告支出、市場狀況等)。
Thumbnail
2023/08/02
在機器學習中,我們的目標是找到一種能夠最好地描述數據的模型。例如,在迴歸問題中,我們希望找到一種函數,該函數能以一種對我們的目標變數(例如:銷售量、股票價格等) 的最佳估計的方式,描述輸入特徵(例如:廣告支出、市場狀況等)。
Thumbnail
2023/07/21
  在程式設計中,變數(Variable)是一個代表內存位置的符號,用於存儲和操作數據。它是一個內存單元,可以存儲各種類型的數據,例如整數、浮點數、字符串等。變數的值可以在程式執行時改變,並在需要時被讀取。 變數是暫時存放資料用的,可以將變數想像成是一個箱子,箱子裡面可以是空的,
Thumbnail
2023/07/21
  在程式設計中,變數(Variable)是一個代表內存位置的符號,用於存儲和操作數據。它是一個內存單元,可以存儲各種類型的數據,例如整數、浮點數、字符串等。變數的值可以在程式執行時改變,並在需要時被讀取。 變數是暫時存放資料用的,可以將變數想像成是一個箱子,箱子裡面可以是空的,
Thumbnail
2023/05/17
新手在使用ChatGPT 時,對於ChatGPT的回答普遍印象是廢話連篇,而這通常是因為沒有給出足夠清晰的指示所導致,以下將介紹3個讓你跟ChatGPT溝通更有效的提示技巧,幫助讀者快速掌握提升回答品質的秘訣!
Thumbnail
2023/05/17
新手在使用ChatGPT 時,對於ChatGPT的回答普遍印象是廢話連篇,而這通常是因為沒有給出足夠清晰的指示所導致,以下將介紹3個讓你跟ChatGPT溝通更有效的提示技巧,幫助讀者快速掌握提升回答品質的秘訣!
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
本文介紹深度學習框架TensorFlow和PyTorch,以及CPU、GPU、CUDA如何影響運算效能。TensorFlow適合企業應用和大型模型部署,PyTorch更靈活,適合研究和開發。GPU透過CUDA加速運算,大幅提升訓練速度,尤其在大規模數據和深度神經網路訓練時。
Thumbnail
本文介紹深度學習框架TensorFlow和PyTorch,以及CPU、GPU、CUDA如何影響運算效能。TensorFlow適合企業應用和大型模型部署,PyTorch更靈活,適合研究和開發。GPU透過CUDA加速運算,大幅提升訓練速度,尤其在大規模數據和深度神經網路訓練時。
Thumbnail
本文探討如何選擇適合的深度學習框架,比較TensorFlow、PyTorch和PaddlePaddle等主流框架的特色,並分析選擇框架時需考慮的因素,例如研究與應用的平衡、社群支持、多平臺與工具鏈整合,以及未來框架的挑戰與機遇。
Thumbnail
本文探討如何選擇適合的深度學習框架,比較TensorFlow、PyTorch和PaddlePaddle等主流框架的特色,並分析選擇框架時需考慮的因素,例如研究與應用的平衡、社群支持、多平臺與工具鏈整合,以及未來框架的挑戰與機遇。
Thumbnail
人工智慧(AI)是地球數字時代的重要一環,它塑造著我們的未來。如果您對AI充滿好奇,但不知道從何開始,這篇入門指南將為您提供一個堅實的基礎,幫助您踏上學習AI的旅程。 什麼是機器學習和深度學習? 機器學習是人工智能的一個子領域,它使機器能夠自動學習並提高其性能,而無需顯式編程。這意味著機器可以通
Thumbnail
人工智慧(AI)是地球數字時代的重要一環,它塑造著我們的未來。如果您對AI充滿好奇,但不知道從何開始,這篇入門指南將為您提供一個堅實的基礎,幫助您踏上學習AI的旅程。 什麼是機器學習和深度學習? 機器學習是人工智能的一個子領域,它使機器能夠自動學習並提高其性能,而無需顯式編程。這意味著機器可以通
Thumbnail
我們這個系列就是希望以非常科普的角度來解釋人工智慧。本篇要釐清人工智慧(AI: Artificial Intelligence),機器學習 Machine Learning, 深度學習Deep Learning,另外還有類神經網路,到底互相是什麼關係呢?
Thumbnail
我們這個系列就是希望以非常科普的角度來解釋人工智慧。本篇要釐清人工智慧(AI: Artificial Intelligence),機器學習 Machine Learning, 深度學習Deep Learning,另外還有類神經網路,到底互相是什麼關係呢?
Thumbnail
馬克•庫班(NBA獨行俠隊老闆,億萬富翁)說過:「人工智慧、深度學習和機器學習,不論你現在是否能夠理解這些概念,你都應該學習。否則三年內,你就會像被滅絕的恐龍一樣被社會淘汰。現在不開始,以後就來不及了。」
Thumbnail
馬克•庫班(NBA獨行俠隊老闆,億萬富翁)說過:「人工智慧、深度學習和機器學習,不論你現在是否能夠理解這些概念,你都應該學習。否則三年內,你就會像被滅絕的恐龍一樣被社會淘汰。現在不開始,以後就來不及了。」
Thumbnail
要徹底了解深度學習,必須從數學/統計奠定基礎,從張量運算、偏微分、梯度下降優化求解,最後依據機率統計衡量模的效能指標,包括準確率 (Accuracy)、精確率 (Precision)、召回率 (Recall),乃至於混淆矩陣 (Confusion Matrix)。
Thumbnail
要徹底了解深度學習,必須從數學/統計奠定基礎,從張量運算、偏微分、梯度下降優化求解,最後依據機率統計衡量模的效能指標,包括準確率 (Accuracy)、精確率 (Precision)、召回率 (Recall),乃至於混淆矩陣 (Confusion Matrix)。
Thumbnail
TensorFlow、PyTorch 是目前佔有率最高的深度學習框架,初學者常會問『應該選擇PyTorch或 TensorFlow套件』,依個人看法,PyTorch、TensorFlow好比倚天劍與屠龍刀,各有擅場,兩個套件的發展重點有所不同,例如在偵錯方面,PyTorch比較容易,但Tensor
Thumbnail
TensorFlow、PyTorch 是目前佔有率最高的深度學習框架,初學者常會問『應該選擇PyTorch或 TensorFlow套件』,依個人看法,PyTorch、TensorFlow好比倚天劍與屠龍刀,各有擅場,兩個套件的發展重點有所不同,例如在偵錯方面,PyTorch比較容易,但Tensor
Thumbnail
這篇文章從類神經網路的起源,也就是單神經元的感知器。簡單的感知器迭代演算法使單神經元可以學習,但卻無法學習超過非線性,如 XOR 的資料分布。另外,本文還介紹了 Logistic regression,藉由透過非線性轉換來使線性輸出近似於機率分佈。最後則以一場大師賭局結束(SVM vs NN)。
Thumbnail
這篇文章從類神經網路的起源,也就是單神經元的感知器。簡單的感知器迭代演算法使單神經元可以學習,但卻無法學習超過非線性,如 XOR 的資料分布。另外,本文還介紹了 Logistic regression,藉由透過非線性轉換來使線性輸出近似於機率分佈。最後則以一場大師賭局結束(SVM vs NN)。
Thumbnail
在此篇文章終將會簡述機械學習的發展,簡介深度學習以 Sequence to Sequence 為架構,並在多場機械翻譯的學術年會,獲得成績斐然的結果。在本文中,會粗略介紹 Sequence to Sequence 架構並以 google 在 2017 對Seq2Seq 所進行的大規模參數。
Thumbnail
在此篇文章終將會簡述機械學習的發展,簡介深度學習以 Sequence to Sequence 為架構,並在多場機械翻譯的學術年會,獲得成績斐然的結果。在本文中,會粗略介紹 Sequence to Sequence 架構並以 google 在 2017 對Seq2Seq 所進行的大規模參數。
Thumbnail
目前深度學習是人工智慧領域中最熱門的研究領域,許多美國科技巨頭紛紛推出他們的深度學習架構,以期能夠在人工智慧的商業應用上,能夠給使用者最無縫的服務。在本篇文章中,會以開發者和 DevOps 的角度,來談論該如何選擇最適合公司以及個人需求的深度學習架構。
Thumbnail
目前深度學習是人工智慧領域中最熱門的研究領域,許多美國科技巨頭紛紛推出他們的深度學習架構,以期能夠在人工智慧的商業應用上,能夠給使用者最無縫的服務。在本篇文章中,會以開發者和 DevOps 的角度,來談論該如何選擇最適合公司以及個人需求的深度學習架構。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News