由于在实际的项目中,使用DenseNet的模型做文字识别,为了提升识别效果在模型后接LSTM,但是在训练时出现了问题,发现Loss与Accuracy都保持不变。为了解决这个问题尝试打印每层的输出结果以排查问题。
测试代码:
# 用于测试
if __name__ == "__main__":
reload(densenet2)
characters = keys.alphabet[:]
characters = characters[1:] + u'卍'
nclass = len(characters)
input = Input(shape=(32, None, 1), name='the_input')
x = densenet2.dense_cnn(input, nclass)
rnnunit = 256
x = Bidirectional(GRU(rnnunit, return_sequences=True, implementation=2), name='blstm1')(x)
x = Dense(rnnunit, name='blstm1_out', activation='linear')(x)
x = Bidirectional(GRU(rnnunit, return_sequences=True, implementation=2), name='blstm2')(x)
y_pred = Dense(nclass, name='out2', activation='softmax