问题描述
大家好。 现在这是一个艰难的过程。我正在研究语音识别,而这一切都发生在我在github上找到的CTCModel类内。
我训练模型,将权重另存为.h5文件,并将体系结构保存在json文件中。 在Keras 2.4.0上一切似乎都正常运行
当我预测到我会遇到很多错误并降级到Keras 2.3.0
当我尝试加载模型时,它确实在Keras 2.4上加载,但无法预测。因此我降级到2.3,它将无法加载,并且标题(ValueError: UnkNown layer: Functional
)出现错误。
已保存的json模型的第一行:
{"class_name": "Functional","config"...
这是我的模型结构:
def final_model(input_dim,units,output_dim,padding_value):
""" Build a bidirectional recurrent network for speech
"""
# Main acoustic input
input_data = Input(name='the_input',shape=(None,input_dim))
masked_input = Masking(mask_value = padding_value)(input_data)
# =============== 1st Layer =============== #
# Add bidirectional recurrent layer
bidirectional_rnn = Bidirectional(GRU(units,activation=None,return_sequences=True,implementation=2,name='bidir_rnn'))(masked_input)
# Add batch normalization
batch_normalization = Batchnormalization(name = "batch_normalization_bidirectional_rnn")(bidirectional_rnn)
# Add activation function
activation = Activation('relu')(batch_normalization)
# Add dropout
drop = Dropout(rate = 0.5)(activation)
# =============== 2nd Layer =============== #
# Add bidirectional recurrent layer
bidirectional_rnn = Bidirectional(GRU(units,name='bidir_rnn'))(activation)
# Add batch normalization
batch_normalization = Batchnormalization(name = "batch_normalization_bidirectional_rnn_2")(bidirectional_rnn)
# Add activation function
activation = Activation('relu')(batch_normalization)
# Add dropout
drop = Dropout(rate = 0.5)(activation)
# =============== 3rd Layer =============== #
# Add a Timedistributed(Dense(output_dim)) layer
time_dense = Timedistributed(Dense(output_dim))(activation)
# Add softmax activation layer
y_pred = Activation('softmax',name='softmax')(time_dense)
model = CTCModel.CTCModel([input_data],[y_pred])
model.compile(Adam(lr=0.0001))
model.summary()
return model
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)