python-3.x - 检查目标时出错:预期 dense_10 的形状为 (1,) 但得到的数组的形状为 (10,)
问题描述
有人可以指导我解决这个问题,为什么我会收到这个错误。提前致谢
当我将标签更改为 1 或 0 时,它起作用了。但现在我试图获得更具体的结果,所以我根据类别更改了标签,即 0,1....9。共10类。
代码
`print (train.shape) #when read the .csv file
print (test.shape) #when read the .csv file
y_train = train[:,0] #assign train labels
y_test = test[:,0] #assign test labels
#reshaping
X_train = train[:, 1:].reshape(train.shape[0], 13, 3, 1)
X_test = test[:, 1:].reshape(test.shape[0], 13, 13, 1)
input_shape = (13, 3, 1)
# convert class vectors to binary class matrices
y_train = keras.utils.to_categorical(y_train, 10)
y_test = keras.utils.to_categorical(y_test, 10)
print (X_train.shape)
print (y_train.shape)
print (X_test.shape)
print (y_test.shape)
model = Sequential()
model.add(Conv2D(32, kernel_size=(2, 2), activation='relu',
input_shape=input_shape))
model.add(Flatten())
model.add(Dense(1000, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))
model.fit(X_train, y_train,
batch_size=128,
epochs=10,
verbose=1,
validation_data=(X_test, y_test)) #error in this line`
输出
(82332, 40) #when read the .csv file
(175341, 40) #when read the .csv file
#reshaped
(82332, 13, 3, 1)
(82332, 10)
(175341, 13, 3, 1)
(175341, 10)
ValueError Traceback (most recent call last)
<ipython-input-20-526f89d6ead2> in <module>()
6 epochs=10,
7 verbose=1,
----> 8 validation_data=(X_test, y_test))
ValueError: Error when checking target: expected dense_2 to have shape
(1,) but got array with shape (10,)
解决方案
您可能需要提供更多信息?你是如何编译模型的?
使用您的代码作为简单测试的基础,我没有收到错误。
from tensorflow.python.keras import Sequential
from tensorflow.python.keras.layers import Conv2D, Flatten, Dense, Dropout
import numpy as np
X_train = np.zeros(shape=(100, 13, 3, 1))
y_train = np.zeros(shape=(100, 10))
X_test = np.zeros(shape=(100, 13, 3, 1))
y_test = np.zeros(shape=(100, 10))
# convert class vectors to binary class matrices
print(X_train.shape)
print(y_train.shape)
print(X_test.shape)
print(y_test.shape)
input_shape = (13, 3, 1)
model = Sequential()
model.add(Conv2D(32, kernel_size=(2, 2), activation='relu',
input_shape=input_shape))
model.add(Flatten())
model.add(Dense(1000, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))
model.compile("Adam", loss="categorical_crossentropy") # Added this line
model.fit(X_train, y_train,
batch_size=128,
epochs=10,
verbose=1,
validation_data=(X_test, y_test))
Train on 100 samples, validate on 100 samples
Epoch 1/10
100/100 [==============================] - 1s 5ms/sample - loss: 0.0000e+00 - val_loss: 0.0000e+00
Epoch 2/10
100/100 [==============================] - 0s 156us/sample - loss: 0.0000e+00 - val_loss: 0.0000e+00
Epoch 3/10
100/100 [==============================] - 0s 377us/sample - loss: 0.0000e+00 - val_loss: 0.0000e+00
Epoch 4/10
100/100 [==============================] - 0s 312us/sample - loss: 0.0000e+00 - val_loss: 0.0000e+00
Epoch 5/10
100/100 [==============================] - 0s 156us/sample - loss: 0.0000e+00 - val_loss: 0.0000e+00
Epoch 6/10
100/100 [==============================] - 0s 312us/sample - loss: 0.0000e+00 - val_loss: 0.0000e+00
Epoch 7/10
100/100 [==============================] - 0s 221us/sample - loss: 0.0000e+00 - val_loss: 0.0000e+00
Epoch 8/10
100/100 [==============================] - 0s 312us/sample - loss: 0.0000e+00 - val_loss: 0.0000e+00
Epoch 9/10
100/100 [==============================] - 0s 312us/sample - loss: 0.0000e+00 - val_loss: 0.0000e+00
Epoch 10/10
100/100 [==============================] - 0s 377us/sample - loss: 0.0000e+00 - val_loss: 0.0000e+00
推荐阅读
- javascript - 如何将连续的索引号添加到数组中的唯一值
- reactjs - 上传到 IPFS 的 PDF 文件不显示
- reactjs - 如何在 React.js 中实现编辑照片,如 LinkedIn 编辑背景功能?
- vb.net - vb.net 从可用时间列表中计算预约时间?
- angular - JPA Spring Boot Hibernate Rest API:为什么Hibernate在插入之前会删除?
- reactjs - 你如何使用 Axios 在 React 中创建页面的预览?
- c - 如何使用C反转字符串中单词的顺序?
- pycharm - pycharm venv run 找不到模块
- javascript - 不能在类似动作的 RoR 中使用 JS
- phpstorm - PhpStorm 显示/隐藏主菜单