Как использовать ConvLSTM2D в модели обнаружения? - PullRequest
0 голосов
/ 10 октября 2019

Я изменяю модель MASK R-CNN и хочу добавить информацию об инвойменте в модель. В исходной модели после пула roi тензор должен быть [batch, num_boxes, col, row, channel], я добавляю две подчиненные привязки, так что теперь тензор_shape равен [batch, num_boxes, 3, col, row, channel]. Затем я хочу использовать TimeDistributed и ConvLSTM2D, но получил ошибку. Вот мой код:

x = PyramidROIAlign([pool_size, pool_size],
                    name="roi_align_classifier")([rois, image_meta] + feature_maps)
# Two 1024 FC layers (implemented with Conv2D for consistency)
x = KL.TimeDistributed(KL.ConvLSTM2D(filters=fc_layers_size, kernel_size=(pool_size, pool_size), padding='same', 
                        return_sequences=True), name='mrcnn_class_LSTMConv1')(x)
x = KL.Activation('relu')(x)
x = KL.TimeDistributed(KL.ConvLSTM2D(filters=fc_layers_size, kernel_size=(1, 1),  
                        return_sequences=False), name='mrcnn_class_LSTMConv2')(x)
x = KL.Activation('relu')(x)
x = KL.Lambda(lambda x: K.squeeze(x, [2,3,4]))(x)

ошибка: вход 0 несовместим со слоем mrcnn_class_LSTMConv1: ожидаемый ndim = 5, найденный ndim = 6

Интересно, почему кажется, что функция TimeDistributed не работаетработа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...