from keras.layers import *
from keras.models import Model
inp = Input(....)
out1 = SomeKerasLayer(...)(inp)
out2 = AnotherKerasLayer(....)(out1)
....
model = Model(inp,out2)
#above is the usual process of creating a model
#supposing layer 2 is the layer you want (you can also use names)
weights = numpy.load(...path to your saved weights)
biases = numpy.load(... path to your saved biases)
model.layers[2].set_weights([weights,biases])
2条答案
按热度按时间ttvkxqim1#
是的,是的。
您可能需要保存层的权重和偏移,而不是保存层本身,但这是可能的。
Keras还允许您保存整个模型。
假设在var
model
中有一个模型:这是一个numpy数组的列表,很可能有两个数组:你可以简单地使用
numpy.save()
来保存这两个数组,然后你可以创建一个类似的层,并给予它权重:您可以使层不可训练(必须在模型编译之前完成):
然后编译模型:
这就是一个模型,它的一层是不可训练的,它的权重和偏差是由你定义的,是从其他地方取来的。
osh3o9ms2#
是的,这是迁移学习中的常见做法,请参阅here。下面的piece_to_share可以是一层或多层。