伊人99re_av日韩成人_91高潮精品免费porn_色狠狠色婷婷丁香五月_免费看的av_91亚色网站

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁 > IT資訊 > 精選文章 > 使用NeptuneAI跟蹤PyTorch閃電實驗

使用NeptuneAI跟蹤PyTorch閃電實驗

2020-08-04 19:07:00 | 來源:中培企業(yè)IT培訓網(wǎng)

想使用PyTorch Lightning來構(gòu)建您的深度學習代碼,并且不介意學習它的日志記錄功能嗎?不知道閃電具有強大的海王星集成嗎?為什么選擇PyTorchLightning?如果您從未聽說過,PyTorch Lightning是PyTorch之上非常輕便的包裝器,它更像是編碼標準,而不是框架。該格式可讓您擺脫大量樣板代碼,同時使其易于遵循。結(jié)果是一個框架,為研究人員,學生和生產(chǎn)團隊提供了最大的靈活性,使他們可以靈活地嘗試瘋狂的想法,而無需學習另一個框架,同時自動刪除所有工程細節(jié)。

您可以立即使用的一些很棒的功能是:

· 在CPU,GPU或TPU上進行訓練而無需更改代碼,

· 簡單的多GPU和多節(jié)點訓練

· 普通的16位精度支持

· 內(nèi)置性能分析器(Trainer(profile=True))

· 以及其他眾多功能。

但是,通過這種強大的功能輕松進行實驗,以及靈活地調(diào)整所需的任何東西,都會帶來問題。如何跟蹤所有變化,例如:

· 損失和指標,

· 超參數(shù),

· 模型二進制文件,

· 驗證預(yù)測,

  還有其他可以幫助您組織實驗過程的東西?

幸運的是,PyTorch閃電為您提供了一個選項,可輕松將記錄儀連接到 pl.Trainer可以跟蹤前面提到的所有內(nèi)容(以及許多其他內(nèi)容)的受支持記錄器之一是 NeptuneLogger將您的實驗保存在……您猜中了海王星。海王星不僅跟蹤您的實驗工件,而且:

· 讓我們監(jiān)視所有實時情況

· 提供了一個不錯的用戶界面,您可以在其中過濾,分組和比較各種實驗運行

· 訪問您從Python腳本或Jupyter Notebook以編程方式記錄的實驗數(shù)據(jù)。最好的部分是,這種集成確實使用起來很簡單。

  注意:

您也可以查看此colab筆記本,并嘗試我們將要討論的示例。

  基本整合

在最簡單的情況下,您只需創(chuàng)建 NeptuneLogger:

from pytorch_lightning.logging.neptune import NeptuneLogger

neptune_logger = NeptuneLogger(

api_key="ANONYMOUS",

project_name="shared/pytorch-lightning-integration")

并將其傳遞給的logger參數(shù) Trainer并適合您的模型。

from pytorch_lightning import Trainer

trainer = Trainer(logger=neptune_logger)

trainer.fit(model)

這樣,您將獲得:

· 記錄度量和損失并創(chuàng)建圖表,

· 保存超參數(shù)(如果通過閃電參數(shù)定義)

· ,記錄硬件利用率

· Git信息和執(zhí)行腳本已記錄

  高級選項

海王星為您提供了許多自定義選項,您可以簡單地記錄更多特定于實驗的內(nèi)容,例如圖像預(yù)測,模型權(quán)重,性能圖表等。

所有這些功能都可供Lightning用戶使用,在接下來的部分中,我將向您展示如何充分利用Neptune。

  在創(chuàng)建NeptuneLogger時記錄其他信息

創(chuàng)建記錄器時,可以記錄其他有用的信息:

· 代碼:快照腳本,jupyter筆記本,配置文件等。

· 超參數(shù):對數(shù)學習率,歷元數(shù)和其他事物(如果您使用的是閃電) hparams來自閃電的對象將被自動記錄。

· 屬性:日志數(shù)據(jù)位置,數(shù)據(jù)版本或其他內(nèi)容。

· 標簽:添加“ resnet50”或“ no-augmentation”之類的標簽來組織跑步。

· 名稱:每個實驗都應(yīng)使用一個有意義的名稱,因此我們不要每次都使用“默認”。

只需將此信息傳遞給記錄器即可:

neptune_logger = NeptuneLogger(

api_key="ANONYMOUS",

project_name="shared/pytorch-lightning-integration",

experiment_name="default", # Optional,

params={"max_epochs": 10,

"batch_size": 32}, # Optional,

tags=["pytorch-lightning", "mlp"] # Optional,

upload_source_files=["**/*.py", "*.yaml"] # Optional,

)

并像以前一樣繼續(xù)進行操作,以獲得像這樣的組織好的儀表板。

  訓練期間記錄多余的東西

培訓期間可以記錄很多有趣的信息。

您可能對監(jiān)視以下內(nèi)容感興趣:

每個時期之后的模型預(yù)測(考慮預(yù)測蒙版或覆蓋的邊界框)

  模型檢查點或其他對象

真的很簡單。只是去你的LightningModule 和海王星實驗的調(diào)用方法 self.logger.experiment。

例如,我們可以記錄每個時期之后的損失直方圖:

class CoolSystem(pl.LightningModule):

def validation_end(self, outputs):

# OPTIONAL

avg_loss = torch.stack([x['val_loss'] for x in outputs]).mean()

tensorboard_logs = {'val_loss': avg_loss}

