2017-03-07 5 views
1

私はCNTK.load_model()機能を使用してロードしている訓練されたモデルを持っています。私はモデル評価コードのリファレンスとしてCNTK git repoのMNIST Tutorialを見ていました。私は何のinput_variableを持っていない(MinibatchSourceオブジェクトである)データリーダーを作成し、(this answerと同様に)mb = minibatch_source.next_minibatch(...)CNTK python API:訓練されたモデルから予測を取得するにはどうすればよいですか?

model.eval(mb)を実行しようとしている。しかし、私は、次のエラーメッセージ

Traceback (most recent call last): 
    File "LID_test.py", line 162, in <module> 
     test_and_evaluate() 
    File "LID_test.py", line 159, in test_and_evaluate 
     predictions = model.eval(mb) 
    File "/home/t-asbahe/anaconda3/envs/cntk-py35/lib/python3.5/site-packages/cntk/ops/functions.py", line 228, in eval 
     _, output_map = self.forward(arguments, self.outputs, device=device, as_numpy=as_numpy) 
    File "/home/t-asbahe/anaconda3/envs/cntk-py35/lib/python3.5/site-packages/cntk/utils/swig_helper.py", line 62, in wrapper 
     result = f(*args, **kwds) 
    File "/home/t-asbahe/anaconda3/envs/cntk-py35/lib/python3.5/site-packages/cntk/ops/functions.py", line 354, in forward 
     None, device) 
    File "/home/t-asbahe/anaconda3/envs/cntk-py35/lib/python3.5/site-packages/cntk/utils/__init__.py", line 393, in sanitize_var_map 
     if len(arguments) < len(op_arguments): 
TypeError: object of type 'Variable' has no len() 

を取得していています私のモデルでは'Variable'という名前が付けられていますが、このエラーが発生する理由は何もありません。

PS:私の入力がまばらな入力(1-HOTS)

答えて

1

ているあなたは、いくつかのオプションがあります。

  • (CNTK 202チュートリアルのインスタンス)numpyの配列としてデータのセットを渡すをどこonehotデータは、数が​​少ない配列として渡されます。

    PRED = model.eval({model.arguments [0]:[onehot]})

  • minibatchデータを読んで、評価関数に

    eval_input_map = {入力渡し:reader_evalを。 streams.features}
    eval_data = reader_eval.next_minibatch(eval_minibatch_size、 input_map = eval_input_map) MYDATA = eval_data [入力] は= model.eval(MYDATA)

予測.VALUE
関連する問題