Я хочу использовать EfficientNet с трансферным обучением в наборе данных Eurosat-rgb. У меня проблема в том, что он, похоже, не учится.
Во-первых, я начинаю со следующей модели, используя трансферное обучение с MobileNet, и она отлично работает (1)
model_base = tf.keras.applications.MobileNet(weights='imagenet', include_top=False, input_shape=input_shape=(224,224,3))
model_base.trainable=False
model = tf.keras.Sequential([
model_base,
tf.keras.layers.GlobalAveragePooling2D(name="avg_pool"),
tf.keras.layers.Dense(10, activation="softmax", name="predictions")
])
Затем я переключаюсь с MobileNet на EfficientNetB1, и вдруг он ничего не узнает (2). И затем, если я попробую с model_base.trainable=True, точность обучения улучшится, но не точность проверки (3).
Что я делаю не так?
Если я использую EfficientNet без обучения переносу, я тоже получаю хорошие результаты (4), но это требует много времени. время очевидно. Я также пытался изменить оптимизатор с sgd на adam, но это тоже не работает.