【发布时间】:2021-11-24 19:00:34
【问题描述】:
我总共有六节课。标签 1-6。 我不确定为什么会收到以下错误消息: “索引 6 超出轴 1 的范围,大小为 6”
X_train, X_test, y_train, y_test = train_test_split(final, y, test_size=0.25, random_state=42)
print("X:", final.shape)
print("y:", y.shape)
print("Xtrain:", X_train.shape)
print("y_train:", y_train.shape)
print("X_test:", X_test.shape)
print("y_test:", y_test.shape)
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')
y_train = keras.utils.np_utils.to_categorical(y_train, num_classes)
y_test = keras.utils.np_utils.to_categorical(y_test, num_classes)
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(30, 1200, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(num_classes))
model.compile(loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy'])
history = model.fit(X_train, y_train, epochs=1, validation_data=(X_test, y_test))
----> y_train = keras.utils.np_utils.to_categorical(y_train, num_classes) IndexError:索引 6 超出轴 1 的范围,大小为 6
如果有帮助,上述形状的打印会提供以下输出:
X: (1134, 100, 1200)
y: (1134,)
Xtrain: (850, 100, 1200)
y_train: (850,)
X_test: (284, 100, 1200)
y_test: (284,)
网络的其余部分是否正确定义?
【问题讨论】:
-
试试这个
to_categorical(y_train - 1, num_classes) -
似乎工作正常。但是,我在最后一个单元格中也出现错误:“history = model.fit..” ValueError:层序贯_14 的输入 0 与层不兼容::预期 min_ndim=4,发现 ndim=3。收到的完整形状:(无、100、1200)。不知道为什么。
-
六个类不应该对应标签0-5吗?
-
好提示。我要将标签更改为 0-5(从 1-6)
标签: python tensorflow machine-learning keras