为什么我在pycharm中使用hiddenlayer可视化训练时,跳出的图只记录第一轮训练的损失,进度


import hiddenlayer as hl
import time
## 初始化MyConvnet
MyConvnet = ConvNet()
##print(MyConvnet)
# 定义优化器
optimizer = torch.optim.Adam(MyConvnet.parameters(), lr=0.0003)
loss_func = nn.CrossEntropyLoss()  # 损失函数
# 记录训练过程的指标
history1 = hl.History()
# 使用Canvas进行可视化
canvas1 = hl.Canvas()
print_step = 100  ## 每经过100次迭代后,输出损失
## 对模型进行迭代训练,对所有的数据训练EPOCH轮
for epoch in range(5):
    ## 对训练数据的迭代器进行迭代计算
    for step, (b_x, b_y) in enumerate(train_loader):
        ## 计算每个batch的
        output = MyConvnet(b_x)  # CNN在训练batch上的输出
        loss = loss_func(output, b_y)  # 交叉熵损失函数
        optimizer.zero_grad()  # 每个迭代步的梯度初始化为0
        loss.backward()  # 损失的后向传播,计算梯度
        optimizer.step()  # 使用梯度进行优化
        ## 计算迭代次数
        ## 计算每经过print_step次迭代后的输出
        if step % print_step == 0:
            ## 计算在测试集上的精度
            output = MyConvnet(test_data_x)
            _, pre_lab = torch.max(output, 1)
            acc = accuracy_score(test_data_y, pre_lab)
            ## 计算每个epoch和step的模型的输出特征
            history1.log((epoch, step),
                         train_loss=loss,  # 训练集损失
                         test_acc=acc,  # 测试集精度
                         ## 第二个全连接层权重
                         hidden_weight=MyConvnet.fc[2].weight)
            # 可视网络训练的过程
            with canvas1:
                canvas1.draw_plot(history1["train_loss"])
                canvas1.draw_plot(history1["test_acc"])
                canvas1.draw_image(history1["hidden_weight"])

img