2017-04-19 3 views
1

CNTK Python APIで複数の出力を持つモデルを作成、保存、読み込み、評価する際の推奨事項は何ですか? (私はCNTK 2.0 RC1を使用しています)CNTK Python API:隠れ層/複数出力を評価する

実行時にネットワークを定義すると、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固有のものは見つかりませんでした。

答えて

1

model.outputs [0]変数は、あなたがmodel.outputs [0] .owner、またはas_composite(model.outputs [0] .owner)の所有者であればによってその機能に行くことができています

as_composite(model.outputs[0].owner).eval(...) 
+0

'cntkを使用してモデルの最後の層を準備:

だからこれを試してみてください(のみ即時入力を示し、マッピングのためのルート入力変数を示し対複合機能)の原始関数です。結合する前に結合する(別の投稿にZhouの提案に従って)、次に 'asモデルをロードした後、_composite(model.outputs [0] .owner).eval(...) 'が私の問題を解決しました。 –

関連する問題