J'essaie d'utiliser BatchNorm dans Keras. La précision de l'entraînement augmente avec le temps. De 12% à 20%, lentement mais sûrement. La précision du test diminue cependant de 12% à 0%. La base de référence aléatoire est de 12%. Je suppose que cela est dû à la couche batchnorm (la suppression de la couche batchnorm donne une précision de test d'environ 12%), ce qui n'initialise peut-être pas suffisamment les paramètres gamma et beta. Dois-je considérer quelque chose de spécial lors de l'application de batchnorm? Je ne comprends pas vraiment quoi d'autre aurait pu mal tourner. Je le modèle suivant:Keras BatchNorm: La précision de l'entraînement augmente tandis que la précision des tests diminue
modèle= séquentiel()
model.add(BatchNormalization(input_shape=(16, 8)))
model.add(Reshape((16, 8, 1)))
#1. Conv (64 filters; 3x3 kernel)
model.add(default_Conv2D())
model.add(BatchNormalization(axis=3))
model.add(Activation('relu'))
#2. Conv (64 filters; 3x3 kernel)
model.add(default_Conv2D())
model.add(BatchNormalization(axis=3))
model.add(Activation('relu'))
...
#8. Affine (NUM_GESTURES units) Output layer
model.add(default_Dense(NUM_GESTURES))
model.add(Activation('softmax'))
sgd = optimizers.SGD(lr=0.1)
model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
default_Conv2D et default_Dense sont définies comme suit:
def default_Conv2D():
return Conv2D(
filters=64,
kernel_size=3,
strides=1,
padding='same',
# activation=None,
# use_bias=True,
# kernel_initializer=RandomNormal(mean=0.0, stddev=0.01, seed=None), #RandomUniform(),
kernel_regularizer=regularizers.l2(0.0001),
# bias_initializer=RandomNormal(mean=0.0, stddev=0.01, seed=None), # RandomUniform(),
# bias_regularizer=None
)
def default_Dense(units):
return Dense(
units=units,
# activation=None,
# use_bias=True,
# kernel_initializer=RandomNormal(mean=0.0, stddev=0.01, seed=None),#RandomUniform(),
# bias_initializer=RandomNormal(mean=0.0, stddev=0.01, seed=None),#RandomUniform(),
kernel_regularizer=regularizers.l2(0.0001),
# bias_regularizer=None
)
Content que vous l'ayez trouvé! – Wontonimo