Оценка времени как критерия завершения обучения последовательной нейронной сети KerasPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Оценка времени как критерия завершения обучения последовательной нейронной сети Keras

Сообщение Гость »


Я разработал модель нейронной сети, показанную ниже, которая имеет два скрытых слоя с 19 узлами. Первоначальная активация — «тан».

Как видите, у меня было два первоначальных критерия обратного вызова. Первый из них основан на EarlyStopping, если точность не меняется в течение 10 последовательных эпох, а второй (time_callback) рассчитывает прошедшее время в каждой эпохе.

После запуска этой модели у меня есть общее время, прошедшее до достижения последней эпохи (назовем это «t»).

Теперь вопрос в том, что мне нужно снова запустить модель, но на этот раз использовать, например, «relu» в качестве активации. Однако мне придется удалить «es» и другие критерии обратного вызова и вместо этого установить рассчитанное время «t» в качестве критерия остановки. В другом мире вторая модель с функцией «relu» должна продолжать обучение только до времени «t», а затем останавливается!

Кто-нибудь знает, как это настроить?!
класс TimeHistory(keras.callbacks.Callback): def on_train_begin(self, logs={}): self.times = [] def on_epoch_begin(self, пакет, журналы={}): self.epoch_time_start = time.time() def on_epoch_end(self, пакет, журналы={}): self.times.append(time.time() - self.epoch_time_start) модель = Последовательный() model.add(Dense(19, input_shape=[X_train.shape[1]], активация='tanh', name="layer1")) model.add(Dense(19, активация='tanh', name="layer2")) model.add(Dense(1, active='sigmoid', name="Output")) model.compile(loss='binary_crossentropy',оптимизатор='адам', метрики=['точность']) time_callback = История времени() es = EarlyStopping(monitor='val_accuracy', mode='max', verbose=1, терпение=10) # подходит для сети история = model.fit(X_train, y_train, валидация_сплит=0,3, эпохи=1000, размер_пакета = 10, перемешать = Ложь, подробный = 1, обратные вызовы=[es,time_callback]) раз = time_callback.times #Затем мы переходим ко второй модели с функцией relu модель2 = Последовательный() model2.add(Dense(19, input_shape=[X_train.shape[1]], active='relu', name="layer1")) model2.add(Dense(19, активация='relu', name="layer2")) model2.add(Dense(1,activation='sigmoid', name="Output")) model2.compile(loss='binary_crossentropy',оптимизатор='адам', метрики=['точность']) история2 = model2.fit(X_train, y_train, валидация_сплит=0,3, эпохи=100, размер_пакета = 10, перемешать = Ложь, подробный = 1, обратные вызовы =??????????????????)
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ, комментарий, отзыв

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как загрузить изображения 3D-МРТ в изображения глубокого обучения?
    Гость » » в форуме Python
    0 Ответы
    1 Просмотры
    Последнее сообщение Гость

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