Альтернативный способ объединения двух ячеек 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 можно выполнять только в заранее определенном измерении!
Любой вклад приветствуется.