这次加了结构化损失
训练集dice: 0.9219 - iou: 0.8611 - loss: 0.0318 - mae: 0.0220 - total: 0.8915
dropout后:dice: 0.9143 - iou: 0.8488 - loss: 0.0335 - mae: 0.0236 - total: 0.8816
加了结构化损失后:avg_score: 0.8917 - dice: 0.9228 - iou: 0.8627 - loss: 0.1098 - mae: 0.0191
其实效果有提升,之前自定义的指标有问题,它返回的是最后一个批次的统计信息,现在返回的是整个数据集的平均信息
model.evaluate(train_dataset)
验证集504个样本,dice: 0.8096 - iou: 0.7138 - loss: 0.1267 - mae: 0.0429 - total: 0.7617
dice: 0.8113 - iou: 0.7135 - loss: 0.1024 - mae: 0.0409 - total: 0.7624
加了结构化损失后:avg_score: 0.7687 - dice: 0.8189 - iou: 0.7242 - loss: 0.2894 - mae: 0.0393
len(val_dataset)*BATCH_SIZE,验证集
经过最后的一番优化后
模型在训练集上的表现,因为验证集和训练集不同,模型并没有训练验证集上数据
训练集dice: 0.9219 - iou: 0.8611 - loss: 0.0318 - mae: 0.0220 - total: 0.8915
dropout后:dice: 0.9143 - iou: 0.8488 - loss: 0.0335 - mae: 0.0236 - total: 0.8816
加了结构化损失后:avg_score: 0.8917 - dice: 0.9228 - iou: 0.8627 - loss: 0.1098 - mae: 0.0191
其实效果有提升,之前自定义的指标有问题,它返回的是最后一个批次的统计信息,现在返回的是整个数据集的平均信息
稍微修改了dropout后:avg_score: 0.9160 - dice: 0.9411 - iou: 0.8921 - loss: 0.2218 - mae: 0.0140
model.evaluate(train_dataset)
模型在训练集上的表现可以说相当好,再来看模型在验证集上的表现,模型从未拟合过验证集数据因为我不是用的随机拆分,也没重启内核
验证集504个样本,dice: 0.8096 - iou: 0.7138 - loss: 0.1267 - mae: 0.0429 - total: 0.7617
dice: 0.8113 - iou: 0.7135 - loss: 0.1024 - mae: 0.0409 - total: 0.7624
加了结构化损失后:avg_score: 0.7687 - dice: 0.8189 - iou: 0.7242 - loss: 0.2894 - mae: 0.0393
稍微修改了dropout后:avg_score: 0.7939 - dice: 0.8403 - iou: 0.7524 - loss: 0.5245 - mae: 0.0322
len(val_dataset)*BATCH_SIZE
虽然这张图片真实掩码有半截身子的人 ,但是我还是觉得模型预测的很正确,半截身子的人不能当前景,应该只有没被裁剪的人当前景,因为这个数据集中很多裁剪的人当背景的