跳轉到主要內容
工程的博客

7原因學習PyTorch磚

2021年4月14日 工程的博客

分享這篇文章

加快了學習新概念的過程,什麼語言或係統?當學習一個新任務的時候,你尋找類似物從你已經擁有的技能?

在所有學習努力,三個有利的特點脫穎而出:熟悉,清晰性和簡單性。熟悉緩解過渡,因為識別新舊方法之間的聯係。清晰最小化認知負擔。和簡單的采用降低了摩擦未知,因此,增加了實現學習的一個新概念,語言或係統。

除了深受研究人員,采用機器學習實踐者在生產中,有一個充滿活力的社區,PyTorch有一種熟悉的感覺,容易學習,您可以使用它為您的機器學習用例。

記住這些特征,我們檢查在這個博客幾個原因很容易學習PyTorch,和如何磚Lakehouse平台Beplay体育安卓版本促進學習的過程。

1一個。PyTorch是神諭的

盧西亞諾Ramalho在流利的Python定義了神諭的作為一個慣用的方式使用Python代碼,使得使用簡潔的語言特性和可讀的。Python對象結構遵循一個特定的協議,而且他們的行為遵循一個一致的模式類,迭代器,發電機,序列,上下文管理,模塊,協程,decorator等等。甚至沒有熟悉Python數據模型模塊和語言結構,你認識類似的結構PyTorch api,如torch.tensor,torch.nn.Module,torch.utils.data。數據集s, torch.utils.data.DataLoaders等等。另一個方麵是簡潔的代碼可以寫在PyTorch PyData包如熊貓、scikit-learn或SciPy。

PyTorch集成了PyData生態係統,所以你的熟悉NumPy使學習火炬張量令人難以置信的簡單。NumPy數組和張量也有類似的數據結構和操作。就像DataFrames中央數據結構嗎Apache火花™操作,因此張量作為輸入PyTorch模型,培訓操作、計算和得分。PyTorch張量的精神形象(下圖所示)映射到一個n維NumPy數組。

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計算。

Pytorch示例代碼從磚Lakehouse平台展示兩個隨機生成的張量的矩陣乘法Beplay体育安卓版本

4所示。易於使用的TensorBoard

已經宣布在一個博客磚的一部分運行時(DBR),這個神奇的命令可以顯示你的訓練指標TensorBoard在相同的筆記本。你不再需要離開你的筆記本和發射TensorBoard從另一個選項卡。這個就地TensorBoard可視化是一個重大的改進對簡單性和開發經驗。和PyTorch開發人員可以很快看到他們在TensorBoard指標。

讓我們試著運行一個示例PyTorch FashionMNIST例子與TensorBoard日誌記錄。
首先,定義一個SummaryWriter,其次是FashionMNIST數據集DataLoader在我們PyTorchtorchvision.models.resnet50模型。

PyTorch FashionMNIST TensorBoard日誌的例子。

使用磚筆記本的神奇的命令,您可以啟動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閃電FashionMNIST實例培訓隻是一個循環步驟,演示了如何使用MLflow autolog MLflow實體,細讀MLflow UI和登記,或部署模型。

創建PyTorch模型創建一個Python類,使用FashionMNIST DataLoaderPyTorch閃電教練和autolog MLflow實體在其trainer.fit ()方法。

您可以使用FashionMNIST DataLoader, PyTorch閃電教練,autolog所有MLflow實體在其trainer.fit()方法。

6。轉換MLflow PyTorch-logged TorchScript模型

TorchScript是一種從PyTorch代碼創建序列化和optimizable模型。我們可以把PyTorch MLflow-logged模型TorchScript格式,保存和加載(或部署到)高性能和獨立的過程。或集群部署和服務於磚作為一個端點。

這個過程包括以下步驟:

  1. 創建一個MLflow PyTorch模型
  2. 使用JIT編譯模型並把它轉換成TorchScript模型
  3. 日誌或保存TorchScript模型
  4. 負載或部署TorchScript模型

PyTorch閃電FashionMNIST實例培訓隻是一個循環步驟,演示了如何使用MLflow autolog MLflow實體,細讀MLflow UI和登記,或部署模型。

我們沒有包括在這裏的所有代碼簡潔,但您可以檢查示例代碼IrisClassificationMNIST——的GitHub MLflow例子目錄中。

7所示。隨時可以運行PyTorch分布式訓練教程

最後,您可以使用磚Lakehouse高集群分發PyTorch模型訓練。我們提供的一組教程演示)如何設置一個節點訓練和b)如何遷移到Horovod庫分發您的培訓。通過這些教程裝備你為PyTorch與如何應用分布式訓練模型。隨時可以運行和easy-to-import-notebooks集群,這些筆記本是一個優秀的學習分布式訓練手段。按照推薦的設置和坐下來觀看模型火車…

與磚Lakehouse平台,按照推薦的設置和坐下來觀Beplay体育安卓版本看火車模型…
©r /模因,meme看火車模型

每個筆記本電腦提供了一個循序漸進的指南,建立一個高集群,如何適應您的代碼使用cpu或gpu和訓練你的模型在分布式時尚Horovod庫。

此外,PyTorch社區提供了出色的學習與PyTorch例子入門教程。你也可以簡單的複製粘貼代碼到一個磚筆記本或導入Jupyter筆記本和高集群上運行它在Python IDE。當你通過它們工作時,得到的感覺神諭的PyTorch性質:必要的和直觀的

最後,將會有許多PyTorch生產毫升用例在即將到來的會議數據+人工智能峰會。現在注冊是開放的。保存您的位置。

接下來是什麼:如何開始

你可以試試的附帶的筆記本在你高集群並導入PyTorch教程中提到這個筆記本。如果你沒有一個磚帳戶,免費試用一個今天,在磚上PyTorch Lakehouse平台。Beplay体育安卓版本對單節點訓練,有限的功能,隻有cpu使用量、使用磚社區版

免費試著磚
看到所有工程的博客的帖子
Baidu
map