J'ai essayé d'exécuter un exemple de code (hébergé sur keras.io) concernant la tâche de reconnaissance de l'écriture manuscrite. En jouant avec le code, j'ai rencontré un problème lié à TensorFlow. Veuillez voir l'extrait de code correspondant ci-dessous.
def preprocess_image(image_path, img_size=(image_width, image_height)):
image = tf.io.read_file(image_path)
image = tf.image.decode_png(image, 1)
image = distortion_free_resize(image, img_size)
image = tf.cast(image, tf.float32) / 255.0
return image
def vectorize_label(label):
label = char_to_num(tf.strings.unicode_split(label, input_encoding="UTF-8"))
length = tf.shape(label)[0]
pad_amount = max_len - length
label = tf.pad(label, paddings=[[0, pad_amount]], constant_values=padding_token)
return label
def process_images_labels(image_path, label):
image = preprocess_image(image_path)
label = vectorize_label(label)
return {"image": image, "label": label}
def prepare_dataset(image_paths, labels):
dataset = tf.data.Dataset.from_tensor_slices((image_paths, labels)).map(
process_images_labels, num_parallel_calls=AUTOTUNE
)
return dataset.batch(batch_size).cache().prefetch(AUTOTUNE)
train_ds = prepare_dataset(train_img_paths, train_labels_cleaned)
validation_ds = prepare_dataset(validation_img_paths, validation_labels_cleaned)
test_ds = prepare_dataset(test_img_paths, test_labels_cleaned)
- Voici le code de Reconnaissance de l'écriture manuscrite et lorsque j'ajoute les 3 dernières lignes, j'obtiens cette erreur :
OperatorNotAllowedInGraphError : l'utilisation d'une
tf.Tensor
comme un Pythonbool
n'est pas autorisé dans l'exécution du graphique. Utilisez l'exécution Eager ou décorez cette fonction avec @tf.function.
- J'ai vu certaines des solutions sur stack-overflow mais je n'ai pas réussi à les faire fonctionner. ( Certains ont dit que je devrais rétrograder mon tensorflow à 1x mais je veux utiliser 2x).
Merci !