我正在尝试使用高效网络来定制我的数据集。
我发现所有其他代码/data/config都是相同的。tf.keras.applications.efficientnet.EfficientNetB0只给出70%的准确率,efficientnet.tfkeras.EfficientNetB0可以给出90%的训练/预测累积性。
但我想两者都应该实现相同的高效网络,还是我在这里遗漏了什么呢?
我正在使用最新的效率网和Tensorflow 2.3.0
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()
发布于 2021-02-12 09:55:52
我在EfficientNetB4中遇到了同样的问题,并遇到了以下问题:
(input_image - IMAGENET_MEAN) / square_root(IMAGENET_STD)
因此,本文将图像归一化技术引入到模型中。当您对输入图像执行这种标准化时,图像将被标准化两次,导致极小的像素值。因此,这一模式将很难学习。
TLDR:不要将输入图像标准化,因为它是在tf.keras.application模型中构建的,输入图像的值应该在0-255范围内。
https://stackoverflow.com/questions/64030221
复制相似问题