在使用TFv2训练模型后,是否可以对神经网络最终层的偏置项进行调整?这是我的模型示例:
import tensorflow.keras as kerasdef 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])# 最终检查model.get_weights()[-1]