如何从预先训练的模型中删除正则化?

时间:2019-06-21 15:20:04

标签: python python-3.x keras regularized

我在Keras中有一个部分训练的模型,在进一步训练之前,我想更改辍学参数,l2正则化器,高斯噪声等参数。我将模型另存为{{1} }文件,但是当我加载它时,我不知道如何删除这些正则化图层或更改其参数。关于如何执行此操作的任何线索?

2 个答案:

答案 0 :(得分:0)

使用所需的超参数创建模型,然后使用load_weight()将参数加载到模型中。

答案 1 :(得分:0)

除了将整个模型保存到.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'])