我在第一个数据集上训练了 LeNet 架构。我想通过使用从 LeNet 获得的权重初始化 VGG 的权重,在另一个数据集上训练 VGG 架构。
keras 中的所有初始化函数都是预定义的,我找不到如何自定义它们。例如 :
keras.initializers.Zeros()
知道如何设置权重吗?
我在第一个数据集上训练了 LeNet 架构。我想通过使用从 LeNet 获得的权重初始化 VGG 的权重,在另一个数据集上训练 VGG 架构。
keras 中的所有初始化函数都是预定义的,我找不到如何自定义它们。例如 :
keras.initializers.Zeros()
知道如何设置权重吗?
https://keras.io/layers/about-keras-layers/
根据上面的 Keras 文档:
layer.set_weights(weights)
从 Numpy 数组列表中设置层的权重layer.get_weights()
将层的权重作为 Numpy 数组的列表返回因此,您可以按以下方式执行此操作:
model = Sequential()
model.add(Dense(32))
... building the model's layers ...
# access any nth layer by calling model.layers[n]
model.layers[0].set_weights( your_weights_here )
当然,您需要确保将每一层的权重设置为应有的适当形状。