在PyTorch中使用tensorboard視覺化

Candy_GL發表於2018-08-01

深度學習使用過tensorflow的同學可能都使用過tensorboardtensorflow這麼火有一方面是因為tensorboard這一高階的視覺化的工具,目前除了tensorflow之外還沒有哪個深度學習庫開發出了一套完美的視覺化工具,如果不使用tensorboard,你想視覺化訓練流程,那麼你只能自己儲存變數,自己畫曲線,用起來還是很不方便的。

有很多使用別的深度學習框架的人在研究如何將tensorboard視覺化移植到他們所使用的框架中來,也有很多成功的例子,接下來我們分析一下目前流行的幾種方法。

1.使用Crayon實現tensorboard視覺化


Crayon是一個支援任何語言使用tensorboard的框架,它的說明文件訪問下面的網址,目前他只支援PythonLua,而且安裝過程比較麻煩,需要docker,不推薦使用此方法。

2.使用tensorboard_logger實現tensorboard視覺化


tensorboard_logger是由TeamHG-Memex開發的使用tensorboard的庫,可以訪問文件介面,安裝也略微有點繁瑣,需要安裝tensorflow和他們開發的tensorboard_logger,安裝完成之後按照文件的使用說明就可以使用tensorboard了。

3.匯入一個指令碼實現tensorboard視覺化

--

這個辦法是我認為最簡單的辦法,也是我目前使用的辦法,只需要安裝cpu版的tensorflow,通過pip install tensorflow就能夠很快安裝上,然後只需要複製這個網址裡面的程式碼到你的專案檔案目錄,新建一個logger.py的檔案,將程式碼複製進去就ok了。

然後在你的python檔案裡面輸入from logger import Logger,然後在訓練之前定義好想存放tensorboard檔案的資料夾,logger = Logger('./logs')這裡可以使用任何資料夾存放tensorboard檔案。

然後在訓練過程中可以通過下面的方式記錄想要記錄的變數

# (1) Log the scalar values
info = {
    'loss': loss.data[0],
    'accuracy': accuracy.data[0]
}

for tag, value in info.items():
    logger.scalar_summary(tag, value, step)

# (2) Log values and gradients of the parameters (histogram)
for tag, value in model.named_parameters():
    tag = tag.replace('.', '/')
    logger.histo_summary(tag, to_np(value), step)
    logger.histo_summary(tag+'/grad', to_np(value.grad), step)

# (3) Log the images
info = {
    'images': to_np(img.view(-1, 28, 28)[:10])
}

for tag, images in info.items():
    logger.image_summary(tag, images, step)

這樣我們就將我們需要的變數放入tensorborad中,然後我們在當前目錄下輸入tensorbard --logdir='./logs',這裡需要輸入自己的資料夾名稱,我的資料夾之前定義為了logs,然後你就能看到如下介面:

tensorboard

在瀏覽器中輸入http://0.0.0.0:6006/,你就能夠進到tensorboard介面,如下圖所示:

pytorch使用tensorboard視覺化

pytorch使用tensorboard視覺化

pytorch使用tensorboard視覺化

這樣就能夠成功地在PyTorch中使用tensorboard視覺化,大家學習起來也更加直觀簡便了。


原創文章,轉載請註明 :在PyTorch中使用tensorboard視覺化 - pytorch中文網
原文出處: https://ptorch.com/news/18.html

相關文章