Python 分类的交叉熵需要一定大小的数组

Python 分类的交叉熵需要一定大小的数组,python,numpy,tensorflow,keras,Python,Numpy,Tensorflow,Keras,我正在尝试读取一组图像数据,并进行一些处理,我需要改变阵列形状,无论我如何看到下面的错误 ValueError:检查目标时出错:预期稠密_2具有形状(3),但获得具有形状(1)的数组 第一层################### model.add(Conv2D(64,(3,3),输入_shape=X.shape[1:])) 添加(激活('relu')) add(MaxPooling2D(池大小=(2,2))) 模型。添加(辍学率(0.25)) ###################第一层###

我正在尝试读取一组图像数据,并进行一些处理,我需要改变阵列形状,无论我如何看到下面的错误

ValueError:检查目标时出错:预期稠密_2具有形状(3),但获得具有形状(1)的数组

第一层###################
model.add(Conv2D(64,(3,3),输入_shape=X.shape[1:]))
添加(激活('relu'))
add(MaxPooling2D(池大小=(2,2)))
模型。添加(辍学率(0.25))
###################第一层###################
###################第二层###################
model.add(Conv2D(64,(3,3)))
添加(激活('relu'))
add(MaxPooling2D(池大小=(2,2)))
模型。添加(辍学率(0.25))
###################第二层###################
###################第三层###################
model.add(Conv2D(64,(3,3)))
添加(激活('relu'))
add(MaxPooling2D(池大小=(2,2)))
模型。添加(辍学率(0.25))
###################第二层###################
###################第四层###################
model.add(Conv2D(64,(3,3)))
添加(激活('relu'))
add(MaxPooling2D(池大小=(2,2)))
模型。添加(辍学率(0.25))
###################第四层###################
model.add(展平())
模型.添加(密度(64))
添加(激活('relu'))
添加(密集(单位=3,激活='softmax'))
compile(loss='classifical\u crossentropy',optimizer='adam',
指标=[‘准确度’])
model.fit(X,y,批量大小=30,纪元=200,验证拆分=0.1,回调=[tensorboard]

X和y的形状是什么?您的预测值
y
似乎没有所需的形状。请确保使用一个热编码的大小数组(BATCH\u size,3)。我猜3是您使用的类数。我使用4个类,我通过以下操作修复了这一问题:y\u binary=to\u category(y)现在的问题是,不管我怎么说,cnn总是预测一个班级