首页 > 解决方案 > ValueError: 操作数不能与形状一起广播 (256, 256, 64) (256, 256, 3)

问题描述

我试图在 maxpooling 检索错误之前的两个 cnn 层之后添加一个跳过连接。下面是我的示例代码。

X=Input(shape=(256, 256, 3)) 
X_shortcut = X
layer_in = Conv2D(64,(3, 3), padding='same', activation='relu')(X_shortcut)
X = Add()([X, X_shortcut])
layer_in = Conv2D(64, (3, 3), padding='same', activation='relu')(layer_in)
X = Add()([layer_in, X_shortcut])
layer_in = MaxPooling2D((2, 2), strides=(2, 2))(layer_in)
model = Model(inputs=X_shortcut, outputs=layer_in)
# summarize model
model.summary()

检索值错误:

    ValueError: Operands could not be broadcast together with shapes (256, 256, 64) (256, 256, 3)

标签: tensorflowkerasdeep-learningconv-neural-network

解决方案


layer_in 有 64 个通道,X_shortcut 有 3 个。不可能将它们加在一起。您可以连接,输出形状将是 (256,256,67)


推荐阅读