gpt4 book ai didi

python-3.x - 是否可以保存经过训练的层以在 Keras 上使用层?

转载 作者:行者123 更新时间:2023-11-30 08:27:23 24 4
gpt4 key购买 nike

我没有使用过 Keras,我正在考虑是否使用它。

我想保存经过训练的图层以供以后使用。例如:

  1. 我训练一个模型。
  2. 然后,我获得一个经过训练的层t_layer
  3. 我有另一个要训练的模型,其中包含 layer1layer2layer3
  4. 我想使用 t_layer 作为 layer2 并且不更新该层(即 t_layer 不再学习)。

这可能是一个奇怪的尝试,但我想尝试一下。这在 Keras 上可能吗?

最佳答案

是的,确实如此。

您可能必须保存图层的权重和偏差,而不是保存图层本身,但这是可能的。

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])

您可以使层不可训练(必须在模型编译之前完成):

model.layers[2].trainable = False    

然后编译模型:

model.compile(.....)    

这就是一个模型,其一层是不可训练的,并且具有由您定义的从其他地方获取的权重和偏差。

关于python-3.x - 是否可以保存经过训练的层以在 Keras 上使用层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44644800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com