Python sklearn train_test_在三维阵列列表上拆分

Python sklearn train_test_在三维阵列列表上拆分,python,image,keras,train-test-split,Python,Image,Keras,Train Test Split,我想做图像分类,我有一个12000个三维numpy阵列的列表。这些阵列都具有300 x 300 x 3的形状(高度、宽度、RGB)。我的数据只是一个12000整数(介于0和5之间)的列表,说明数组所属的类。当我使用sklearn的训练测试时 X_序列,X_测试,Y_序列,Y_测试=序列测试分割(数据X,数据Y,测试大小=0.2,随机状态=42) 生成的X_序列是一个包含9600个300 X 300形状的二维数组的列表。我是怎么失去第三维度的 同样,在尝试拟合这样的神经网络时: model1=Se

我想做图像分类,我有一个12000个三维numpy阵列的列表。这些阵列都具有300 x 300 x 3的形状(高度、宽度、RGB)。我的数据只是一个12000整数(介于0和5之间)的列表,说明数组所属的类。当我使用sklearn的训练测试时

X_序列,X_测试,Y_序列,Y_测试=序列测试分割(数据X,数据Y,测试大小=0.2,随机状态=42)

生成的X_序列是一个包含9600个300 X 300形状的二维数组的列表。我是怎么失去第三维度的

同样,在尝试拟合这样的神经网络时:

model1=Sequential()

model1.add(Conv2D(32,内核大小=(3,3),activation=“relu”,输入形状=(300300,3)))

model1.add(Conv2D(32,内核大小=(3,3),activation=“relu”))

model1.add(MaxPooling2D(池大小=(2,2)))

模型1.添加(辍学率(0.25))

model1.add(展平())

模型1.添加(密集(6,activation=“softmax”))

模型1.编译(optimizer=“rmsprop”,loss=“categorical\u crossentropy”,metrics=[“accurity”])

模型1.拟合(X_序列,Y_序列,验证数据=(X_测试,Y_测试),历代=80,批量=20)

我得到这个错误: 检查模型输入时出错:传递给模型的Numpy数组列表的大小不是模型预期的大小。期望看到1个数组,但得到了以下9600个数组的列表:[array([[1,1,1.,…,1,1,1.]), [1., 1., 1., ..., 1., 1., 1.], [1., 1., 1., ..., 1., 1., 1.], ..., [1., 1., 1., ..., 1., 1., 1.], [1,1,1.,…,1,1,1,1


请帮助!!!

这很奇怪,
训练测试分割
应该可以在任何维度上工作,只要它们是一致的,您可能应该在分割之前再次检查
数据分割的
形状
我现在通过将大小为300 X 300 X 3的12000个数组的列表转换为大小为12000 X 300 X 300 X 3的一个数组来解决它数据_X=np.堆栈(数据_X,轴=0)。然后train\u test\u split做了正确的事情,网络接受了我的输入!这很奇怪,
train\u test\u split
应该可以在任何维度上工作,只要它们是一致的,你可能应该在拆分之前再次检查
数据的
形状。我现在通过转换大小为300 X的12000个数组来解决它通过data_x=np.stack(data_x,axis=0)将300 x 3放入一个大小为12000 x 300 x 300 x 3的数组中。然后train_x测试_x分割做正确的事情,网络接受我的输入!