Каков правильный способ точной настройки предварительно обученной модели в пользовательском наборе данных?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Каков правильный способ точной настройки предварительно обученной модели в пользовательском наборе данных?

Сообщение Anonymous »

Я обучаю модель двоичной классификации, используя Python, Keras, Tensorflow и MobileNetV2 в качестве базовой модели, а затем добавляю к ней свои собственные слои. Но я не уверен, как правильно точно настроить модель, потому что я пробовал использовать InceptionV3 и VGG16 вместо MobileNetV2, но точность и потери всех трех почти одинаковы, в настоящее время код архитектуры моей модели: это:

Код: Выделить всё

# Model Architecture
def build_spatiotemporal_model():
mobilenetv2 = MobileNetV2(include_top=False, weights='imagenet', input_shape=(IMG_SIZE, IMG_SIZE, 3))
mobilenetv2.trainable = False

#for vgg
#vgg16 = VGG16(include_top=False, weights='imagenet', input_shape=(IMG_SIZE, IMG_SIZE, 3))
#vgg16.trainable = False

#for inception
#inceptionv3 = InceptionV3(include_top=False, weights='imagenet', input_shape=(IMG_SIZE, IMG_SIZE, 3))
#inceptionv3.trainable = False

model = Sequential([
InputLayer(shape=(FRAME_COUNT, IMG_SIZE, IMG_SIZE, 3)),

TimeDistributed(mobilenetv2),
TimeDistributed(MaxPooling2D(pool_size=(2, 2))),

TimeDistributed(BatchNormalization()),

Bidirectional(ConvLSTM2D(256, (3, 3), padding='same', return_sequences=True)),

BatchNormalization(),

MaxPooling3D(pool_size=(1, 2, 2)),

Flatten(),
Dense(256, activation='relu'),

Dropout(0.6),

Dense(1, activation='sigmoid')
])

return model

model = build_spatiotemporal_model()
model.compile(optimizer=Adam(learning_rate=LEARNING_RATE), loss='binary_crossentropy', metrics=['accuracy'])
Поскольку производительность всех трех одинакова, я предполагаю, что делаю что-то не так, чего не знаю.
А также, если я планирую это сделать точную настройку путем размораживания некоторых слоев. Каков правильный способ?
  • Сначала обучите модель в течение нескольких эпох (скажем, 10), заморозив всю базу слои модели. Затем разморозьте несколько слоев базовой модели, перекомпилируйте и обучите в течение нескольких эпох.
  • Сначала разморозьте несколько слоев базовой модели, скомпилируйте и обучите один раз.< /p>
Так какой из способов 1 или 2 правильный?
Спасибо за ваше помогите заранее.

Подробнее здесь: https://stackoverflow.com/questions/791 ... om-dataset
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»