【问题标题】:Failed to run EfficientNet model to trained 4 class无法运行 EfficientNet 模型来训练 4 类
【发布时间】:2021-08-09 13:37:25
【问题描述】:

我将使用 4 个带有图像的类来训练我的模型。

这是我的预训练代码的样子

conv_base = EfficientNetB0(weights="imagenet", include_top=False,
                                               input_shape=(224, 224, 3))

我用这样的代码训练了我的模式:

eff_history = model.fit(
                        train_generator,
                        validation_data=validation_generator,
                        steps_per_epoch=486 // 20,
                        epochs=10)

但是出现了如下问题:

有帮助吗?

【问题讨论】:

  • 发布您的整个模型代码。
  • 这是我的代码兄弟,colab.research.google.com/drive/… 感谢您的检查
  • 将此model.add(layers.Dense(2, activation="softmax", name="fc_out")) 更改为model.add(layers.Dense(3, activation="softmax", name="fc_out"))。不同之处在于您在输出中有 3 个类,但您从模型中传递了 2 个类,因此存在形状不匹配。
  • 嗨,我的代码适用于 4 类。谢谢你的帮助。为了进一步沟通,我可以给我你的电子邮件吗?讨论更多关于这个

标签: python deep-learning conv-neural-network efficientnet


【解决方案1】:

每个样本都有三个标签,但模型的最后一层输出 2 个类,因此您获得的 logits 数是 2 而不是 3。您需要更改模型以具有 3 维输出。

【讨论】:

  • 有什么线索我应该在哪里更改代码?
  • 您能否提供有关您正在使用什么以及它是谁或哪个实现的更多信息。所以我可以查看源代码并为您提供更好的指导。
  • 这是我的代码兄弟,colab.research.google.com/drive/… 感谢您的检查
  • 您好,您可以复制我在上面定义 conv_base 的位置提供的代码吗?我目前无法运行代码。
  • @D.ACAR 这不是他问题的答案,因为您的编辑将使它成为整个模型,而不是base_model。此外,在他的代码中,他想使用Dropout,否则他无法使用。我已将答案放在问题的评论中。
猜你喜欢
  • 1970-01-01
  • 2015-02-10
  • 2020-01-03
  • 2020-08-25
  • 1970-01-01
  • 2019-01-20
  • 2021-07-09
  • 2019-11-06
  • 1970-01-01
相关资源
最近更新 更多