Если вы столкнулись с такими ошибками, как Modulenotfounderror: нет модуля с именем «tensorflow.keras.utils.np_utils», я объясню, как устранить эту ошибку с помощью тензорного потока и платформы Keras.

tensorflow.keras.utils.np_utils

Ошибка Modulenotfounderror no Module с именем «tensorflow.keras.utils.np_utils» означает, что вы пытаетесь импортировать модуль tensorflow.keras.utils.np_utils, который либо не существует, либо был перемещен в используемую вами версию Tensorflow.

Если вы используете TensorFlow версии 1.x, вы можете не получить эту ошибку, но если вы используете тот же код и обновляете TensorFlow до последней версии, например 2.x, вы получите ошибку.

Причина этой ошибки заключается в том, что в версии tensorflow 2.x многие модули или функции были реорганизованы или перемещены, поэтому способ их импорта изменился по сравнению с версией tensorflow 1.x.

np_utils используется для категориального кодирования, например преобразования векторов классов в двоичные матрицы классов.

Например, вы получите сообщение об ошибке, если попытаетесь импортировать модуль, как показано ниже.

import tensorflow.keras.utils.np_utils

С именем «tensorflow.keras.utils.np_utils»

Теперь вы можете увидеть ошибку. Приведенный выше импорт является лишь примером того, как может возникнуть ошибка. Итак, если вы получаете ту же ошибку, существует два подхода к ее устранению.

Начнем с первого: используйте функцию to_categorical непосредственно из tensorflow.keras.utils, а не из np_utils.

Небольшой пример приведен ниже.

from tensorflow.keras.utils import to_categorical

y_data = [2, 5, 7, 1]
y_binary_data = to_categorical(y_data)
print(y_binary_data)

С именем «tensorflow.keras.utils.np_utils»

Успешно импортировал to_categorical и преобразовал класс в категориальный.

Далее этот подход предполагает использование библиотеки Keras. Опять же, не используйте np_utils напрямую, импортируйте to_categorical из keras.utils, как показано ниже.

from keras.utils import to_categorical
y_class = [2, 5, 7, 1]
y_binary = to_categorical(y_class)
print(y_binary)

Импортирт метода to_catgorical() из keras.utils

Импортирован метод to_catgorical() из keras.utils вместо использования np_utils. Всегда устанавливайте последнюю версию платформы, например TensorFlow, и в случае возникновения ошибки проверьте, не устарел ли метод или модуль.

Синтаксис приведен ниже.

tf.keras.utils.to_categorical(
    y, num_classes=None, dtype='float32'
)
  • Он состоит из нескольких параметров
    • y: целые числа от 0 до num. Классы – 1 находятся в структуре, напоминающей массив, которая будет преобразована в матрицу.
    • num_classes: количество объединенных классов. Если None, это подразумевается как max(y) + 1.
    • dtype: по умолчанию он принимает float32 и определяет тип данных.

Теперь давайте посмотрим на пример:

import tensorflow as tf 
from tensorflow.keras.utils import to_categorical
based_code = tf.keras.utils.to_categorical([1, 0, 2, 3], num_classes=4)
b_code = tf.constant(based_code, shape=[4, 4])
print(b_code)

Импорт tensorflow.keras.utils в to_categorical

В следующем коде мы сначала импортировали импорт tensorflow.keras.utils в to_categorical. Затем объявили переменную «based_code» и использовали функцию tf.keras.utils.to_categorical(), преобразующую заданный список значений в двоичную матрицу.

Заключение

Используя два метода, вы узнали, как устранить ошибку Modulenotfounderror no Module с именем «tensorflow.keras.utils.np_utils».

В первом методе вы узнали, как использовать TensorFlow для устранения этой ошибки, импортировав функцию to_categorical() из tensorflow.keras.utils.

Затем во втором методе функция to_categorical() была импортирована из keras.utils, и класс был преобразован в двоичные данные.

Добавить комментарий