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