1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

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

        共 4076字,需瀏覽 9分鐘

         ·

        2020-07-28 17:06

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

        重磅干貨,第一時間送達(dá)

        文 |AI_study


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

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

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

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

        • 建立模型

        • 訓(xùn)練模型

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

          • 為此使用TensorBoard

        TensorBoard:TensorFlow的可視化工具包

        TensorBoard提供了機(jī)器學(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. 確認(rèn)您正在運行PyTorch版本1.1.0或更高版本。

        2. 確認(rèn)您正在運行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進(jìn)行使用。

        網(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ù)。

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

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

        tensorboard --logdir=runs

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

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

        http://localhost:6006

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

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

        我們可以添加到TensorBoard的下一個數(shù)據(jù)導(dǎo)入類型是數(shù)字?jǐn)?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)確性值會很有幫助。但是,我們可能需要承認(rèn),實際上并不需要TensorBoard。

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



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



        英文原文鏈接是:


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






        加群交流

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

        ?謝謝你看到這里!??


        瀏覽 62
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            亚洲日韩二区中文字幕在线看 | 丁香五月婷婷综合网 | 熟女伦乱| 婷婷在线综合一区二区 | 国产日韩欧美中文 | 久久亚洲AV | 久久五月天婷婷综合 | 成人网在线 | 操逼视频操操逼 | 波多野结衣无码一区二区三区久在线视频 |