2017-12-04 47 views
-2

私はTensorflowバックエンドとKerasにCNNを訓練していますためアクセスできない歴史、 Keras:損失や精度

mod1=gmodel.fit(images, train_labels, 
     batch_size=100, 
     epochs=2, 
     verbose=1, 
     validation_data=(test_images, test_labels)) 

、すべてのエポックで、私は、出力精度と損失で印刷見ることができます

(までここにすべてが大丈夫と思われる)。終わり

Epoch 1/10 
1203/1203 [==============================] - 190s - loss: 0.7600 - acc: 0.5628 
- val_loss: 0.5592 - val_acc: 0.6933 
Epoch 2/10 
1203/1203 [==============================] - 187s - loss: 0.5490 - acc: 0.6933 
- val_loss: 0.4589 - val_acc: 0.7930 
Epoch 3/10 
.... 

、私は以前のプロジェクトで、私は

mod1.history['val_loss'] 

を通じて検証損失をアクセスしてきたが、.history()が空であるかのように、私はエラーを取得していますので、検証損失をプロットしたいです。

TypeError         Traceback (most recent call last) 
<ipython-input-23-ecdd306e9232> in <module>() 
----> 1 modl.history() 
TypeError: 'History' object is not callable 

EDIT(以下の答えの後):私は、例えば、損失にアクセスしよう:

--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-34-06fcc6efb374> in <module>() 
----> 1 mod1.history['val_loss'] 

TypeError: 'History' object is not subscriptable 

は私が前に、この問題のようなものを発見していないので、私は何にとして失われています起こっている可能性がありますかデバッグする方法。

どのような指針やアイデアをいただければ幸いです。

+1

"歴史" オブジェクトは呼び出し可能ではありませんここでは、私は(Pythonの3.5)を得るものです。あなたが '()'を使ってはならないことは明らかです。括弧は関数を "呼び出す"。 –

+0

1)あなたの質問を編集した後*回答が投稿された後、回答者が馬鹿みたいに見えないように、「編集」を指示するのがよい習慣です2)誰かがあなたの質問に答えたとき最初に説明したように、upvotingは良い礼儀です3)私は実際に以下のmod1.history ['val_loss'] 'の場合を示しました。単純に 'mod1.history'と' type(mod1.history) 'を試してみてください - あなたが適切な辞書を取得しなければ、ここに表示されていないコードの部分に何か間違いがあります(今でも、 'modl'( 'l')と' mod1'( '1')の両方で - 1つはタイプミスでなければなりません)... – desertnaut

答えて

0

あなたがmod1.history['val_loss']と呼ばれていると言うが、あなたのエラーメッセージが異なる物語 - おそらく、ダニエル・モラーはすでにコメントしているとして、あなたが実際に持っているが(括弧ですなわち)mod1.history()のようなものを使用。

mod1.history() 
--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-20-67bafe3187cc> in <module>() 
----> 1 mod1.history() 

TypeError: 'dict' object is not callable 

mod1.history()で呼び出される関数ではなく、Pythonの辞書:

mod1.history 
# result: 
{'acc': [0.82374999999999998, 
    0.94294999999999995, 
    0.95861666666666667, 
    ...], 
'loss': [0.62551526172161098, 
    0.18810810926556587, 
    0.13734668906728426, 
    ...], 
'val_loss': [12.05395287322998, 
    11.584557554626464, 
    10.949809835815429, 
    ...]} 

mod1.history['val_loss'] 
# result: 
[12.05395287322998, 
11.584557554626464, 
10.949809835815429, 
...] 
+0

mod1.history()がうまく動作しないことを指摘してくれてありがとう。 mod1.history ['val_loss']は私に "subscriptableではない"というエラーを与えています。私はKerasのエキスパートではありませんが、以前は損失と正確さにアクセスしていましたが、なぜ今回もなぜそれを行えないのか非常に混乱しています。 – user3177938

+0

@ user3177938これは最初に報告したエラーではありませんでした。 – desertnaut

+0

私はおそらく誤って、mod1.history ['val_loss']にそのエラーが出て以来、それは歴史の中に辞書がなかったからです。だから、私はmod1.history()をやってみたのです – user3177938

関連する問題