我使用python 3和anaconda,使用keras和,我的目标是创建一个具有可变输入大小的Conv层的网络。
我发现这里使用这段代码
i = Input((None, None, 1))
o = Conv2D(1, 3, 3)(i)
model = Model(i, o)
model.compile('sgd', 'mse')我用这个代码创建了自己的模型(我需要一个扁平的层)。
model = Sequential()
I = Input((None, None, 1))
c = Conv2D(filters=1, kernel_size=(1, 1))(I)
f = Flatten()(c)
o = Dense(10, activation="softmax")(f)
m = Model(I, o)
m.compile(loss=categorical_crossentropy, optimizer=SGD(), metrics=["accuracy"])我一直在犯这个错误
ValueError:“平坦”输入的形状没有完全定义(got (无,无,1) )。确保将完整的"input_shape“或"batch_input_shape”参数传递给模型的第一层。
似乎问题是输入形状的扁平层,当我删除它,它是好的。
我怎样才能使它更好地发挥与可变的大小?
谢谢
发布于 2019-06-11 14:49:53
平坦方法不以输入大小作为参数。
model = Sequential()
I = Input((None, None, 1))
c = Conv2D(filters=1, kernel_size=(1, 1))(I)
f = Flatten()
o = Dense(10, activation="softmax")(I)
m = Model(I, o)
m.compile(loss="categorical_crossentropy", optimizer=SGD(), metrics=["accuracy"])这应该能解决你的问题。
https://stackoverflow.com/questions/56546049
复制相似问题