Ошибка атрибута: модуль ‘tensorflow_core.keras.layers.experimental.preprocessing’ не имеет атрибута ‘RandomFlip’

#tensorflow2.x

#tensorflow2.x

Вопрос:

В этом коде я использую Tensorflow 2.1.0

 data_augmentation = tf.keras.Sequential([
    tf.keras.layers.experimental.preprocessing.RandomFlip('horizontal'),
    tf.keras.layers.experimental.preprocessing.RandomRotation(0.3)
]) 
  

Я нахожу эту ошибку:

 AttributeError: module 'tensorflow_core.keras.layers.experimental.preprocessing' has no attribute 'RandomFlip'
  

Итак, как я могу изменить его, не меняя версию tensorflow

Ответ №1:

Чтобы ваш код работал должным образом, сначала Tensorflow должен быть обновлен до последней версии

 ! pip install tensorflow --upgrade
  

Если вы ищете решение в TF 2.1.0, то доступны два варианта

Первое решение: tf.image.random_flip_left_right (переворот по горизонтали)

 tf.image.random_flip_left_right(
    image, seed=None)
  

Второе решение: tf.keras.preprocessing.image.Генератор изображений

 tf.keras.preprocessing.image.ImageDataGenerator(
   rotation_range=30, horizontal_flip=True)
  

Комментарии:

1. Обновление вашего TensorFlow с помощью команды pip — это всегда первое, что вы должны попробовать. Сработало для меня!

Ответ №2:

 ! pip install tensorflow --upgrade --user
  

--user опция может помочь вам без проблемы с разрешением

Ответ №3:

Добавьте эту строку в раздел импорта (конечно, после import tensorflow as tf ) tf.config.experimental_run_functions_eagerly(True)

Почти любой tf.keras.layers.experimental.preprocessing.SomeClass в перечисленных классов здесь, должно работать.

Но необходимо выполнить проверку работоспособности с помощью результатов построения графика.