能否单独调用TensorFlow多输出模型获取单一输出?
可以单独获取单个输出,这里提供两种实用方法
方法1:构建单输出子模型
利用原模型已定义好的输入和输出张量,直接创建只包含目标输出的新模型,每次调用就能直接得到单个结果:
获取priority输出的代码:
priority_model = keras.Model( inputs=[title_input, body_input, tags_input], outputs=priority_pred ) # 传入对应数据进行预测 priority_result = priority_model.predict([title_data, body_data, tags_data])
获取department输出的代码:
department_model = keras.Model( inputs=[title_input, body_input, tags_input], outputs=department_pred ) # 传入对应数据进行预测 department_result = department_model.predict([title_data, body_data, tags_data])
方法2:调用原模型后提取目标输出
原模型调用predict会返回一个包含两个元素的序列,第一个对应priority的结果,第二个对应department的结果,直接通过索引提取即可:
full_results = model.predict([title_input_data, body_input_data, tags_input_data]) # 提取priority结果 priority_result = full_results[0] # 提取department结果 department_result = full_results[1]
如果你希望更直观地按名称提取,可以修改原模型的输出定义为字典格式(不影响模型训练逻辑):
model = keras.Model( inputs=[title_input, body_input, tags_input], outputs={"priority": priority_pred, "department": department_pred}, ) # 此时predict会返回字典,直接按键取值 results_dict = model.predict([title_input_data, body_input_data, tags_input_data]) priority_result = results_dict["priority"] department_result = results_dict["department"]
内容的提问来源于stack exchange,提问作者Joshua Jenny Sibbu
相关产品推荐
相关产品推荐

