3 votes

Tensorflow - TypeError : impossible de récupérer l'objet '_thread.lock'.

J'utilise Tensorflow 2.7.0 pour construire un modèle très basique avec les couches suivantes :

base_model = densenet.DenseNet121(weights='imagenet',
                                      include_top=False,
                                      input_shape=(224, 224, 3), pooling='avg')

predictions = tf.keras.layers.Dense(1,
                                        activation='sigmoid',
                                        name='predictions')(base_model.output)

_model = tf.keras.Model(inputs=base_model.input, outputs=predictions)

_model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=1e-2),
                   loss='binary_crossentropy',
                   metrics=['accuracy'])

Avec les rappels suivants :

csv_logger = tf.keras.callbacks.CSVLogger(csv_logger_path)

plateau = tf.keras.callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.1, patience=5)

db_logger = DAGsHubLogger(metrics_path=os.path.join(os.getcwd(), *model_const.METRICS_PATH),
                              hparams_path=os.path.join(os.getcwd(), *model_const.PARAMS_PATH))

model_checkpoint = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_filepath,
                                                          monitor='val_accuracy',
                                                          mode='max',
                                                          save_best_only=True)

Cependant, lorsque je l'exécute, le message suivant apparaît et le terminal ne répond plus : TypeError: cannot pickle '_thread.lock' object

J'ai vérifié ce problème et j'ai trouvé ceci numéro et ceci question mais d'après ce que je comprends, les solutions proposées ne peuvent pas s'appliquer à mon modèle.

J'apprécierais beaucoup toute piste.

0voto

Mcanv Points 1

Avec le chargement du modèle par le gpu, la mémoire du gpu peut avoir débordé. Pouvez-vous essayer un modèle plus léger comme le Resnet34.

altenative vérifie ceci commentaire

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X