Я изменяю модель 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 не работаетработа