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
)
模型摘要
谁能帮助我如何在上面的代码中设置权重?提前致谢。
解决方案
您可以使用set_weights
方法来做到这一点。
例如,如果你想设置你的权重LSTM Layer
,可以使用它来访问model.layers[0]
,如果你Custom Weights
是,比如说在一个数组中,命名为my_weights_matrix
,那么你可以Custom Weights
使用下面显示的代码将你设置为第一层(LSTM):
model.layers[0].set_weights([my_weights_matrix])
如果您不希望在训练期间修改权重,则必须使用代码冻结该层,model.layers[0].trainable = False
.
如果您遇到任何其他问题,请告诉我,我很乐意为您提供帮助。
希望这可以帮助。快乐学习!
推荐阅读
- tensorflow - 如何将 .hdf5 转换为 .h5 keras 模型
- c - 闹钟在 C 语言中没有给出预期的输出
- android - 为 TableLayout 设置正确的参数
- javascript - 由于访问控制检查,XMLHttpRequest 无法加载 https://localhost:8585/pay
- vue.js - 如何用笑话模拟回调
- api - 如何在同一页面内调用不同的api链接?
- java - 使用注解时未调用@Aspect
- css - 为什么要折叠布局?页面放大或缩小时
- c++ - C ++ wxWidgets遍历桌面屏幕截图中的像素
- python - 如何仅在更新所有项目后打印字典键值对?