Альтернативный способ объединения двух ячеек LSTM в кератах (модель CRNN)

Поэтому я работаю над моделью CRNN. это модель для распознавания текста. Это ссылка, над которой я работаю. это код детали построения модели:

x_reshape = Reshape(target_shape=(int(bn_shape[1]), int(bn_shape[2] * bn_shape[3])))(batchnorm_7)

fc_1 = Dense(128, activation='relu')(x_reshape)  # (?, 50, 128)
rnn_1 = LSTM(128, kernel_initializer="he_normal", return_sequences=True)(fc_1)
rnn_1b = LSTM(128, kernel_initializer="he_normal", go_backwards=True, return_sequences=True)(fc_1)
rnn1_merged = add([rnn_1, rnn_1b])

rnn_2 = LSTM(128, kernel_initializer="he_normal", return_sequences=True)(rnn1_merged)
rnn_2b = LSTM(128, kernel_initializer="he_normal", go_backwards=True, return_sequences=True)(rnn1_merged)
rnn2_merged = concatenate([rnn_2, rnn_2b])

drop_1 = Dropout(0.25)(rnn2_merged)

fc_2 = Dense(label_classes, kernel_initializer='he_normal', activation='softmax')(drop_1)

# model setting
base_model = Model(inputs=inputShape, outputs=fc_2)  # the model for prediecting

(Я не включил целое, так как я просто хочу дать представление о том, какова модель). Итак, одной строкой здесь: rnn2_merged = concatenate([rnn_2, rnn_2b]) это объединение двух ячеек.

Мне было интересно, есть ли альтернативный способ объединить их без использования Concatenate в керасе?

(У меня проблема с преобразованием этой модели в CoreML, возникает ошибка Only channel and sequence concatenation are supported. в сцеплении, которое не поддерживается coreML. вот почему я хотел реализовать это по-другому).

Я прочитал несколько статей, касающихся этого, как это. они объясняют, что в coreMl Concatenate можно выполнять только в заранее определенном измерении!

Любой вклад приветствуется.

0 ответов

Другие вопросы по тегам