在CNTK Python API中创建,保存,加载和评估具有多个输出的模型有哪些建议? (我正在使用CNTK 2.0 RC1)
在运行时定义网络时,可以通过将minibatch字典传递给eval函数来轻松评估网络的任何层。
但是,在保存模型并再次加载模型之后,我可以通过提供输入来评估输出节点(而且我不知道如何在Python API中定义多个输出)。我可以使用find_all_by_name方法访问任何层,但是当我尝试使用eval方法评估隐藏层时,它希望我提供层的直接输入,而不是相关网络的输入:
ValueError: No value specified for input Variable 'Output('Block1958_Output_0', [#], [1024 x 200])' of Function 'Dense: Output('Block1958_Output_0', [#], [1024
x 200]) -> Output('conversation_vector', [#], [100])'.
我仅找到有关该主题的以下文档,该文档适用于Brainscript:https://github.com/Microsoft/CNTK/wiki/CNTK-Evaluate-Hidden-Layers-我找不到特定于Python API的任何内容。
最佳答案
model.outputs [0]是一个变量,如果所有者是原始函数(仅显示该变量,则可以通过model.outputs [0] .owner或as_composite(model.outputs [0] .owner)转到其函数。立即输入与复合函数,后者显示要映射的根输入变量)
所以试试这个:
as_composite(model.outputs[0].owner).eval(...)
关于python - CNTK Python API:评估隐藏层/多个输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43507047/