Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将SmoothdValue转换为浮点,以便使用pyplot进行打印?_Python_Neural Network_Pytorch_Smoothing - Fatal编程技术网

Python 如何将SmoothdValue转换为浮点,以便使用pyplot进行打印?

Python 如何将SmoothdValue转换为浮点,以便使用pyplot进行打印?,python,neural-network,pytorch,smoothing,Python,Neural Network,Pytorch,Smoothing,我试图使用matplotlib.pyplot从我的神经网络中绘制损耗与历元的关系图,但我遇到了一个问题。在每个历元之后,损失被收集在一个数组中,并且是平滑的值对象(来自utils.py)。现在,我正在尝试在每个历元之后获取损耗,并将其存储在一个数组中,以便以后可以将其用作pyplot的轴。我是这样做的: for epoch in range(num_epochs): epoch_list.append(epoch) # train for one epoch, printing

我试图使用matplotlib.pyplot从我的神经网络中绘制损耗与历元的关系图,但我遇到了一个问题。在每个历元之后,损失被收集在一个数组中,并且是平滑的值对象(来自utils.py)。现在,我正在尝试在每个历元之后获取损耗,并将其存储在一个数组中,以便以后可以将其用作pyplot的轴。我是这样做的:

for epoch in range(num_epochs):
    epoch_list.append(epoch)
    # train for one epoch, printing every 10 iterations
    metric_logger = train_one_epoch(model, optimizer, data_loader, device, epoch, print_freq=10)

    loss_list = metric_logger.meters.get('loss')
    loss_axis.append(loss_list)

    print("Loss: ", loss_list.value)
    print("Loss: ", loss_list.deque)
    # update the learning rate
    lr_scheduler.step()
    # evaluate on the test dataset
    coco_evaluator = evaluate(model, data_loader_test, device=device)

在每个历元中进行训练后,我得到字典metric_logger.meters中与键“loss”对应的值,然后将其附加到数组loss_轴。但是,metric_logger.meters中的元素属于SmoothdValue类型,因此我的程序无法解释该类型来绘制它。如何将此平滑值类型转换为浮点值,以便绘制它?

如果您将
损耗轴.append(损耗列表)
替换为
损耗轴.append(损耗列表.Value)
,应该可以工作,非常感谢!这解决了我的问题。真不敢相信,我已经得到了答案,却没有意识到哈哈