Вопрос:
Ниже изображения показана часть кода для обучения простой глубокой CNN (сверточная нейронная сеть), в наборе данных небольших изображений CIFAR. Я импортировал, импортировал keras.utils (выделено красным)
Тем не менее, я все еще получаю следующую ошибку:
Лучший ответ:
Вы можете импортировать to_categorical в keras, как показано ниже.
from keras.utils.np_utils import to_categorical
Его можно использовать, как показано ниже.
Y = [1, 2, 1, 2, 3, 4, 1] Y = to_categorical(Y) print(Y) # output array([[0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.], [0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.], [0., 0., 0., 1., 0.], [0., 0., 0., 0., 1.], [0., 1., 0., 0., 0.]], dtype=float32) Ответ №1
Попробуйте импортировать np_utils из keras.utils и используйте это
from keras.utils import np_utils np_utils.to_categorical(y_train, num_classes) Ответ №2
Вы выполняете неправильную практику импорта модулей python. Вы должны пойти на любую из следующих практик:
от keras.utils.np_utils import to_categorical
y_train = to_categorical (y_train, num_classes)
y_test = to_categorical (y_test, num_classes)
OR
от keras.utils import np_utils
y_train = np_utils.to_categorical (y_train, num_classes)
y_test = np_utils.to_categorical (y_test, num_classes)
Вы можете вызывать только импортированный модуль/функцию. Скажем, если вы используете,
от keras.utils.np_utils import to_categorical
это означает, что вы импортируете to_categorical функцию из пакета keras.utils.np_utils. Таким образом, вы можете вызвать функцию to_categorical. Но вы пытаетесь вызвать keras.utils.to_categorical, который не импортируется. Кроме того, вы не можете напрямую импортировать to_categorical из utils, не импортируя сначала np_utils.
Правило большого пальца: если вы набираете из X import Y, это означает, что вы должны вызывать Y() как есть, а не XY(). Выполнение этого является излишним, а также неправильным.
Совет. Вам не нужно указывать num_classes как параметр в to_categorical. Интерпретатор Python разумно сделает это за вас.