我在Keras开发了经过训练的模型,该模型具有多个Lambda层和自定义损失函数。准确度约为0.69。该模型由两部分组成(例如,在自动编码器中,将这两个部分想象为编码器和解码器)。为了进行推断,我只需要第一部分即可。
final_model = Model(inputs = trained_model.input,outputs = trained_model.get_layer(name_of_hidden_layer).output)
final_model.compile(optimizer = 'adam',loss = 'mse',metrics = ['mse'])
然后为了快速推断,我使用:
tf.keras.estimator.model_to_estimator(keras_model=final_model)
创建一个估算器并进行多线程推理。
问题在于,一旦我将其转换为估计量,精度就会降至0.58。我尝试过:
tf.keras.estimator.model_to_estimator(keras_model=path_to_final_model)
和我有同样的问题。创建估算器后,我可以对模型进行训练,但是随后我需要从隐藏层获取输出,而我不知道如何使用经过训练的估算器来进行处理。而且,看起来像在Keras中那样,它不会在训练时打印出指标。我需要那个选项。
系统规格: Tensorflow 2.0.0或Tensorflow 2.1.0 Python 3.7 Ubuntu 18.04,但最终产品将在Windows上进行培训和使用。
在这方面的任何帮助或指导都将受到高度赞赏。