首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >efficientnet.tfkeras对tf.keras.applications.efficientnet

efficientnet.tfkeras对tf.keras.applications.efficientnet
EN

Stack Overflow用户
提问于 2020-09-23 14:31:08
回答 1查看 1.5K关注 0票数 2

我正在尝试使用高效网络来定制我的数据集。

我发现所有其他代码/data/config都是相同的。tf.keras.applications.efficientnet.EfficientNetB0只给出70%的准确率,efficientnet.tfkeras.EfficientNetB0可以给出90%的训练/预测累积性。

但我想两者都应该实现相同的高效网络,还是我在这里遗漏了什么呢?

我正在使用最新的效率网和Tensorflow 2.3.0

代码语言:javascript
运行
复制
with strategy.scope():
    model = tf.keras.Sequential([
        efficientnet.tfkeras.EfficientNetB0( #tf.keras.applications.efficientnet.EfficientNetB0
            input_shape=(IMAGE_SIZE, IMAGE_SIZE, 3),
            weights='imagenet',
            include_top=False
        ),
        L.GlobalAveragePooling2D(),
        L.Dense(1, activation='sigmoid')
    ])

model.compile(
    optimizer='adam',
    loss='binary_crossentropy',
    metrics=['binary_crossentropy']
)
model.summary()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-12 09:55:52

我在EfficientNetB4中遇到了同样的问题,并遇到了以下问题:

  1. 总参数的数目不相等。可训练参数相等,但不可训练参数不相等,efficientnet.tfkeras的不可训练参数比tf.keras.applications模型少7个。
  2. 层数不相等,efficientnet.tfkeras的层数比tf.keras.application模型少。
  3. 不同的层刚刚开始,最值得注意的是规范化和重标度层,它们在tf.keras.applications模型中,而在efficientnet.tfkeras模型中没有。您可以使用model.summary()方法亲自观察这一点。
  4. 在应用此层时,通过使用model.layers,它会将图像除以255,然后根据以下内容进行规范化处理,从而使图像恢复正常:

(input_image - IMAGENET_MEAN) / square_root(IMAGENET_STD)

因此,本文将图像归一化技术引入到模型中。当您对输入图像执行这种标准化时,图像将被标准化两次,导致极小的像素值。因此,这一模式将很难学习。

TLDR:不要将输入图像标准化,因为它是在tf.keras.application模型中构建的,输入图像的值应该在0-255范围内。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64030221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档