7原因學習PyTorch磚
加快了學習新概念的過程,什麼語言或係統?當學習一個新任務的時候,你尋找類似物從你已經擁有的技能?
在所有學習努力,三個有利的特點脫穎而出:熟悉,清晰性和簡單性。熟悉緩解過渡,因為識別新舊方法之間的聯係。清晰最小化認知負擔。和簡單的采用降低了摩擦未知,因此,增加了實現學習的一個新概念,語言或係統。
除了深受研究人員,采用機器學習實踐者在生產中,有一個充滿活力的社區,PyTorch有一種熟悉的感覺,容易學習,您可以使用它為您的機器學習用例。
記住這些特征,我們檢查在這個博客幾個原因很容易學習PyTorch,和如何磚Lakehouse平台Beplay体育安卓版本促進學習的過程。
1一個。PyTorch是神諭的
盧西亞諾Ramalho在流利的Python定義了神諭的作為一個慣用的方式使用Python代碼,使得使用簡潔的語言特性和可讀的。Python對象結構遵循一個特定的協議,而且他們的行為遵循一個一致的模式類,迭代器,發電機,序列,上下文管理,模塊,協程,decorator等等。甚至沒有熟悉Python數據模型模塊和語言結構,你認識類似的結構PyTorch api,如torch.tensor,
等等。另一個方麵是簡潔的代碼可以寫在PyTorch PyData包如熊貓、scikit-learn或SciPy。torch.nn.Module
,torch.utils.data。數據集s, torch.utils.data.DataLoaders
PyTorch集成了PyData生態係統,所以你的熟悉NumPy使學習火炬張量令人難以置信的簡單。NumPy數組和張量也有類似的數據結構和操作。就像DataFrames中央數據結構嗎Apache火花™操作,因此張量作為輸入PyTorch模型,培訓操作、計算和得分。PyTorch張量的精神形象(下圖所示)映射到一個n維NumPy數組。
例如,可以無縫地創建NumPy數組,並將其轉換到火炬張量。熟悉NumPy操作轉移到張量操作,如以下代碼所示。
都熟悉,必要的和直觀的操作,對Python對象所期待的api,如列表、元組、字典、集等等。所有這些熟悉NumPy張量對火炬傳遞的數組操作有幫助。考慮這些例子:
的最新版本PyTorch 1.8.0進一步建立在這個模擬操作PyTorch張量和NumPy之間快速傅裏葉變換係列。
1 b。易於擴展的PyTorch神經網絡模塊
PyTorch庫包含神經網絡模塊建立一個分層的網絡架構。在PyTorch的說法,這些模塊占您的網絡的每一層。源自其基類模塊torch.nn.Module
,您可以輕鬆地創建一個簡單的或複雜的分層神經網絡。定義一個PyTorch定製網絡模塊類及其方法,您遵循類似的模式來構建一個定製的Python對象類源自其基類對象。讓我們定義一個簡單的兩層線性網絡的例子。
請注意,自定義TwoLayeredNet
下麵是神諭的流程和結構。派生類的torch.nn.Module
類的初始化參數,定義接口方法,可調用的。基類torch.nn.Module
實現了Python魔法__call__ ()
對象的方法。盡管兩層模型簡單,它演示了這種熟悉擴展一個類從Python的基本對象。
此外,你會得到一個直觀的感覺,你是寫作或閱讀Python應用程序代碼在使用PyTorch api——語法、結構、形式和行為都很熟悉。不熟悉的部分是PyTorch模塊和api,這是沒有什麼不同當學習一個新PyData包api和將它們合並到您的Python應用程序代碼。
更多的神諭的代碼,讀附帶的筆記本的命令式PyTorch代碼編寫培訓循環和損失函數,熟悉Python迭代結構,並使用cuda gpu的圖書館。
現在我們定義一個簡單的培訓與一些迭代循環,使用Python熟悉的語言結構。
下麵是一個可識別的模式和流之間的Python的定製類和一個簡單的PyTorch神經網絡。另外,讀起來像Python代碼的代碼。在PyTorch是另一個可辨認的神諭的模式數據集
和DataLoaders
使用Python協議構建迭代器。
1 c。易於定製PyTorch Dataloaders數據集
的核心PyTorch數據裝載實用程序torch.utils.data.DataLoader
類。這是不可或缺的一部分PyTorch迭代訓練過程中,遍曆批次輸入在一個時代的培訓。DataLoaders
實現了一個Python序列和iterable協議,其中包括實施__len__
和__getitem__
魔術一個對象上的方法。再一次,非常神諭的行為;的實現中,我們使用列表理解,使用NumPy數組轉換為張量和使用隨機訪問獲取n數據項——所有符合在Python中熟悉的訪問模式和做事的行為。
讓我們看一個簡單的自定義數據集
在訓練中使用的溫度模型。其他複雜的數據集可能是圖像、廣泛的張量的特征數據集等。
一個PyTorchDataloader
類需要一個定製的實例FahrenheitTemperatures
類對象作為參數。這個實用程序類標準PyTorch訓練循環。它提供了一個能夠遍曆批次的數據像迭代器:再一次,一個神諭的和簡單的做事方式!
因為我們實現了我們的自定義數據集
,讓我們用PyTorch訓練循環。
盡管前麵提到的神諭的原因是沒有直接關係磚Lakehouse平台Beplay体育安卓版本他們占熟悉的想法,清晰,簡潔,神諭的編寫PyTorch代碼的方法。接下來,我們檢查哪些方麵在磚Lakehouse平台的運行時機器學習促進學習PyTorch。Beplay体育安卓版本
2。不需要安裝Python包
作為磚Lakehouse平台的一部分,機器學習(ML)預先安裝的運行時的Beplay体育安卓版本最新版本的Python, PyTorch, PyData生態係統包和附加標準毫升庫,保存你安裝或管理任何包。開箱即用的和ready-to-use-runtime環境還吐露你需要控製或安裝包。如果你想要安裝額外的Python包,隻需使用% pip安裝
。這種支持的能力包管理在集群中很受歡迎,磚客戶和廣泛使用的作為開發模型生命周期的一部分。beplay体育app下载地址
檢查所有預裝包的列表,使用皮普列表
。
3所示。易於使用的cpu或gpu
深度學習涉及numeric-intensive計算神經網絡,包括點積和矩陣乘法在大型和更高的張量。為計算PyTorch需要gpu的應用程序,創建一個集群gpu的高鈣和交付數據使用gpu。因此,所有的培訓都可以在gpu,上述的例子TwoLayeredNet
演示了使用cuda
。
注意,這個例子展示了簡單的代碼,顯示兩個隨機生成的張量的矩陣乘法,真正PyTorch應用程序將有更多強烈的計算在向前和向後傳遞auto-grad計算。
4所示。易於使用的TensorBoard
已經宣布在一個博客磚的一部分運行時(DBR),這個神奇的命令可以顯示你的訓練指標TensorBoard在相同的筆記本。你不再需要離開你的筆記本和發射TensorBoard從另一個選項卡。這個就地TensorBoard可視化是一個重大的改進對簡單性和開發經驗。和PyTorch開發人員可以很快看到他們在TensorBoard指標。
讓我們試著運行一個示例PyTorch FashionMNIST例子與TensorBoard日誌記錄。
首先,定義一個SummaryWriter,其次是FashionMNIST數據集
在DataLoader
在我們PyTorchtorchvision.models.resnet50
模型。
使用磚筆記本的神奇的命令,您可以啟動TensorBoard細胞內並檢查培訓指標和模型輸出。
% load_ext tensorboard
% tensorboard——logdir =。/運行
5。PyTorch結合MLflow
在我們的堅定努力使磚更簡單,我們增強MLflow流利的跟蹤api對autolog MLflow entities-metrics、標簽、參數和構件支持毫升庫,包括PyTorch閃電。通過MLflow UI,工作區中不可分割的一部分,您可以訪問所有MLflow實驗通過實驗
圖標在右上角。所有實驗都運行在訓練會自動記錄到MLflow跟蹤服務器。不需要顯式地使用跟蹤api日誌MLflow實體,盡管它不能阻止你跟蹤和日誌等任何其他實體圖片、字典、或文本工件。
這是一個最小的例子PyTorch閃電FashionMNIST實例隻有訓練循環步驟(沒有驗證,沒有測試)。它說明了如何使用MLflow autolog MLflow實體,細讀MLflow UI從在這個筆記本,檢查其運行模型和登記服務和部署它。
創建PyTorch模型創建一個Python類,使用FashionMNIST DataLoader
PyTorch閃電教練和autolog MLflow實體在其trainer.fit ()
方法。
6。轉換MLflow PyTorch-logged TorchScript模型
TorchScript是一種從PyTorch代碼創建序列化和optimizable模型。我們可以把PyTorch MLflow-logged模型TorchScript格式,保存和加載(或部署到)高性能和獨立的過程。或集群部署和服務於磚作為一個端點。
這個過程包括以下步驟:
- 創建一個MLflow PyTorch模型
- 使用JIT編譯模型並把它轉換成TorchScript模型
- 日誌或保存TorchScript模型
- 負載或部署TorchScript模型
我們沒有包括在這裏的所有代碼簡潔,但您可以檢查示例代碼IrisClassification和MNIST——的GitHub MLflow例子目錄中。
7所示。隨時可以運行PyTorch分布式訓練教程
最後,您可以使用磚Lakehouse高集群分發PyTorch模型訓練。我們提供的一組教程演示)如何設置一個節點訓練和b)如何遷移到Horovod庫分發您的培訓。通過這些教程裝備你為PyTorch與如何應用分布式訓練模型。隨時可以運行和easy-to-import-notebooks集群,這些筆記本是一個優秀的學習分布式訓練手段。按照推薦的設置和坐下來觀看模型火車…
每個筆記本電腦提供了一個循序漸進的指南,建立一個高集群,如何適應您的代碼使用cpu或gpu和訓練你的模型在分布式時尚Horovod庫。
此外,PyTorch社區提供了出色的學習與PyTorch例子入門教程。你也可以簡單的複製粘貼代碼到一個磚筆記本或導入Jupyter筆記本和高集群上運行它在Python IDE。當你通過它們工作時,得到的感覺神諭的PyTorch性質:必要的和直觀的。
最後,將會有許多PyTorch生產毫升用例在即將到來的會議數據+人工智能峰會。現在注冊是開放的。保存您的位置。
接下來是什麼:如何開始
你可以試試的附帶的筆記本在你高集群並導入PyTorch教程中提到這個筆記本。如果你沒有一個磚帳戶,免費試用一個今天,在磚上PyTorch Lakehouse平台。Beplay体育安卓版本對單節點訓練,有限的功能,隻有cpu使用量、使用磚社區版。