训练后使用 Tensorflow v2 调整神经网络最后一层的偏差项

Adjust Bias Term in Final Layer of Neural Net Using Tensorflow v2 after Training

是否可以在使用 TFv2 训练模型后调整神经网络最后一层的偏置项?这是我的模型示例:

import tensorflow.keras as keras

def simple_model(input_size, 
                 layer_1_size,
                 layer_2_size,
                 number_of_classes
                 ):

input_layer = keras.layers.Input(input_size)

layer_1 = keras.layers.Dense(layer_1_size, activation='relu')(input_layer)
layer_2 = keras.layers.Dense(layer_2_size, activation='relu')(layer_1)
output_layer = keras.layers.Dense(number_of_classes, activation='softmax')(layer_2)

model = keras.models.Model(inputs=input_layer, outputs=output_layer)
return model

我想对上面的模型进行本质上的训练,并在训练模型之后但在使用模型进行预测之前对输出层中的偏差项进行调整。

这是用零数组修改网络最后偏差的方法

model.fit(...)

new_bias = np.zeros(model.output.shape[-1])
model.set_weights(model.get_weights()[:-1] + [new_bias])

# final check
model.get_weights()[-1]