在tensorflow中创建顺序模型时出现尺寸不匹配

时间:2019-05-28 03:45:25

标签: python tensorflow keras

每当在顺序模型中的密集层之间添加平坦层时,或者在平坦层之后添加MaxPooling1D时,都会出现如下错误:

  

输入0与图层不兼容:预期ndim = 3,   找到ndim = 2

这是在我的模型中发现这些错误的地方:

#Model 1
model = Sequential()
from keras.layers import Flatten,Dense,MaxPooling1D
model.add(Flatten(input_shape=(28,28)))
model.add(Dense(256,activation="relu"))
model.add(Flatten())
model.add(Dense(128,activation="relu"))
model.add(Dense(64,activation="relu"))
model.add(Dense(10,activation="softmax"))

#Model2
model = Sequential()
from keras.layers import Flatten,Dense,MaxPooling1D
model.add(Flatten(input_shape=(28,28)))
model.add(MaxPooling1D(2))
model.add(Dense(256,activation="relu"))
model.add(Dense(128,activation="relu"))
model.add(Dense(64,activation="relu"))
model.add(Dense(10,activation="softmax"))

我正在使用这些模型处理输入形状为28X28的时尚MNIST数据集。

此外,有人可以解释我在创建此模型时哪里出错了吗? 感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我希望您使用Tensorflow作为后端的Keras。您必须使用numpy扩展尺寸函数来扩展图像的尺寸,例如

import numpy as np


image=np.expand_dims(image,axis=0)
model.predict(image)