【发布时间】:2020-05-29 23:22:43
【问题描述】:
我正在尝试使用负采样编写一个连体网络,代码只有 20 个示例(包括正例和负例) 每个示例包括 2 个图像 (x1,x2) 和一个指示图像是否相同的输出
image1 image1 1
image1 image2 0
为此,我有兴趣获得最后一层,即 Keras 中的 Dense() 层,分别为 X1 和 X2。
X1的形状是20,28,28,1,X2的形状是20,28,28,1 两者的类型都为 numpy.ndarray
但是当我应用 CNN 模型时,它给出了以下错误。
"TypeError: 添加的图层必须是Layer类的实例。找到: (28, 28, 1)
查看下面的python代码
model = Sequential([(Image1[0].shape),
Conv2D(16,kernel_size=(3,3),strides=[1,1],padding='same',kernel_initializer=keras.initializers.glorot_uniform(),name='conv1'),
Activation('relu'),
MaxPool2D(pool_size=(2, 2)),
Conv2D(32,kernel_size=(3,3),strides=[2,2],padding='same',kernel_initializer=keras.initializers.glorot_uniform(),name='conv2'),
Activation('relu'),
Conv2D(64,kernel_size=(3,3),strides=[2,2],padding='same',kernel_initializer=keras.initializers.glorot_uniform(),name='conv3'),
Activation('relu'),
MaxPool2D(pool_size=(2, 2)),
Flatten(),
Dense(20)
])
有人可以帮我解决这个错误吗?
谢谢 萨钦
【问题讨论】:
-
更新 keras 到 2.2.4