Как убрать регуляризацию из предварительно обученной модели? - PullRequest
1 голос
/ 21 июня 2019

У меня есть частично обученная модель в Керасе, и перед дальнейшим обучением я хотел бы изменить параметры для отсева, регулятора l2, гауссовского шума и т. Д. У меня есть модель, сохраненная как файл .h5, но когда я загружаю его, я не знаю, как удалить эти регуляризующие слои или изменить их параметры.Любой ключ к тому, как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

Вместо сохранения всей модели в файл .h5 вы можете сохранить веса для каждого слоя отдельно в своем собственном формате.например,

import pickle

# Create model and train ...

#save the weights for each layer in your model
network_config = {
    'layer1': layer1.get_weights(),
    'layer2': layer2.get_weights(),
    'layer3': layer3.get_weights()
}

with open('network_config.pickle', 'wb') as file:
    pickle.dump(network_config, file)

Тогда вы можете загрузить только веса для слоев, которые вы все еще используете.

with open('network_config.pickle', 'rb') as file:
    network_config = pickle.load(file)

#build new model that may be missing some layers

layer1.set_weights(network_config['layer1'])
layer3.set_weights(network_config['layer3'])
0 голосов
/ 21 июня 2019

Создайте модель с требуемыми гиперпараметрами и загрузите параметры в модель, используя load_weight().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...