ValueError: 层sequential的输入0与层不兼容:预期的最小维度为4,但发现维度为3。接收到的完整形状为:[None, 32, 32]

我有一个用于图像分类的卷积神经网络,trainImages和trainLabel(从0到8)是训练数据,validationImages和validationLabels用于测试。图像大小为32×32。我无法让这个算法正常工作,请告诉我你是否发现了其他错误。


回答:

由于我无法访问加载的图像,所以无法确切指出问题所在,但问题在于你提供的样本没有“通道”轴,而在指定的input_shape=(32, 32, 3)中表示通道尺寸为3。每个样本(图像)必须有3个维度(宽度、高度、通道),但相反,你传递的样本只有2个维度(宽度和高度)。

这很可能是由于你可能加载了只有一个通道的灰度图像,而numpy没有明确为其分配轴。如果是这种情况,请确保trainImagesvalidationImages的形状为(32, 32, 1),否则在将它们输入模型之前,使用np.expand_dims(_trainImages_, axis=-1)扩展最后一个维度(验证集同理)。相应地,将第一个Conv2D层的input_shape调整为(32, 32, 1)。

希望这对你有帮助,否则请提供更多细节。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注