问题描述
我想从浅层和顶层添加特征,假设是 56 x 56x 512 和 14x14x512,然后我将其上采样 4 并得到相同的 56x56x512,添加它,然后通过步幅卷积/最大下采样-池化,然后馈送到 rpn(转换所需大小后)以生成提案。但是在 rpn 层的训练过程中,它显示了一个位置的大小不匹配。
块 1
x = Conv2D(64,(3,3),activation='relu',padding='same',name='block1_conv1')(img_input)
x = Conv2D(64,name='block1_conv2')(x)
x = MaxPooling2D((2,2),strides=(2,name='block1_pool')(x)
# Block 2
x = Conv2D(128,name='block2_conv1')(x)
x = Conv2D(128,name='block2_conv2')(x)
x = MaxPooling2D((2,name='block2_pool')(x)
# Block 3
x_3= x
x = Conv2D(256,name='block3_conv1')(x)
x = Conv2D(256,name='block3_conv2')(x)
x = Conv2D(256,name='block3_conv3')(x)
x = MaxPooling2D((2,name='block3_pool')(x)
#edit (conv4_b)
x_3 = Conv2D(256,name='block_3_conv1')(x_3)
x_3 = Conv2D(256,name='block_3_conv2')(x_3)
x_3 = Conv2D(256,name='block_3_conv3')(x_3)
x_3 = Conv2D(512,(1,1),name='block_3_conv4')(x_3)
# Block 4
x = Conv2D(512,name='block4_conv1')(x)
x = Conv2D(512,name='block4_conv2')(x)
x = Conv2D(512,name='block4_conv3')(x)
x = MaxPooling2D((2,name='block4_pool')(x)
#edit (conv5_b)
x_4=x_3
x_4 = Conv2D(512,name='block_4_conv1')(x_4)
x_4 = Conv2D(512,name='block_4_conv2')(x_4)
x_4 = Conv2D(512,name='block_4_conv3')(x_4)
# Block 5
x = Conv2D(512,name='block5_conv1')(x)
x = Conv2D(512,name='block5_conv2')(x)
x = Conv2D(512,name='block5_conv3')(x)
# x = MaxPooling2D((2,name='block5_pool')(x)
#edit
x = tf.keras.layers.UpSampling2D(size=(4,4),interpolation='nearest')(x)
x = tf.keras.layers.Add()([x_4,x])
print(x_4.shape)
print(x.shape)
x = Conv2D(512,name='block5_conv4')(x)
x = MaxPooling2D((2,name='block5_pool')(x)
print(x.shape)
return x
x_4.shape (无,56,512) x.shape (None,512)
(return)x.shape (None,14,512)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)