直接上中点
当然了,我们想要在pytorch中使用tensorboardX你需要先安装这些依赖
我在安装的过程中也遇到了一些小问题,基本上都是一些安装依赖版本的问题。
pip install tensorflow==1.13.2
因为tensorboardX是tensorflow下的一个依赖,所以安装这个需要先安装tensorflow,在安装tensorflow会一起安装上tensorboard,一起安装tensorboard的版本应该也是1.13.几的版本吧,我也记得不是很清楚,
然后安装tensorboardX
pip install tensorboardX
然后所需要的依赖就安装完成了,接下来的就是重头戏了
tensorboardX的基本可视化是非常简单的,只需要在你训练脚本中添加几行代码就可以实现,
#-------------------------------------#
# 对数据集进行训练
#-------------------------------------#
import os
import numpy as np
import time
import torch
from torch.autograd import Variable
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
import torch.backends.cudnn as cudnn
from utils.config import Config
from nets.yolo_training import YOLOLoss,Generator
from nets.yolo3 import YoloBody
from matplotlib import pyplot as plt
from tensorboardX import SummaryWriter
import torchvision.models.densenet
def get_lr(optimizer):
for param_group in optimizer.param_groups:
return param_group['lr']
def plot_curve(data):
#fig = plt.figure()
plt.plot(range(len(data)), data, color='blue')
plt.legend(['value'], loc='upper right')
plt.xlabel('step')
plt.ylabel('value')
plt.show()
def fit_ont_epoch(net,yolo_losses,epoch,epoch_size,epoch_size_val,gen,genval,Epoch):
total_loss = 0
val_loss = 0
for iteration in range(epoch_size):
start_time = time.time()
images, targets = next(gen)#这里对原始的图片和框子进行了预处理
with torch.no_grad():
images = Variable(torch.from_numpy(images).cuda().type(torch.FloatTensor))
targets = [Variable(torch.from_numpy(ann).type(torch.FloatTensor)) for ann in targets]
optimizer.zero_grad()
outputs = net(images)
losses = []
for i in range(3