所以我正在研究CRNN模型。这是OCR的模型。 This是我正在处理的链接。 这是模型构建的零件代码:
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])
它正在串联两个单元格。
我想知道是否有其他方法可以在不使用keras中使用Concatenate
的情况下将它们串联起来?
(我在将此模型转换为CoreML时遇到问题,它在串联中引发错误Only channel and sequence concatenation are supported.
,而CoreML不支持该错误。这就是为什么我想以其他方式实现它)。
我已经阅读了几篇关于这方面的论文 this。他们解释说,在coreMl级联中只能在预定的维度上完成!
感谢任何投入。