训练后使用 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]
是否可以在使用 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]