Bonjour, J’essaie de réaliser le tutoriel suivant sur le site de keras.
J’ai téléchargé le code source sur github:
J’en suis à la partie "Two options to preprocess the data", cependant, contrairement à l’auteur qui propose 2 solutions et qui exécute la première, j’aimerais éxecuter la seconde, j’ai donc modifié cette partie du code de la manière suivante:
def make_model(input_shape, num_classes):
#inputs = keras.Input(shape=input_shape)
# Image augmentation block
#x = data_augmentation(inputs)
augmented_train_ds = train_ds.map(
lambda x, y: (data_augmentation(x, training=True), y))
# Entry block
x = layers.experimental.preprocessing.Rescaling(1.0 / 255)(x)
x = layers.Conv2D(32, 3, strides=2, padding="same")(x)
x = layers.BatchNormalization()(x)
x = layers.Activation("relu")(x)
x = layers.Conv2D(64, 3, padding="same")(x)
x = layers.BatchNormalization()(x)
x = layers.Activation("relu")(x)
previous_block_activation = x # Set aside residual
for size in [128, 256, 512, 728]:
x = layers.Activation("relu")(x)
x = layers.SeparableConv2D(size, 3, padding="same")(x)
x = layers.BatchNormalization()(x)
x = layers.Activation("relu")(x)
x = layers.SeparableConv2D(size, 3, padding="same")(x)
x = layers.BatchNormalization()(x)
x = layers.MaxPooling2D(3, strides=2, padding="same")(x)
# Project residual
residual = layers.Conv2D(size, 1, strides=2, padding="same")(
previous_block_activation
)
x = layers.add([x, residual]) # Add back residual
previous_block_activation = x # Set aside next residual
x = layers.SeparableConv2D(1024, 3, padding="same")(x)
x = layers.BatchNormalization()(x)
x = layers.Activation("relu")(x)
x = layers.GlobalAveragePooling2D()(x)
if num_classes == 2:
activation = "sigmoid"
units = 1
else:
activation = "softmax"
units = num_classes
x = layers.Dropout(0.5)(x)
outputs = layers.Dense(units, activation=activation)(x)
return keras.Model(inputs, outputs)
Mais j’obtiens l’erreur suivante lors du lancement du programme:
x = layers.experimental.preprocessing.Rescaling(1.0 / 255)(x) UnboundLocalError: local variable 'x' referenced before assignment
Je ne suis même pas sûr d’avoir fait le changement correctement, pourriez vous m’expliquer comment passer de l’option 1 à l’option 2 s’il vous plait ?
Merci d’avance pour votre aide
+0
-0