在训练期间控制 keras.layer 的权重

时间:2021-02-23 05:36:24

标签: tensorflow keras

假设我有以下模型(为了简单起见,我删除了参数):

inputs = keras.Input(shape=(,,))
layer_1 =  layers.Conv2D()(inputs)
layer_2 = layers.AveragePooling2D()(layer_1)
layer_3 = layers.Conv2D()(layer_2)
flatten = layers.Flatten()(layer_3)
outputLayer = layers.Dense()(flatten)
model = keras.Model(inputs= (inputs), outputs=(outputLayer))
model.compile()
hist = model.fit()

如何控制特定层的权重(例如:我想在每次批量训练期间向权重添加噪声)。

我非常感谢任何形式的帮助(解释、示例、来源)

1 个答案:

答案 0 :(得分:0)

您可以使用 get_weights() - https://keras.io/api/layers/base_layer/#get_weights-methodset_weights()tf.keras.layers.layer 方法。

我要么使用自定义循环(请参阅 https://keras.io/guides/writing_a_training_loop_from_scratch/),要么使用 fit() 自定义 train_step()(请参阅 https://keras.io/guides/customizing_what_happens_in_fit/

相关问题