首页 > 解决方案 > UNET 训练:准确度从 0.99 开始

问题描述

我正在尝试使用 UNET 进行一些图像分割(类似于this但 2D )。然而,即使在 epoch 1 开始时,准确度也开始非常高。

32/3616 [..............................] - ETA: 4:59:02 - loss: 0.6761 - accuracy: 0.9964
64/3616 [..............................] - ETA: 5:02:32 - loss: 0.4355 - accuracy: 0.9966

这是正常的吗?对我来说,感觉就像它不学习!

哪一个是学习的迹象;损失,准确性或两者兼而有之?

ps:我正在使用CPU,我将尝试GPU训练以加快速度。

标签: python-3.xtensorflowkerasdeep-learningimage-segmentation

解决方案


您可能正在处理不平衡的数据集。当您尝试分割的结构很小(例如,占图像的 1%)时,您的网络可以有 99% 的准确度。然后,如果您的网络仅预测 0,您将获得 99% 的准确率(因为预测 99% 的“空”像素是正确的)。

您应该使用更多信息指标来跟踪您的网络性能,包括 Dice 分数。

损失在这里是一个更好的学习指标。

此外,使用 CPU 为现实生活中的任务训练 U-Net 几乎是不可能的(需要数周数月)。您应该使用 GPU 以获得良好的性能。


推荐阅读