一、簡介與安裝方法
1.1 概念
Tensorboard 是 TensorFlow 的一個工具包,用于展示網絡圖、張量的指標變化和分布情況,如權重W、偏置B、卷積層數、全連接層數等參數,使用該工具可以方便觀察神經網絡訓練過程,分析學習模型訓練的效果。
大概自Pytorch1.1.0版本發布后,我們就可以直接在Pytorch環境直接安裝Tensorboard工具包。
1.2安裝方法
安裝最新版本:
pip install tensorboard
查看版本號:
tensorboard --version
當然也可以指定版本號安裝
pip install tensorboard==2.6.0
刪除
pip uninstall tensorboard
二、簡單示例
from torch.utils.tensorboard import SummaryWriterwriter = SummaryWriter("log")
for i in range(100):writer.add_scalar("y=x", i, i)writer.close()
運行完后再命令行輸入
tensorboard --logdir=logs --port=6007
點擊可以直接打開網頁如下:
2.1 SummaryWriter
SummaryWriter官方定義:將條目直接寫入 log_dir 中的事件文件以供 TensorBoard 使用。SummaryWriter 類提供了一個高級 API,用于在給定目錄中創建事件文件并向其中添加摘要和事件。 該類異步更新文件內容。 這允許訓練程序直接從訓練循環調用方法將數據添加到文件中,而不會減慢訓練速度。
我們可以通過ctrl+左鍵點擊SummaryWriter類名查看定義。
def __init__(self, log_dir=None, comment='', purge_step=None, max_queue=10,flush_secs=120, filename_suffix=''):
一般我們只需要定義一個路徑名log_dir即可。如果沒有參數的話,會默認保存在runs/日期時間 路徑。
2.2 add_scalar
def add_scalars(self, main_tag, tag_scalar_dict, global_step=None, walltime=None):
該方法用于將許多標量數據添加到summary中。
main_tag:數據名
tag_scalar_dict:數字常量值
global_step:訓練步數
walltime:記錄發生的時間,可以不寫。
2.3 導入圖像add_image
def add_image(self, tag, img_tensor, global_step=None, walltime=None, dataformats='CHW'):
該方法用于添加圖片到summary中。
img_tensor:圖像數據,格式要求為(torch.Tensor, numpy.array, or string/blobname)
dataformats : 圖像數據格式,默認為 ‘CHW’(Channel x Height x Width)
寫一個小例子:
2.3.1 安裝opencv
因為沒有Tensor數據的圖片,所以用opencv生成numpy的圖片。
pip install opencv-python
2.3.2 寫代碼
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Imagewriter = SummaryWriter("log")
image_path = "dataset/train/image/1.jpg"
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)writer.add_image("test", img_array, 1, dataformats='HWC')for i in range(100):writer.add_scalar("y=2x", i, i)writer.close()
在terminal中輸入:
tensorboard --logdir=logs --port=6007
點擊打開,即可顯示圖片。