CNN模型中的Tensorflow损失和Acc保持恒定

问题描述 投票:0回答:1

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

enter image description here

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

model.compile(optimizer = tf.keras.optimizers.Adam(lr = 0.000001),损失='binary_crossentropy',指标= ['准确性'])

这是我的模型摘要

enter image description here

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

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

更新

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

python tensorflow loss cnn
1个回答
1
投票
model.compile(optimizer='adam', loss=tf.keras.losses.BinaryCrossentropy(from_logits=True), metrics=['accuracy'])

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

© www.soinside.com 2019 - 2024. All rights reserved.