训练损失和验证损失总是变为0.00000e + 00

时间:2020-09-04 10:06:21

标签: machine-learning image-processing neural-network conv-neural-network

有人可以帮助我解决这个问题,为什么我损失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 个答案:

答案 0 :(得分:1)

最后一层有问题。大小应等于类别数,而不是1,即:

x = layers.Dense(num_classes, activation="softmax")(x)

假设num_classes是数据中不同类别的数量。