※ PyTorch의 TensorBoard만을 다룹니다.
from torch.utils.tensorboard import SummaryWriter
layout = {
"Accuracy": {
"Accuracy": ["Multiline", ["Accuracy/Train", "Accuracy/Test"]]
}
}
writer = SummaryWriter()
writer.add_custom_scalars(layout)
writer.add_scalar("Accuracy/Train", VALUE, STEP)
TensorBoard CUSTOM SCALARS 탭에서 확인
SummaryWriter.add_custom_scalars(layout)
from torch.utils.tensorboard import SummaryWriter
import math
layout = {
"ABCDE": {
"loss": ["Multiline", ["loss/train", "loss/validation"]],
"accuracy": ["Multiline", ["accuracy/train", "accuracy/validation"]],
},
}
writer = SummaryWriter()
writer.add_custom_scalars(layout)
epochs = 10
batch_size = 50
for epoch in range(epochs):
for index in range(batch_size):
global_batch_index = epoch * batch_size + index
train_loss = math.exp(-0.01 * global_batch_index)
train_accuracy = 1 - math.exp(-0.01 * global_batch_index)
writer.add_scalar("loss/train", train_loss, global_batch_index)
writer.add_scalar("accuracy/train", train_accuracy, global_batch_index)
validation_loss = train_loss + 0.1
validation_accuracy = train_accuracy - 0.1
writer.add_scalar("loss/validation", validation_loss, global_batch_index)
writer.add_scalar("accuracy/validation", validation_accuracy, global_batch_index)
writer.close()
기존의 TensorBoard 사용시와 동일하게 SummaryWriter
인스턴스를 선언합니다.
writer.add_scalar()
호출 전에 writer.add_custom_scalars()
를 사용해 차트 레이아웃을 정해줍니다.
차트 레이아웃이란 텐서보드에 표시될 스칼라 값을 표시하는 방법입니다.
위 코드에서 ABCDE
는 카테고리 이름, loss
와 accuracy
가 차트의 이름이며, loss/train
, loss/validation
, accuracy/train
, accuracy/validation
이 스칼라 이름입니다.
writer.add_custom_scalars(layout)
을 통해 레이아웃을 지정해준 뒤, 기존과 같이 writer.add_scalar(scalar)
를 사용해 차트에 스칼라를 넣어주면 됩니다.
layout
에서 언급된 스칼라는 TensorBoard의 "CUSTOM SCALARS" 탭에서 확인할 수 있습니다.
파이토치 공식 문서에서 볼 수 있는 레이아웃 예시는 다음과 같습니다.
layout = {'Taiwan':{'twse':['Multiline',['twse/0050', 'twse/2330']]},
'USA':{ 'dow':['Margin', ['dow/aaa', 'dow/bbb', 'dow/ccc']],
'nasdaq':['Margin', ['nasdaq/aaa', 'nasdaq/bbb', 'nasdaq/ccc']]}}
writer.add_custom_scalars(layout)
잘봤습니다