0

我有train_dataset 4d阵列保存7000 RGB图像(7000,299,299,3)。现在我需要将此数据集数组提供给sklearn.linear_model.LogisticRegression,因为它需要是二维的。如何转换4d RGB图像数据为2d阵列LogisticRegression

我曾尝试:: -

np.reshape(train_dataset[:],(7000, train_dataset.shape[1]*train_dataset.shape[2])) 

结果:: -

ValueError: cannot reshape array of size 1877152797 into shape (7000,89401) 

能否请您在此整形train_dataset阵列的帮助?我想在train_dataset数组中保留7000行。

回答

1

您似乎只有6,999张图像,对于您的损失感到抱歉。最简单的是让numpy的计算丢失的形状为你

np.reshape(train_dataset, (6999, -1)) 

或更有力

np.reshape(train_dataset, (train_dataset.shape[0], -1)) 
+0

感谢那些帮助。有一个简单的解决方案,从现在开始#selfnote的拇指规则总是快速浏览一下API的官方文档,然后是stackoverflow后。 – Anuj

+0

Paul的答案是正确的,但这可能不是一个好主意:通过这样做,您的模型将无法利用这些功能的空间组织。我强烈建议要么执行基于手动补丁的特征提取(例如,使用HoG,补丁上的KMeans ...)来构建一包视觉单词或使用卷积神经网络。阅读关于机器学习计算机视觉的一些简介教科书,以了解更多信息。 scikit-image文档也可能有帮助。 – ogrisel