我刚刚开始深入学习,我用PyTorch完成了我的第一次模型培训。
我决定使用torchvision的预构建模型,更具体地说,使用自定义数据集上的mobilenet_v2 (https://pytorch.org/docs/stable/_modules/torchvision/models/mobilenet.html#mobilenet_v2)进行二进制分类。
我设法获得了100%的训练和测试集的准确性(这个特定的数据集并不难,所以没有什么奇怪的)。
我不明白为什么测试损失似乎比火车损耗高几个数量级,而在这两种情况下,准确性都是100%。有人能告诉我这里发生了什么吗?
我向你们展示以下的训练数据:
历次: 1/15,列车损耗: 0.22990,列车精度: 88.48%,测试损耗: 2.10275,测试精度: 99.22%
历次: 2/15,列车损耗: 0.03988,列车精度: 99.41%,测试损耗: 2.08563,测试精度: 99.22%
历次: 3/15,列车损耗: 0.02211,列车精度: 99.41%,测试损耗: 2.05521,测试精度: 100.00%
历次: 4/15,列车损耗: 0.01173,列车精度: 99.80%,测试损耗: 2.05332,测试精度: 100.00%
历次: 5/15,列车损耗: 0.00499,列车精度: 100.00%,测试损耗: 2.04989,测试精度: 100.00%
历次: 6/15,列车损耗: 0.00381,列车精度: 100.00%,测试损耗: 2.04952,测试精度: 100.00%
历次: 7/15,列车损耗: 0.00171,列车精度: 100.00%,测试损耗: 2.04999,测试精度: 100.00%
历次: 8/15,列车损耗: 0.00072,列车精度: 100.00%,测试损耗: 2.04971,测试精度: 100.00%
历次: 9/15,列车损耗: 0.00045,列车精度: 100.00%,测试损耗: 2.04938,测试精度: 100.00%
历次: 10/15,列车损耗: 0.00035,列车精度: 100.00%,测试损耗: 2.04932,测试精度: 100.00%
历次: 11/15,列车损耗: 0.00029,列车精度: 100.00%,测试损耗: 2.04920,测试精度: 100.00%
历次: 12/15,列车损耗: 0.00025,列车精度: 100.00%,测试损耗: 2.04922,测试精度: 100.00%
历次: 13/15,列车损耗: 0.00022,列车精度: 100.00%,测试损耗: 2.04906,测试精度: 100.00%
历次: 14/15,列车损耗: 0.00020,列车精度: 100.00%,测试损耗: 2.04914,测试精度: 100.00%
历次: 15/15,列车损耗: 0.00018,列车精度: 100.00%,测试损耗: 2.04905,测试精度: 100.00%
发布于 2020-09-15 07:37:27
在二进制分类中,我们要么是0,要么是1。你必须在最后一层使用softmax函数才能得到输出。范围从(0,1)
损失:一般来说,它是预测值和实际价值之间的差别。
假设
案例1 :预测值为0.6,实际答案为1。
案例2:预测值为0.9,实际答案为1。
虽然它们都有正确的答案(因为它们都舍入为1),但案例2中的损失小于案例1。
https://datascience.stackexchange.com/questions/81710
复制相似问题