Делает модель.compile () инициализирует все веса и смещения в Keras (TensorFlow backend)?
когда я начинаю обучение модели, нет модели, сохраненной ранее. Я могу использовать model.compile()
безопасно. Теперь я сохранил модель в h5
файл для дальнейшего обучения с помощью checkpoint
.
скажите, Я хочу тренировать модель дальше. Я смущен в этот момент: могу ли я использовать model.compile()
здесь? И должен ли он быть помещен до или после model = load_model()
заявление? Если model.compile()
повторно инициализирует все веса и смещения, я должен поместить его перед model = load_model()
заявление.
после обнаружив некоторые дискуссии, мне кажется, что model.compile()
требуется только тогда, когда у меня нет модели, сохраненной ранее. После того, как я сохранил модель, нет необходимости использовать model.compile()
. Правда это или ложь? И когда я хочу предсказать с помощью обученной модели, я должен использовать model.compile()
прежде чем предсказать?
1 ответов
когда использовать?
если вы используете compile
, конечно, это должно быть после load_model()
. В конце концов, вам нужна модель для компиляции.
что значит compile
делать?
Compile определяет функции потерь, the оптимизатор и показатели. Вот и все.
Это не имеет ничего общего с весами, и вы можете скомпилировать модель столько раз, сколько хотите, не вызывая любая проблема к pretrained Весам.
вам нужна скомпилированная модель железнодорожный (потому что обучение использует функцию потерь и оптимизатор). Но нет необходимости составлять модель для прогнозирования.
вам нужно использовать compile более одного раза?
только если:
- вы хотите изменить один из этих:
- функции потерь
- оптимизатор скорости / обучение
- показатели
- вы загрузили (или создали) модель, которая еще не скомпилирована. Или ваш метод load/save не учитывал предыдущую компиляцию.
последствия компиляции снова:
Если вы снова скомпилируете модель, вы потеряете оптимизатор государства.
Это означает, что ваше обучение будет страдать немного в начале, пока он не регулирует скорость обучения , мгновения и т. д. Но нет абсолютно никакого ущерба для Весов (если, конечно, ваша начальная скорость обучения настолько велика, что первый шаг обучения дико меняет тонко настроенные веса).