【人工知能入門】PyTorch可視化ツールTensorboardのインストールと簡単な使い方
記事ディレクトリ
1. Tensorboard をインストールする
1.1 Tensorboard のインストール
- Tensorboard は元々 Tensorflow の視覚化ツールでしたが、PyTorch バージョン 1.2.0 以降、PyTorch には Tensorboard のサポートが正式に組み込まれていますが、Tensorboard は依然として手動でインストールする必要があります。それ以外の場合は、エラーが報告されます。
ModuleNotFoundError: 'tensorboard' という名前のモジュールがありません
- 対応する仮想環境に入ったら、次の手順を入力してインストールします。
pip install tensorboard
1.2 インストールの確認
- 次のコマンドを入力して、エラーが報告されなければ、インストールは成功しています。
from torch.utils.tensorboard import SummaryWriter
2. Tensorboard 関数の概要
- Tensorboard のよく使用される 4 つの関数
- グラフ: ネットワーク構造図を保存します。
- スカラー: 精度、学習率、損失曲線。
- ヒストグラム: トレーニングの重み分布;
- 画像: 画像情報を表示します。
- 線を描く——add_scalaar
from torch.utils.tensorboard import SummaryWriter
# 创建编辑器,保存日志,指令保存路径log_dir
writer = SummaryWriter(log_dir="./logs") # 指定保存位置
# y = 2 * x
for i in range(100):
# 添加标题,x轴,y轴
# tag: 标题名, scalar_value: y轴, global_step: x轴
writer.add_scalar(tag="y=2x",scalar_value=2*1,global_step=i)
# 关闭
writer.close()
- PyCharm で上記のコードを実行すると、生成されたログ フォルダーに関連ファイルが保存されます。
- PyCharm 仮想環境ターミナルのログの上位ディレクトリに移動し、起動コマンド (下記) を入力し、生成されたリンクをクリックして結果を表示します。
# 使用默认端口
tensorboard --logdir=logs
# 使用指定端口
tensorboard --logdir=logs --port=6007
- ターミナルを入力して
Ctrl + C
プロセスを終了します。
- 単一の画像を表示します - add_image
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
# 创建编辑器,保存日志,指令保存路径log_dir
writer = SummaryWriter(log_dir="./logs") # 指定保存位置
# 图像地址
image_path = "/home/chenshili/图片/food_01.jpeg"
# 打开图像
img_PIL = Image.open(image_path) # 用PIL打开的图像,其文件格式是PIL的特有类
# 转化成numpy数据,因为add_image只能传入array或者tensor数据,所以要做类型转化。
img_array = np.array(img_PIL)
# 开始画图,tag: 标题,img_tensor: tensor或者numpy类型的数据, dataformats: H高W宽C通道,指定HWC类型
writer.add_image(tag="train",img_tensor=img_array,global_step=1,dataformats="HWC")
# 关闭
writer.close()
- モデルの描画—add_graph
from torch.utils.tensorboard import SummaryWriter
import torch
from torch.nn import Linear,ReLU,Sequential
# 创建编辑器,保存日志,指令保存路径log_dir
writer = SummaryWriter(log_dir="./logs") # 指定保存位置
model = Sequential(
Linear(1,10),
ReLU(),
Linear(10,1)
)
data = torch.ones(10,1)
writer.add_graph(model=model,input_to_model=data)
# 关闭
writer.close()
- 機種比較
from torch.utils.tensorboard import SummaryWriter
import os
import datetime
# 按时间构建生成文件保存的文件夹
log_dir = os.path.join("./logs",datetime.datetime.now().strftime("%Y%m%d_%H%M%S"))
print(log_dir)
# 创建编辑器,保存日志,指令保存路径log_dir
writer = SummaryWriter(log_dir=log_dir) # 指定保存位置
for i in range(100):
writer.add_scalar(tag="loss",scalar_value=1*i,global_step=i)
# 多执行几次把scalar_value的值做修改,如2*i,i等
# 关闭
writer.close()