Keras和Python3.6:检查顺序模型的输入时出错
不知怎的,我在Keras图书馆里发现了一只非常奇怪的虫子 我的学习方法包括三层神经网络:输入层130517个单位(输入大小),隐藏层10000个,输出层2个单位 在编写代码期间,我运行了一个批处理学习(我使用了Keras和Python3.6:检查顺序模型的输入时出错,python,machine-learning,neural-network,keras,deep-learning,Python,Machine Learning,Neural Network,Keras,Deep Learning,不知怎的,我在Keras图书馆里发现了一只非常奇怪的虫子 我的学习方法包括三层神经网络:输入层130517个单位(输入大小),隐藏层10000个,输出层2个单位 在编写代码期间,我运行了一个批处理学习(我使用了partial_fit函数),但代码反复抛出相同的错误: {ValueError}检查输入时出错:应为密集的\u 1\u输入 形状(130517,)但获得了形状为(1,)的数组 我再次检查了输入维度,发现它确实如我所想,有130517个维度 下面是调试时变量的图片,如您所见,np.arra
partial_fit
函数),但代码反复抛出相同的错误:
{ValueError}检查输入时出错:应为密集的\u 1\u输入
形状(130517,)但获得了形状为(1,)的数组
我再次检查了输入维度,发现它确实如我所想,有130517个维度
下面是调试时变量的图片,如您所见,np.array(X[0])
的形状是130517:
在任何情况下,我都附加了神经网络初始化代码和调用部分拟合的代码
:
def initClassifier(self):
self.classifier.add(Dense(100000, input_dim=130517, activation='relu'))
self.classifier.add(Dense(2, activation='softmax'))
self.classifier.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
def partial_fit(self, X, y, classes):
self.classifier.train_on_batch(np.array(X[0]), np.array(y))
有人有解决办法吗这可能是Keras代码中的错误吗?在培训中,Keras希望您的数据包含一个批量大小的维度。在您的情况下,这意味着数据的形状应为
(批次大小,130517)
。但是,您正在传递一个np数组(130517)
,这将导致您的错误。您可以按如下方式重塑数据以包含批次形状:
X\u重塑=X[0]。重塑(1,-1)
在培训中,Keras希望您的数据包括批量大小的维度。在您的情况下,这意味着数据的形状应为(批次大小,130517)
。但是,您正在传递一个np数组(130517)
,这将导致您的错误。您可以按如下方式重塑数据以包含批次形状:
X\u重塑=X[0]。重塑(1,-1)
谢谢!我花了两个多小时试图解决这个问题谢谢!我花了两个多小时试图解决这个问题