解决:KeyError: ‘sparse_categorical_accuracy‘

解决:KeyError: ‘sparse_categorical_accuracy’

项目场景:

学习tf2.0,然后想显示acc和loss,然后就写了下面的代码:

history =model.fit_generator(train_generator,
                    epochs=1,
                    steps_per_epoch=2276//32, 。
                    validation_data=validation_generator,
                    validation_steps=251//32, 
                    callbacks=[cp_callback],
                    verbose=1    #verbose = 0 为不在标准输出流输出日志信息,1 为输出进度条记录
                    )
acc = history.history['sparse_categorical_accuracy']
val_acc = history.history['val_sparse_categorical_accuracy']
loss = history.history['loss']
val_loss = history.history['val_loss']

plt.subplot(1, 2, 1)
# plt.plot(acc, label='Training Accuracy')
plt.plot(val_acc, label='Validation Accuracy')
plt.title('Training and Validation Accuracy')
plt.legend()

plt.subplot(1, 2, 2)
plt.plot(loss, label='Training Loss')
plt.plot(val_loss, label='Validation Loss')
plt.title('Training and Validation Loss')
plt.legend()
plt.show()

问题描述:

但是一直报错

acc = history.history['sparse_categorical_accuracy']
KeyError: 'sparse_categorical_accuracy'

原因分析:

然后就把history的字典print了一下,发现:history字典里的是

dict_keys(['loss', 'acc', 'val_loss', 'val_acc'])

解决方案:

将下面的代码

acc = history.history['sparse_categorical_accuracy']
val_acc = history.history['val_sparse_categorical_accuracy']
loss = history.history['loss']
val_loss = history.history['val_loss']

改成

acc = history.history['acc']
val_acc = history.history['val_acc']
loss = history.history['loss']
val_loss = history.history['val_loss']

大功告成

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: sparse_categorical_accuracy 是 Keras 深度学习库中用于计算分类任务的稀疏类别准确率的评估指标。它接受一个预测值数组和一个真实值数组作为输入,并返回在这两个数组中预测值和真实值相同的元素所占的比例。 ### 回答2: sparse_categorical_accuracy是一种评估分类模型性能的指标,用于衡量预测结果和真实结果之间的匹配程度。它适用于分类问题,其中标签是不连续的整数值,而不是以one-hot编码形式表示的向量。在这种情况下,sparse_categorical_accuracy比categorical_accuracy更加适合。 sparse_categorical_accuracy的计算方式很简单,它是正确预测数除以总数量的比率。这个指标可以用于评估模型的一次预测结果的准确性。 在训练过程中,我们经常使用sparse_categorical_accuracy作为损失函数的指标,用来评估模型在每个epoch上的性能,并为我们提供一个反馈,以改进模型的性能。 将此指标用于模型评估中的一个主要好处是,在处理大规模数据集时,模型可以在每个batch上评估其性能,而不用等到整个数据集处理完毕。这可以提高模型评价的效率,因为我们只需要计算一个小样本的准确性。 总之,sparse_categorical_accuracy是一个易于计算和理解的分类指标,它适用于标签值是整数的分类问题,并且可以在训练过程中作为一个指标来评价模型的性能。 ### 回答3: sparse_categorical_accuracy是一种用于评估分类模型性能的指标,在深度学习的领域中经常被使用。这种指标主要适用于多类别分类问题,其中每个输入样本只能被分为一个类别。该指标基于每个分类正确性的平均值来衡量模型的性能,其计算方法如下: 对于每个输入样本,模型会给出每个类别的概率,其中概率最高的类别被视为预测结果。如果预测结果与实际类别匹配,则被视为分类正确。分类正确性的平均值即为sparse_categorical_accuracy。 与其他分类准确度指标相比,sparse_categorical_accuracy的一个优点是,它可以对具有大量类别的数据进行分类,而不必将类别编码为独热码。这可以降低存储和计算成本,并且可以更好地适应各种数据集。 然而,当类别数量很大时,由于类别之间的差异变得微小,导致模型预测的概率分布变得相似,这会降低模型的性能,因为模型很难分辨每个类别之间的区别。 综上所述,sparse_categorical_accuracy是一种强大的分类准确度指标,可以对具有大量类别的数据进行分类,并且可以更好地适应各种数据集。然而,当类别数量很大时,模型的性能可能会受到影响。因此,在应用sparse_categorical_accuracy时,需要根据实际情况选择合适的类别数和模型架构,以确保最佳性能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值