#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)
устанавливает веса слоя из списка массивов Numpylayer.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 )
Конечно, вам нужно убедиться, что вы устанавливаете веса каждого слоя в соответствующую форму, которой они должны быть.