gpt4 book ai didi

python - keras.utils.to_categorical() - 名称 keras 未定义

转载 作者:行者123 更新时间:2023-11-28 19:38:53 28 4
gpt4 key购买 nike

我正在从 Keras website 运行测试脚本用于多层感知器 (MLP) 的多类 softmax 分类。在 jupyter notebook 中运行时出现错误“名称‘keras’未定义”。这可能是一个我不感兴趣的简单 python 语法问题,但是这段代码直接来自 keras,所以我希望它应该按原样工作。我已经使用 keras 运行了其他神经网络,所以我很确定我已经安装了所有东西(使用 anaconda 安装了 keras)。谁能帮忙?我在底部包含了代码和错误。谢谢!

from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.optimizers import SGD

# Generate dummy data
import numpy as np
x_train = np.random.random((1000, 20))
y_train = keras.utils.to_categorical(np.random.randint(10, size=(1000, 1)), num_classes=10)
x_test = np.random.random((100, 20))
y_test = keras.utils.to_categorical(np.random.randint(10, size=(100, 1)), num_classes=10)

model = Sequential()
# Dense(64) is a fully-connected layer with 64 hidden units.
# in the first layer, you must specify the expected input data shape:
# here, 20-dimensional vectors.
model.add(Dense(64, activation='relu', input_dim=20))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
optimizer=sgd,
metrics=['accuracy'])

model.fit(x_train, y_train,
epochs=20,
batch_size=128)
score = model.evaluate(x_test, y_test, batch_size=128)

这是错误信息:

NameError                                 Traceback (most recent call last)
<ipython-input-1-6d8174e3cf2a> in <module>()
6 import numpy as np
7 x_train = np.random.random((1000, 20))
----> 8 y_train = keras.utils.to_categorical(np.random.randint(10, size=(1000, 1)), num_classes=10)
9 x_test = np.random.random((100, 20))
10 y_test = keras.utils.to_categorical(np.random.randint(10, size=(100, 1)), num_classes=10)

NameError: name 'keras' is not defined

最佳答案

from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.optimizers import SGD

从上面看,您只在 keras 中导入了以下子模块

  • keras.models
  • keras.layers
  • keras.optimizers

但是这样不会像keras那样自动导入外层模块或其他子模块 keras.utils

所以,你可以做任何一个

import keras
import keras.utils
from keras import utils as np_utils

但是 from keras import utils as np_utils 是使用最广泛的。

特别是 import keras 不是一个好的做法,因为导入高级模块不一定会导入它的子模块(尽管它在 Keras 中有效)

例如,

导入 urllib不一定要导入 urllib.request 因为如果有这么多大子模块,每次都导入它的所有子模块是低效的。

编辑:随着 Tensorflow 2 的引入,keras 子模块(例如 keras.utils)现在应该导入为

from tensorflow.keras import utils as np_utils

关于python - keras.utils.to_categorical() - 名称 keras 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44054082/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com