# log debugging images like histogram of losses

fig = plt.figure()

losses = np.stack([x['val_loss'].numpy() for x in outputs])

plt.hist(losses)

self.logger.experiment.log_image('loss_histograms', fig)

plt.close(fig)

return {'avg_val_loss': avg_loss, 'log': tensorboard_logs}

您在訓練期間可能想要記錄的其他內(nèi)容是:

· self.logger.experiment.log_metric#記錄自定義指標

· self.logger.experiment.log_text#記錄文本值

· self.;ogger.experiment.log_artifact# 日志文件

· self.logger.experiment.log_image#記錄圖像,圖表

· self.logger.experiment.set_property#添加鍵:值對

· self.logger.experiment.append_tag#為組織添加標簽

很酷吧?但這不是您能做的!

  培訓結(jié)束后記錄日志

.fit循環(huán)結(jié)束后,不必完成對實驗的跟蹤。

您可能要跟蹤 trainer.test(model) 或計算一些其他驗證指標并將其記錄下來。

為此,您只需要告訴 NeptuneLogger 適合后不關(guān)閉:

neptune_logger = NeptuneLogger(

api_key="ANONYMOUS",

project_name="shared/pytorch-lightning-integration",

close_after_fit=False,

...

)

…并且您可以繼續(xù)記錄

  測試指標:

trainer.test(model)

  其他(外部)指標:

from sklearn.metrics import accuracy_score

...

accuracy = accuracy_score(y_true, y_pred)

neptune_logger.experiment.log_metric('test_accuracy', accuracy)

  測試集上的性能圖表:

from scikitplot.metrics import plot_confusion_matrix

import matplotlib.pyplot as plt

...

fig, ax = plt.subplots(figsize=(16, 12))

plot_confusion_matrix(y_true, y_pred, ax=ax)

neptune_logger.experiment.log_image('confusion_matrix', fig)

  整個模型檢查點目錄:

neptune_logger.experiment.log_artifact('my/checkpoints')

直接將實驗信息提取到筆記本中

您可以在實驗完成后獲取實驗,分析結(jié)果并根據(jù)需要更新指標,工件或其他內(nèi)容。

例如,讓我們將實驗儀表板獲取到pandas DataFrame:

import neptune

project = neptune.init('shared/pytorch-lightning-integration')

project.get_leaderboard().head()

或通過海王星HiPlot集成使用HiPlot將其可視化:

from neptunecontrib.viz import make_parallel_coordinates_plot

make_parallel_coordinates_plot(

metrics= ['train_loss', 'val_loss', 'test_accuracy'],

params = ['max_epochs', 'batch_size', 'lr'])

或獲取單個實驗并使用訓練后計算出的一些外部指標對其進行更新:

exp = project.get_experiments(id='PYTOR-63')[0]

exp.log_metric('some_external_metric', 0.92)

如您所見,您可以從Pytorch Lightning登錄到Neptune。

如果您想更深入地了解這一點:

· 閱讀集成文檔

· 去看看海王星,看看它可以做的其他事情,

· 在colab上試用Lightning + Neptune

  最終思想

Pytorch Lightning是一個很棒的庫,可以幫助您:

· 整理您的深度學習代碼,使其他人容易理解它,

· 將開發(fā)樣板外包給經(jīng)驗豐富的工程師團隊,

· 無需更改代碼即可訪問許多最新功能,

借助Neptune集成,您可以免費獲得其他一些功能:

· 您可以監(jiān)控并跟蹤您的深度學習實驗,

· 您可以輕松地與他人分享您的研究,

· 您和您的團隊可以訪問實驗元數(shù)據(jù)并更有效地協(xié)作。

以上即是關(guān)于使用NeptuneAI跟蹤PyTorch閃電實驗的全部內(nèi)容,想了解更多關(guān)于NeptuneAI的信息,請繼續(xù)關(guān)注中培偉業(yè)。

標簽: NeptuneAI PyTorch

相關(guān)閱讀

主站蜘蛛池模板: 久久综合五月丁香久久激情 | 亚洲国产无 | 亚洲午夜精品a片一区二区无码l | 91茄子在线观看入口 | 国产精品污污视频 | 国产麻豆va精品视频 | 欧美日韩一级二级 | 91挑色欧美| 亚洲视频高清无码 | 国产日韩欧美亚洲精品中字 | 午夜不卡AV免费 | 中国chinese男男gay网站 | 91传媒在线观看 | 国内毛片毛片 | 超碰在线视97| 美女大BXXXXN内射 | 久久久最新 | 亚洲三区在线播放 | 亚洲精品中文幕一区二区 | 黑人大群体交免费视频 | 色婷婷精品久久二区二区蜜臀av | 欧美黄色片视频 | 国产精品自在拍一区二区不卡 | 日本乱子伦一区二区三区 | 午夜精品成人一区二区视频 | 91久久一区二区偷怕 | 亚洲精品一卡二卡三卡四卡2021 | 成年人啪啪| 最近最新中文免费字幕一 | 国产成人av在线影院无毒 | 国产AV仑乱内谢 | a级免费观看视频 | 国内精品毛片 | 午夜免费福利在线观看 | 日韩久久久久久久久 | 国产精品天干天干在线综合 | 偷窥国产亚洲免费视频 | 国产精品毛片一区二区在线 | 免费一级做a爰片久久毛片潮喷 | 凹凸世界第三季免费 | 日本中文字幕一区二区 |