2017-11-25 20 views
-1

モデルのトレーニング後、どのようにメトリクスを予測して評価できますか?
コードは次のようである: Kerasのメトリックの予測と評価

for patch in generator(): 
    pred = model.predict(np.array(patch, dtype=patch.dtype)) 

    loss_val_partial,accuracy_val_partial = model.test_on_batch(np.array(patch, dtype=patch.dtype),pred) 

またはこのような

グランドトゥルースは、パッチの真のラベルです
for patch in generator(): 
    pred = model.predict(np.array(patch, dtype=patch.dtype)) 

    loss_val_partial,accuracy_val_partial = model.test_on_batch(ground_truth,pred) 

私は精度が常に1.0

+0

、それはその後、助けた場合の答え – DAXaholic

答えて

2

ある右のため、最初はあなたの最初のコードリストの問題は、あなたが最初にあなたのモデルと出力を予測して、グラウンドトゥルースとして、この結果predを使用することではないと思いますテストのために、あなたはもちろん1.0

の精度がtest_on_batch方法についてsignatureを参照しているだろうように:

test_on_batch(self, x, y, sample_weight=None) 

だから私はYのためにそれを自分自身をテストすることはできませんコードの一部しか表示していないためです私はあなたの地面の真実はどこから来るのか知っている)が、このような何かをしようと、それはtest_on_batchであなたのために内部的に行われているように、すなわち、単に手動予測ステップを削除しないでください:

for patch in generator(): 
    loss_val_partial,accuracy_val_partial = model.test_on_batch(np.array(patch, dtype=patch.dtype), ground_truth) 
+0

を受け入れてください。 test_on_batchメソッドは予測を返さない私は予測とメトリクスの両方を必要とする...それは私も予測を使用する理由だ – leoScomme

+0

ええ、それは大丈夫だが、これは間違っているとしてあなたの予測を渡すことはありません(あなたはあなたのacc = 1.0) – DAXaholic

+0

okですので、解決策はあなたのものですが、予測が必要な場合は、予測方法を追加する必要があります。 – leoScomme

関連する問題