<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          使用PyTorch的TensorBoard-可視化深度學(xué)習(xí)指標(biāo) | PyTorch系列(二十五)

          共 4076字,需瀏覽 9分鐘

           ·

          2020-07-28 17:06

          點擊上方AI算法與圖像處理”,選擇加"星標(biāo)"或“置頂”

          重磅干貨,第一時間送達

          文 |AI_study


          原標(biāo)題:TensorBoard With PyTorch - Visualize Deep Learning Metrics

          在本系列的這一點上,我們剛剛完成了訓(xùn)練過程中的網(wǎng)絡(luò)運行。現(xiàn)在,我們希望獲得有關(guān)此過程的更多指標(biāo),以更好地了解幕后情況。

          鳥瞰我們在訓(xùn)練過程中所處的位置。

          • 準(zhǔn)備數(shù)據(jù)

          • 建立模型

          • 訓(xùn)練模型

          • 分析模型的結(jié)果

            • 為此使用TensorBoard

          TensorBoard:TensorFlow的可視化工具包

          TensorBoard提供了機器學(xué)習(xí)實驗所需的可視化和工具:

          • 跟蹤和可視化指標(biāo),例如損失和準(zhǔn)確性

          • 可視化模型圖(操作和圖層)

          • 查看權(quán)重,偏差或其他張量隨時間變化的直方圖

          • 將embedding 投影到較低維度的空間

          • 顯示圖像,文本和音頻數(shù)據(jù)

          • 分析TensorFlow程序

          • 以及更多

          從PyTorch 1.1.0版開始,PyTorch添加了一個tensorboard實用程序包,使我們能夠?qū)ensorBoard與PyTorch一起使用。

          print(torch.__version__)1.1.0
          from torch.utils.tensorboard import SummaryWriter


          為PyTorch安裝TensorBoard

          要為PyTorch安裝TensorBoard,請執(zhí)行以下步驟:

          1. 確認您正在運行PyTorch版本1.1.0或更高版本。

          2. 確認您正在運行TensorBoard 1.15或更高版本。

          3. 請注意,PyTorch使用的TensorBoard與為TensorFlow創(chuàng)建的TensorBoard相同。使用以下命令檢查系統(tǒng)上安裝的TensorBoard的版本:

          tensorboard --version

          4. 使用以下命令安裝TensorBoard。

          pip install tensorboard

          1. 一旦安裝了TensorBoard 1.15或更高版本,我們就可以開始了!

          請注意,PyTorch文檔說TensorBoard版本1.14是必需的。


          PyTorch的TensorBoard入門

          TensorBoard是一個字體結(jié)尾的Web界面,實際上從文件中讀取數(shù)據(jù)并顯示它。要使用TensorBoard,我們的任務(wù)是將我們要顯示的數(shù)據(jù)保存到TensorBoard可以讀取的文件中。

          為了使我們更輕松,PyTorch創(chuàng)建了一個名為SummaryWriter的實用程序類。要訪問此類,我們使用以下導(dǎo)入:

          from torch.utils.tensorboard import SummaryWriter

          導(dǎo)入該類后,我們可以創(chuàng)建該類的實例,然后將其用于將數(shù)據(jù)從程序中獲取到文件系統(tǒng)中,然后由TensorBoard進行使用。

          網(wǎng)絡(luò)圖和訓(xùn)練集圖像

          SummaryWriter類帶有許多方法,我們可以調(diào)用這些方法來有選擇地選擇和選擇我們希望TensorBoard可以使用的數(shù)據(jù)。首先,我們將網(wǎng)絡(luò)和一批圖像傳遞給編寫者。

          tb = SummaryWriter()
          network = Network()images, labels = next(iter(train_loader))grid = torchvision.utils.make_grid(images)
          tb.add_image('images', grid)tb.add_graph(network, images)tb.close()

          該代碼為TensorBoard創(chuàng)建一個名為tb的SummaryWriter實例。然后,創(chuàng)建我們的PyTorch網(wǎng)絡(luò)的實例,并從我們的PyTorch數(shù)據(jù)加載器對象中解壓縮一批圖像和標(biāo)簽。

          然后,將圖像和網(wǎng)絡(luò)添加到TensorBoard將使用的文件中。實際上,可以說網(wǎng)絡(luò)圖和圖像的batch都已添加到TensorBoard中。

          ?

          運行TensorBoard

          要啟動TensorBoard,我們需要在終端上運行tensorboard命令。這將啟動一個本地服務(wù)器,該服務(wù)器將為TensorBoard UI和我們的SummaryWriter寫入磁盤的數(shù)據(jù)提供服務(wù)。

          默認情況下,PyTorch SummaryWriter對象將數(shù)據(jù)寫入在當(dāng)前工作目錄中創(chuàng)建的名為./runs的目錄中的磁盤。

          當(dāng)運行tensorboard命令時,我們傳遞一個參數(shù)來告訴tensorboard數(shù)據(jù)在哪里。就像這樣:

          tensorboard --logdir=runs

          TensorBoard服務(wù)器將啟動并正在偵聽端口6006上的http請求。這些詳細信息將顯示在控制臺中。

          通過瀏覽至以下位置訪問TensorBoard UI:

          http://localhost:6006

          在這里,我們將能夠看到我們的網(wǎng)絡(luò)圖和圖像數(shù)據(jù)。目前,這確實為我們提供了視覺效果,但沒有接下來的有用。

          TensorBoard直方圖和標(biāo)量

          我們可以添加到TensorBoard的下一個數(shù)據(jù)導(dǎo)入類型是數(shù)字數(shù)據(jù)。我們可以添加將隨時間或epoch 顯示的標(biāo)量值。我們還可以將值添加到直方圖中以查看值的頻率分布。

          要添加標(biāo)量和直方圖,我們使用PyTorch SummaryWriter類提供的相應(yīng)方法。

          這是調(diào)用的示例:

          tb.add_scalar('Loss', total_loss, epoch)tb.add_scalar('Number Correct', total_correct, epoch)tb.add_scalar('Accuracy', total_correct / len(train_set), epoch)
          tb.add_histogram('conv1.bias', network.conv1.bias, epoch)tb.add_histogram('conv1.weight', network.conv1.weight, epoch)tb.add_histogram('conv1.weight.grad', network.conv1.weight.grad, epoch)

          這是一個示例,說明了如何將這些調(diào)用放在訓(xùn)練循環(huán)中:

          network = Network()train_loader = torch.utils.data.DataLoader(train_set, batch_size=100)optimizer = optim.Adam(network.parameters(), lr=0.01)
          images, labels = next(iter(train_loader))grid = torchvision.utils.make_grid(images)
          tb = SummaryWriter()tb.add_image('images', grid)tb.add_graph(network, images)
          for epoch in range(1): total_loss = 0 total_correct = 0 for batch in train_loader: # Get Batch # Pass Batch # Calculate Loss # Calculate Gradient # Update Weights tb.add_scalar('Loss', total_loss, epoch) tb.add_scalar('Number Correct', total_correct, epoch) tb.add_scalar('Accuracy', total_correct / len(train_set), epoch) tb.add_histogram('conv1.bias', network.conv1.bias, epoch) tb.add_histogram('conv1.weight', network.conv1.weight, epoch) tb.add_histogram( 'conv1.weight.grad' ,network.conv1.weight.grad ,epoch ) print( "epoch", epoch, "total_correct:", total_correct, "loss:", total_loss ) tb.close()

          這會將這些值添加到TensorBoard中。這些值甚至在網(wǎng)絡(luò)訓(xùn)練時實時更新。

          隨時間推移查看損失和準(zhǔn)確性值會很有幫助。但是,我們可能需要承認,實際上并不需要TensorBoard。

          TensorBoard的真正功能是它具有開箱即用的比較多個運行的功能。這使我們能夠通過更改超參數(shù)值并比較運行來快速進行實驗,以查看哪些參數(shù)最有效。



          文章中內(nèi)容都是經(jīng)過仔細研究的,本人水平有限,翻譯無法做到完美,但是真的是費了很大功夫,希望小伙伴能動動你性感的小手,分享朋友圈或點個“在看”,支持一下我?^_^



          英文原文鏈接是:


          https://deeplizard.com/learn/video/pSexXMdruFM






          加群交流

          歡迎小伙伴加群交流,目前已有交流群的方向包括:AI學(xué)習(xí)交流群,目標(biāo)檢測,秋招互助,資料下載等等;加群可掃描并回復(fù)感興趣方向即可(注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱)

          ?謝謝你看到這里!??


          瀏覽 62
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲色图欧美电影 | 福利综合网 | 免费在线观看V片 | 欧美日韩成人一区二区三区 | 俺去俺来也www色老 |