如何使用TensorFlow Lite绘制模型训练的损失和准确率曲线图
解决方案
报错原因
TypeError: 'History' object is not subscriptable报错是因为TensorFlow Lite Model Maker返回的训练历史对象并非Keras的字典结构,所有训练指标以属性形式挂载在History实例上,不可用下标[]访问,需用.调用对应属性读取数据。
指标获取方式
调用image_classifier.create()完成训练后,可通过模型实例的history属性读取各轮次训练指标:
- 训练损失:
model.history.train_loss - 验证损失:
model.history.validation_loss - 训练准确率:
model.history.train_accuracy - 验证准确率:
model.history.validation_accuracy
上述属性均返回列表,元素顺序对应训练的epoch轮次。
曲线绘制示例
使用matplotlib绘制损失、准确率曲线的参考代码如下:
import matplotlib.pyplot as plt # 提取各轮次指标数据 train_loss = model.history.train_loss val_loss = model.history.validation_loss train_acc = model.history.train_accuracy val_acc = model.history.validation_accuracy epochs = range(len(train_loss)) # 绘制准确率曲线 plt.figure(figsize=(12, 4)) plt.subplot(1, 2, 1) plt.plot(epochs, train_acc, label='训练准确率') plt.plot(epochs, val_acc, label='验证准确率') plt.legend(loc='lower right') plt.title('训练与验证准确率') # 绘制损失曲线 plt.subplot(1, 2, 2) plt.plot(epochs, train_loss, label='训练损失') plt.plot(epochs, val_loss, label='验证损失') plt.legend(loc='upper right') plt.title('训练与验证损失') plt.show()
内容的提问来源于stack exchange,提问作者user17273739
相关产品推荐
相关产品推荐

