如何解决训练损失和验证损失总是变为0.00000e + 00
有人可以帮助我解决这个问题,为什么我损失0.0000e + 00。
我环顾四周,很少有人遇到相同的问题,但是我无法按照相同的建议进行修复。
行被改组,并且标签已经转换为float32。这些是我在类似问题上发现的建议。你能告诉我我错了吗?
此问题是类别大于1的图像的分类。
这就是我创建模型的方式
def createmodel():
pretrained = InceptionV3(input_shape=(150,150,3),include_top=False,weights='imagenet')
for layer in pretrained.layers:
layer.trainable = False
x = layers.Flatten()(pretrained.output)
x = layers.Dense(1024,activation='relu')(x)
x = layers.Dropout(0.2)(x)
x = layers.Dense(1,activation="softmax")(x)
model = Model(pretrained.input,x)
model.compile(optimizer = Adam(0.001),loss = 'categorical_crossentropy',)
return model
Epoch 1/2
10/10 [==============================] - 3s 322ms/step - loss: 0.0000e+00 - val_loss: 0.0000e+00
Epoch 2/2
10/10 [==============================] - 5s 464ms/step - loss: 0.0000e+00 - val_loss: 0.0000e+00
解决方法
最后一层有问题。大小应等于类别数,而不是1,即:
x = layers.Dense(num_classes,activation="softmax")(x)
假设num_classes
是数据中不同类别的数量。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。