Возможно ли в Керасе, чтобы обучение каждого или некоторых выходов в многовыводном обучении начиналось в разные эпохи? Например, один из выходов принимает на вход некоторые другие выходы. Но эти результаты в начале довольно преждевременны, и это приводит к огромным вычислительным нагрузкам на модель. Этот вывод, который я хотел бы, чтобы его обучение было отложено на некоторое время позже, представляет собой настраиваемый слой, который должен применять некоторые операции обработки изображения к своему входу, который представляет собой изображение, сгенерированное другим выходом, но в начале это сгенерированное изображение совершенно бессмысленно, Я думаю, что для первых эпох применять этот пользовательский слой просто пустая трата времени. Есть ли способ сделать это? Так же, как у нас есть весовые коэффициенты для потерь каждого выхода, есть ли у нас разные исходные точки для расчета потерь каждого выхода?
Обучение различным результатам в разные эпохи
Ответы (1)
- Создайте модель, которая не содержит более поздних выходных данных.
- Обучите эту модель до нужной вам степени.
- Создайте новую модель, которая включает в себя старую модель.
- Скомпилируйте новую модель с новыми функциями потерь, которые вы хотите.
- Обучите эту модель.
Чтобы уточнить шаг 3: модели Keras можно использовать как слои в функциональном API Keras.
Вы можете построить нормальную модель следующим образом:
input = Input((100,))
x = Dense(50)(input)
x = Dense(1, activation='sigmoid')(x)
model = Model(input, x)
Однако, если у вас есть другая стандартная модель Keras, ее можно использовать так же, как и любой другой слой. Например, если у нас есть модель (созданная с помощью Sequential()
, Model()
или keras.models.load_model()
) с именем model1
, мы можем поместить ее следующим образом:
input = Input((100,))
x = model1(input)
x = Dense(1, activation='sigmoid')(x)
model = Model(input, x)
Это было бы эквивалентно добавлению каждого слоя в model1
по отдельности.
person
The Guy with The Hat
schedule
08.10.2019
Я подумал об использовании весов обученной модели без последнего вывода и использовании их в новой модели. Вы имеете в виду это? Или я загружаю эту модель и подключаю ее ко входу последнего слоя? Благодарю вас!
- person Hamed; 09.10.2019
@Hamed Загрузите модель и подключите ее к любым выходам/входам, которые вы хотите. Смотрите мою правку.
- person The Guy with The Hat; 09.10.2019