альтернативный способ объединения двух ячеек LSTM в кератах (модель CRNN) - PullRequest
0 голосов
/ 21 февраля 2019

Итак, я работаю над моделью 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]) это объединение двухcell.

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

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

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

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

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