CNN模型中的Tensorflow Loss&Acc保持不变

我刚刚开始在Tensorflow上学习cnn。但是,当我训练模型时,损失和准确性不会改变。

CNN模型中的Tensorflow Loss&Acc保持不变

我正在使用尺寸为128x128x3的图像,并且图像已标准化(在[0,1]中)。这是我正在使用的编译器。

model.compile(optimizer = tf.keras.optimizers.Adam(lr = 0.000001),loss ='binary_crossentropy',metrics = ['accuracy'])

这是我的模型摘要

CNN模型中的Tensorflow Loss&Acc保持不变

我尝试了以下操作,但我始终具有相同的值:

  • 将学习率从0.00000001更改为10
  • 更改我尝试使用5x5和3x3的卷积内核
  • 我添加了另一个完全连接的层和一个Conv层。

更新

在拟合模型后,图层的权重没有改变。我的初始体重相同。

guiyongzhou 回答:CNN模型中的Tensorflow Loss&Acc保持不变

您可以尝试一下,

 model.compile(optimizer='adam',loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),metrics=['accuracy'])

此外,从最后一层删除softmax激活,二进制分类问题不需要softmax。因此,在这种情况下,softmax所做的就是将值始终裁剪为1,因为只有一种可能性,因此网络无法训练。 link可能有助于您了解softmax。 此外,您可以尝试在最后一个节点上使用S型激活。这会将输出限制在0到1的范围内,并且由于非常高的损耗,网络权重不会增大。

本文链接:https://www.f2er.com/2656395.html

大家都在问