是的。
您可能必須保存圖層的權重和偏差,而不是保存圖層本身,但這是可能的。
Keras也允許你save entire models。
假設你在var model
有一個模型:
weightsAndBiases = model.layers[i].get_weights()
這是numpy的陣列的列表,很可能與兩個數組:重和偏見。你可以簡單地使用numpy.save()
保存這兩個數組,以後你可以創建一個類似的層,並給它的權重:
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])
可以使層untrainable(必須在模型編譯之前完成):
model.layers[2].trainable = False
然後編譯模型:
model.compile(.....)
而且你去那裏,一個模型,其一層爲untrainable並具有由您定義的權重和偏見,從s拍攝其他地方。