检查目标时出现错误:期望activation_2的形状为(512,),但得到的数组形状为(1,)

标题中的错误让我感到困扰。虽然我知道为什么会出现这个错误,但在研究后,由于我是机器学习的新手,我难以理解这个概念。错误与没有X_TRAIN和Y_TRAIN有关,但我无法理解它们包含什么内容。所有图像都已调整到相同尺寸。我使用的是CUB 2011数据集,训练/验证的分割比例为90:10,下面是我与错误相关的代码。我使用的是Keras。

classifier.add(Conv2D(256, (3, 3), input_shape = (467,386,3)))classifier.add(Activation('relu'))#Smaller for precise poolingclassifier.add(MaxPooling2D(pool_size = (2, 2)))classifier.add(Flatten())#Add 512 unit layerclassifier.add(Dense(units = 512, activation = 'relu'))

回答:

问题在于您的最终Dense(512, ...)层与您的数据目标只有一维之间存在差异。您可以选择通过调整模型输出期望的维度来解决问题,或者调整数据以符合模型的预期输出。这取决于您想要达到的目标。要修复模型,您可以添加另一个Dense层:

classifier.add(Dense(units = 512, activation = 'relu'))classifier.add(Dropout(0.2)) #防止过拟合classifier.add(Dense(units=1, activation='sigmoid')) # 在这里 ---

或者,您可以通过print(next(train_generator))查看生成器的输出,了解为什么目标数组是一维的。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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