预期与keras中的测试集不同的尺寸

预期与keras中的测试集不同的尺寸,keras,Keras,我试着做一个简单的项目,比如“mnist”,但我发现了错误 我尝试使用不同的数据集 试着跟着我以前写的“mnist” 但是这个错误发生了 回溯(最近一次呼叫最后一次): 文件“train..py”,第51行,在 分数=网络。评估(x_测试,y_测试) 文件“/usr/local/lib/python3.6/dist-packages/keras/engine/training.py”,第1102行,在evaluate中 批次大小=批次大小) 文件“/usr/local/lib/python3.6

我试着做一个简单的项目,比如“mnist”,但我发现了错误

我尝试使用不同的数据集 试着跟着我以前写的“mnist” 但是这个错误发生了

回溯(最近一次呼叫最后一次):
文件“train..py”,第51行,在
分数=网络。评估(x_测试,y_测试)
文件“/usr/local/lib/python3.6/dist-packages/keras/engine/training.py”,第1102行,在evaluate中
批次大小=批次大小)
文件“/usr/local/lib/python3.6/dist-packages/keras/engine/training.py”,第789行,在用户数据中
异常(前缀='target')
文件“/usr/local/lib/python3.6/dist packages/keras/engine/training\u utils.py”,第128行,在标准化输入数据中
“带形状”+str(数据形状))
ValueError:检查目标时出错:预期密集_2有2个维度,但得到了形状为(20000,10,2)的数组。

错误发生在这一行:

score = network.evaluate(x_test, y_test)"
我定义数据集的方式: 负荷训练数据 模型 预测
你的y_测试有问题。您可以使用以下代码更改代码,因为您的
x\u列、y\u列
x\u测试、y\u测试
之间的初始化存在差异

x_test, y_test = read_hoda_dataset(dataset_path='HodaDatasetReader/DigitDB/Test 20000.cdb',
                              images_height=32,
                              images_width=32,
                              one_hot=False,
                              reshape=True)

正如我发现的,我们不需要更改y-test表单,所以只需删除这部分代码: “y_测试=到_分类(y_测试)”
成功了

这可能与批量大小有关。我尝试了不同的数字,请告诉我怎么做?例如,将其更改为什么?为什么是形状(20000、10、2)?应该是(20000,10)
nb_classes = 10
x_train, y_train = read_hoda_dataset(dataset_path='HodaDatasetReader/DigitDB/Train 60000.cdb',
                                images_height=32,
                                images_width=32,
                                one_hot=False,
                                reshape=True)
x_test, y_test = read_hoda_dataset(dataset_path='HodaDatasetReader/DigitDB/Test 20000.cdb',
                              images_height=32,
                              images_width=32,
                              one_hot=True,
                              reshape=False)

x_train = x_train.reshape((60000, 32 * 32))
x_train = x_train.astype('float32') / 255
x_test = x_test.reshape((20000, 32 * 32))
x_test = x_test.astype('float32') / 255

y_train = to_categorical(y_train)
y_test = to_categorical(y_test)
network = Sequential()
network.add(Dense(512, activation='relu', input_shape=(32 * 32,)))
network.add(Dense(10, activation='softmax'))
network.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
network.fit(x_train, y_train, epochs=1, batch_size=1000)
score = network.evaluate(x_test, y_test)###error was here :(
x_test, y_test = read_hoda_dataset(dataset_path='HodaDatasetReader/DigitDB/Test 20000.cdb',
                              images_height=32,
                              images_width=32,
                              one_hot=False,
                              reshape=True)