PyTorch中如何使用tensorboard可視化

深度使用過tensorflow的同學可能都使用過tensorboard,因為tensorboard這一高級的可視化的工具,很多人對tensorflow也愛不釋手,目前除了tensorflow之外還沒有哪個深度學習庫開發出了一套完美的可視化工具,這也是tensorflow流行的原因之一,如果不使用tensorboard,你想可視化訓練流程,那麼你只能自己保存變數,自己畫曲線。

所以有很多使用別的深度學習框架的人在研究如何將tensorboard移植到他們的框架中來,當然也有很多成功的例子,不然我也不會寫這篇文章了,下面我們就來講幾種目前流行的方法。

1.使用Crayon

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

2.使用tensorboard_logger

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 valuesinfo = { "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 imagesinfo = { "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,然後你就能夠看到下面的界面

在瀏覽器中輸入0.0.0.0:6006/,你就能夠進到tensorboard界面了,就像下面這樣

這樣我們就能夠成功地在PyTorch中使用tensorboard可視化了,是不是很方便呢。

本文參考自yunjey』s github

完整代碼已經上傳到了github上

歡迎查看我的知乎專欄,深度煉丹

歡迎訪問我的博客

推薦閱讀:

【筆記】Finding Tiny Faces
深度學習入門該用PyTorch還是Keras?熱門公開課換框架背後的學問
python3.6.1及TensorFlow和PyTorch

TAG:PyTorch | 深度学习DeepLearning |