如何在图层中设置自定义权重?

BSP*_*BSP 6 neural-network deep-learning keras tensorflow

我正在研究如何在图层中设置自定义权重。

下面是我使用的代码

batch_size = 64

input_dim = 12

units = 64
output_size = 1  # labels are from 0 to 9

# Build the RNN model
def build_model(allow_cudnn_kernel=True):


    lstm_layer = keras.layers.RNN(
            keras.layers.LSTMCell(units), input_shape=(None, input_dim)) 


    model = keras.models.Sequential(
        [
            lstm_layer,
            keras.layers.BatchNormalization(),
            keras.layers.Dense(output_size),
        ]
    )
    return model
model = build_model()

model.compile(
    loss=keras.losses.MeanSquaredError(),
    optimizer="Adam",
    metrics=["accuracy"],
)


model.fit(
    x_train, y_train, validation_data=(x_val, y_val), batch_size=batch_size, epochs=15
)
Run Code Online (Sandbox Code Playgroud)

模型概要

在此输入图像描述

谁能帮我如何在上面的代码中设置权重?提前致谢。

小智 8

您可以使用set_weights方法来做到这一点。

例如,如果您想设置 的权重,LSTM Layer可以使用以下命令访问它:model.layers[0]Custom Weightsmy_weights_matrixCustom Weights

model.layers[0].set_weights([my_weights_matrix])
Run Code Online (Sandbox Code Playgroud)

如果您不希望在训练期间修改权重,则必须使用代码冻结该层model.layers[0].trainable = False

如果您遇到任何其他问题,请告诉我,我很乐意为您提供帮助。

希望这可以帮助。快乐学习!