Ajuster le terme de polarisation dans la couche finale du réseau neuronal à l'aide de Tensorflow v2 après l'entraînement


prix de l'ombre

Est-il possible de faire des ajustements au terme de biais dans la dernière couche d'un Neural Net après avoir entraîné le modèle à l'aide de TFv2? Voici un exemple de mon modèle:

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

Je voudrais essentiellement entraîner le modèle ci-dessus et effectuer un ajustement du terme de biais dans la couche de sortie une fois le modèle entraîné, mais avant d'utiliser le modèle pour faire des prédictions.

Marco Cerliani

C'est ainsi que vous pouvez modifier le dernier biais du réseau avec un tableau de zéros

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]

Articles connexes