首页 文章

Keras和Python 3.6:检查顺序模型的输入时出错[重复]

提问于
浏览
0

这个问题在这里已有答案:

不知何故,我在Keras库中发现了一个非常奇怪的错误 .

我的学习方法包括三层神经网络:输入层130,517单位(输入大小),隐藏层10,000,输出层2单位 .

在代码期间,我运行了批量学习(我使用了 partial_fit 函数),但代码反复抛出相同的错误:

检查输入时出错:期望的dense_1_input具有形状(130517,)但是得到了具有形状的数组(1,)

我再次检查了输入尺寸,发现它确实如我所想,有130,517个尺寸 .

下面是调试时变量的图片,如您所见, np.array(X[0]) 的形状为130,517:

enter image description here

无论如何,我附加了神经网络的初始化代码,以及对 partial_fit 的调用代码:

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代码中的错误吗?

1 回答

  • 4

    在培训方面,Keras希望您的数据包含批量大小的维度 . 在您的情况下,这意味着数据应该是 (batch_size, 130517) 的形状 . 但是,您传递 np array 形状 (130517) ,这会导致您的错误 . 您可以重新整形数据以包含批量形状,如下所示:

    X_reshaped = X[0].reshape(1, -1)

相关问题