关于Maskrcnn中的TimeDistributed层的问题

时间:2019-11-20 10:26:33

标签: tensorflow

我是新手,现在我尝试使用tensorflow2.0重现Maskrcnn的代码。

并且源代码使用tensorflow1.x和keras版本

这是我弄错的一部分源代码。我添加了一些打印功能来观察数据的尺寸:

def fpn_classifier_graph(rois, feature_maps, image_meta,
                     pool_size, num_classes, train_bn=True,
                     fc_layers_size=1024):
  x = PyramidROIAlign([pool_size, pool_size],name="roi_align_classifier")([rois, image_meta] + feature_maps)
  print(x.shape)
  print(fc_layers_size)
  print(pool_size)

  #KL is keras.layers
  x = KL.TimeDistributed(KL.Conv2D(fc_layers_size, (pool_size, pool_size), padding="valid"),
                       name="mrcnn_class_conv1")(x)
  print(x.shape)

这是结果:

(8,?,7,7,256)(问号代表无)

1024

7

(?, 32,1,1,1024)

这是我的代码:

 x=PyramidROIAlign([pool_size,pool_size])([rois,image_meta]+feature_maps)
print(x.shape)
print(fc_layers_size)
print(pool_size)
x=tf.keras.layers.TimeDistributed(tf.keras.layers.Conv2D(fc_layers_size,(pool_size,pool_size),padding="valid"),
                                  name='mrcnn_class_conv1')(x)
print(x.shape)

结果:

(8,无,7,7,256)

1024

7

(无,无,1、1、1024)

在TimeDistributed之前,所有数据尺寸均相同,并且图层的参数相同,但我不知道结果为何不同。

关于这个问题,有人告诉我这是一个时间步长设置问题,但是我没有在源代码中找到该时间步长设置。

我应该怎么办?请帮助我

0 个答案:

没有答案