在 epoch 结束时获取准确性和验证准确性的值时面临问题
Facing problem in fetching the value of accuracy and validation accuracy on epoch ends
我正在使用 resnet 在 mnist 数据集上构建模型。实际上我需要一些图表来处理。
完整代码为here.
我需要的图表是,
- 时期与验证损失
- 时期与训练损失
- 时代与验证准确性
- 时代与训练准确性
我得到了前两张图。但我没能画出其余部分。当我尝试绘制它们时会发生以下情况。
我构建了一个 class 来存储 4 个值(验证损失、训练损失、验证准确性、训练准确性)。代码如下。
class LossHistory(Callback):
def on_train_begin(self, logs={}):
self.losses = []
self.val_losses = []
self.acc = []
self.val_acc = []
def on_epoch_end(self, batch, logs={}):
self.losses.append(logs.get('loss'))
self.val_losses.append(logs.get('val_loss'))
self.acc.append(logs.get('acc'))
print(logs.get('acc')) """ Showing "None" """
self.val_acc.append(logs.get('val_acc'))
print(logs.get('val_acc')) """ Showing "None" """
训练完成后...
predictions, history = run_resNet()
当我做...
print(history.acc)
print(history.val_acc)
我得到的输出...
[None, None, None, None, None,........]
[None, None, None, None, None,........]
有什么问题吗?如何摆脱它?
当您尝试从日志中获取准确度指标时,更新准确度指标的名称(“准确度”而不是 'acc'),如下所示:
def on_epoch_end(self, batch, logs={}):
self.losses.append(logs.get('loss'))
self.val_losses.append(logs.get('val_loss'))
self.acc.append(logs.get('accuracy'))
print(logs.get('accuracy'))
self.val_acc.append(logs.get('val_accuracy'))
print(logs.get('val_accuracy'))
查看更新后的 notebook 以获取完整代码。
我正在使用 resnet 在 mnist 数据集上构建模型。实际上我需要一些图表来处理。 完整代码为here.
我需要的图表是,
- 时期与验证损失
- 时期与训练损失
- 时代与验证准确性
- 时代与训练准确性
我得到了前两张图。但我没能画出其余部分。当我尝试绘制它们时会发生以下情况。
我构建了一个 class 来存储 4 个值(验证损失、训练损失、验证准确性、训练准确性)。代码如下。
class LossHistory(Callback):
def on_train_begin(self, logs={}):
self.losses = []
self.val_losses = []
self.acc = []
self.val_acc = []
def on_epoch_end(self, batch, logs={}):
self.losses.append(logs.get('loss'))
self.val_losses.append(logs.get('val_loss'))
self.acc.append(logs.get('acc'))
print(logs.get('acc')) """ Showing "None" """
self.val_acc.append(logs.get('val_acc'))
print(logs.get('val_acc')) """ Showing "None" """
训练完成后...
predictions, history = run_resNet()
当我做...
print(history.acc)
print(history.val_acc)
我得到的输出...
[None, None, None, None, None,........]
[None, None, None, None, None,........]
有什么问题吗?如何摆脱它?
当您尝试从日志中获取准确度指标时,更新准确度指标的名称(“准确度”而不是 'acc'),如下所示:
def on_epoch_end(self, batch, logs={}):
self.losses.append(logs.get('loss'))
self.val_losses.append(logs.get('val_loss'))
self.acc.append(logs.get('accuracy'))
print(logs.get('accuracy'))
self.val_acc.append(logs.get('val_accuracy'))
print(logs.get('val_accuracy'))
查看更新后的 notebook 以获取完整代码。