Инициализация весов модели из выходных данных другой модели в keras для обучения передаче

#keras #transfer-learning

#keras #передача-обучение

Вопрос:

Я обучил архитектуру LeNet на первом наборе данных. Я хочу обучить архитектуру VGG на другом наборе данных, инициализировав веса VGG с весами, полученными из LeNet.

Все функции инициализации в keras предопределены, и я не нахожу, как их настроить. Например :

 keras.initializers.Zeros()
 

Есть идеи, как я могу установить веса?

Комментарии:

1. то есть вы просто пытаетесь установить веса определенных слоев модели в Keras?

Ответ №1:

https://keras.io/layers/about-keras-layers/

Согласно документации Keras выше:

  • layer.set_weights(weights) устанавливает веса слоя из списка массивов Numpy
  • layer.get_weights() возвращает веса слоя в виде списка массивов Numpy

Итак, вы можете сделать это следующим образом:

 model = Sequential()
model.add(Dense(32))
... building the model's layers ...

# access any nth layer by calling model.layers[n]
model.layers[0].set_weights( your_weights_here )
 

Конечно, вам нужно убедиться, что вы устанавливаете веса каждого слоя в соответствующую форму, которой они должны быть.