Я обучил некоторые сети с помощью ResNetV2 50 (https://tfhub.dev/google/imagenet/resnet_v2_50/feature_vector/4), и это очень хорошо работает для моих наборов данных.
Затем я попытался tf.keras.applications.ResNet50
, и точность очень низкая, чем другой.
Здесь две модели:
Первая (с концентратором)
base_model = hub.KerasLayer('https://tfhub.dev/google/imagenet/resnet_v2_50/feature_vector/4', input_shape=(IMAGE_H, IMAGE_W, 3))
base_model.trainable = False
model = tf.keras.Sequential([
base_model ,
Dense(num_classes, activation='softmax')
])
Вторая (с керас. приложениями)
base_model = tf.keras.applications.ResNet50V2(input_shape=(IMAGE_H, IMAGE_W, 3), include_top=False, weights='imagenet', pooling='avg')
base_model.trainable = False
model = tf.keras.Sequential([
base_model,
Dense(num_classes, activation='softmax')
])
Оптимизатор такой же (Адам), эпохи, шаги, набор данных (обучение и проверка), скорость обучения одинакова. Но первый старт с val_accuracy около 80% и конец с точностью около 99%, второй старт с 85% val_accuracy от первой до последней эпохи, так как это переобучение. Я получаю одинаковое поведение при изменении набора данных и параметров для каждой модели.
Что я делаю не так?