请问能否在yolov6s的训练途中用tensorboard进行可视化绘制函数,还是要在训练完后得到图片,例如下图

请问如何绘制这个函数图线,代码怎么写
训练完一次后已得出如下图

请问能否在yolov6s的训练途中用tensorboard进行可视化绘制函数,还是要在训练完后得到图片,例如下图

请问如何绘制这个函数图线,代码怎么写
训练完一次后已得出如下图

可以在yolov6s的训练途中用tensorboard进行可视化绘制函数。具体操作如下:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter()
for epoch in range(num_epochs):
...
# 计算损失值和准确率等指标
...
writer.add_scalar('train_loss', train_loss, epoch)
writer.add_scalar('train_acc', train_acc, epoch)
writer.add_scalar('val_loss', val_loss, epoch)
writer.add_scalar('val_acc', val_acc, epoch)
writer.close()
tensorboard --logdir=path/to/log/dir
其中,path/to/log/dir为保存训练日志的目录。
http://localhost:6006,即可查看训练过程中的损失值和准确率等指标的变化曲线。可以在左侧的面板中选择不同的标签(如train_loss、train_acc等)来查看不同指标的变化情况。对于已经训练完成的模型,可以通过读取日志文件并使用matplotlib绘制出损失值和准确率等指标的变化曲线。具体代码如下:
import matplotlib.pyplot as plt
import numpy as np
def plot_loss(log_file):
with open(log_file, 'r') as f:
lines = f.readlines()
train_loss = []
val_loss = []
for line in lines:
if 'train_loss' in line:
train_loss.append(float(line.split()[-1]))
elif 'val_loss' in line:
val_loss.append(float(line.split()[-1]))
epochs = np.arange(len(train_loss))
plt.plot(epochs, train_loss, label='train_loss')
plt.plot(epochs, val_loss, label='val_loss')
plt.legend()
plt.xlabel('epoch')
plt.ylabel('loss')
plt.show()
def plot_acc(log_file):
with open(log_file, 'r') as f:
lines = f.readlines()
train_acc = []
val_acc = []
for line in lines:
if 'train_acc' in line:
train_acc.append(float(line.split()[-1]))
elif 'val_acc' in line:
val_acc.append(float(line.split()[-1]))
epochs = np.arange(len(train_acc))
plt.plot(epochs, train_acc, label='train_acc')
plt.plot(epochs, val_acc, label='val_acc')
plt.legend()
plt.xlabel('epoch')
plt.ylabel('accuracy')
plt.show()
log_file = 'path/to/log/file'
plot_loss(log_file)
plot_acc(log_file)