最新的PyTorch Lightning發行版本包括了具有更好的數據解耦,更短的日志記錄語法和大量bug修復的最終API。
我們很高興今天發布了PyTorch Lightning 0.9.0,其中包含了許多超贊的新特性,并且我們這次修復的bug比之前任何的發行版本都多,但最重要的是介紹了我們主要的最終API更改!
Lightning正在被世界各地的頂級研究人員和人工智能實驗室所使用,我們正在努力確保為所有最新最佳的實踐提供流暢的體驗和支持。
在這個版本中,我們引入了兩個新的主要的(也是最后一個)API更改:
Lightning 的意義就是讓你的代碼更具可讀性和結構化。
我們將模型架構從工程中分離出來,并且繼續對數據進行同樣的處理。為了在項目間共享和重用數據分割和轉換,我們創建了LightningDataModule。
LightningDataModule 是一個可共享、可重用的類,它封裝了訓練所需的所有步驟:
下載/標記/處理。
清理并保存到磁盤以便重用。
在內存或即時加載到Dataset里。
應用變換(旋轉,標記等)。
裝載到Dataloader。
LightningDataModule 可以在任何地方共享和使用:
在這段視頻中,PyTorch Lightning的深度學習研究工程師Nate Raw將為你一步步介紹:
介紹視頻
你可以在這里查看有關新的數據模塊(DataModule)的文檔。
每步的結果
我們向Lightning中添加了兩類新的結果對象:TrainResult和EvalResult。它們是用來保存訓練/評估/測試每一步輸出的精致的字典對象。它們是用來控制在哪里和什么時候記錄日志,以及如何在加速器之間進行同步:
在 training_step 中使用 TrainResult 自動記錄結果:
我們添加到 TrainResult 的 train_loss 會自動地在 tensorboard 上產生日志(你也可以使用我們支持的其他日志記錄器)
TrainResult 默認在訓練的每一步上記錄。
使用EvalResult 在validation_step 或test_step 中自動記錄
EvalResult 默認在每個迭代之后記錄。
跨設備同步
當在多個GPU/CPU/TPU內核上進行訓練時,你可以計算記錄的日志指標的全局平均值,如下所示:
result.log(‘train_loss', loss, sync_dist=True)
更多日志選項,請查看我們的文檔。
0.9版本的其他亮點包括:
支持PyTorch 1.6
支持在多GPU上保存測試時的預測結果
支持將模型導出為ONNX格式
支持更多sklearn的指標,如SSIM, BLEU
增加了DDP下的SyncBN
支持通過gfile訪問遠程目錄
在這里閱讀完整的發布說明。
我們還升級了我們的文檔,在幾秒鐘視頻內就可以演示 Lightning 的核心功能!看看它們吧,讓我們知道你接下來還想看到什么!
我們要感謝所有無私奉獻的貢獻者,感謝他們的辛勤工作,感謝社會各界的幫助。如果沒有你們,我們肯定走不到這一步。試一試,在我們的#slack上分享你的項目,并繼續關注我們的下一個1.0版本!
雷鋒字幕組是一個由 AI 愛好者組成的翻譯團隊,匯聚五百多位志愿者的力量,分享最新的海外AI資訊,交流關于人工智能技術領域的行業變革與技術創新的見解。
團隊成員有大數據專家、算法工程師、圖像處理工程師、產品經理、產品運營、IT咨詢人、在校師生;志愿者們來自IBM、AVL、Adobe、阿里、百度等知名企業,北大、清華、港大、中科院、南卡羅萊納大學、早稻田大學等海內外高校研究所。