2017-10-07 1 views
0

私はcntkでシンプルLSTMネットワークをしようとしていますし、私は次のエラーを取得する:CNTKファイル名を指定して実行時エラー

RuntimeError        Traceback (most recent call last) 
<ipython-input-58-d0a0e4f580aa> in <module>() 
     6   trainer.train_minibatch({x: x1, l: y1}) 
     7  if epoch % (EPOCHS/10) == 0: 
----> 8   training_loss = trainer.previous_minibatch_loss_average 
     9   loss_summary.append(training_loss) 
    10   print("epoch: {}, loss: {:.5f}".format(epoch, training_loss)) 

C:\Program Files\Anaconda3\envs\python2\lib\site-packages\cntk\train\trainer.pyc in previous_minibatch_loss_average(self) 
    285   The average training loss per sample for the last minibatch trained 
    286   ''' 
--> 287   return super(Trainer, self).previous_minibatch_loss_average() 
    288 
    289  @property 

C:\Program Files\Anaconda3\envs\python2\lib\site-packages\cntk\cntk_py.pyc in previous_minibatch_loss_average(self) 
    2516 
    2517  def previous_minibatch_loss_average(self): 
-> 2518   return _cntk_py.Trainer_previous_minibatch_loss_average(self) 
    2519 
    2520  def previous_minibatch_evaluation_average(self): 

RuntimeError: There was no preceeding call to TrainMinibatch or the minibatch was empty. 

[CALL STACK] 
    > CNTK::Trainer:: PreviousMinibatchLossAverage 
    - 00007FFFA932A5F6 (SymFromAddr() error: Attempt to access invalid address.) 
    - PyCFunction_Call 
    - PyEval_GetGlobals 
    - PyEval_EvalFrameEx 
    - PyEval_GetFuncDesc 
    - PyEval_GetGlobals 
    - PyEval_EvalFrameEx 
    - PyEval_EvalCodeEx 
    - PyFunction_SetClosure 
    - PyObject_Call (x2) 
    - PyObject_CallFunction 
    - PyObject_GenericGetAttrWithDict 
    - PyType_Lookup 
    - PyEval_EvalFrameEx 

関連するコードは次のとおりです。今

# train 
loss_summary = [] 
start = time.time() 
for epoch in range(0, EPOCHS): 
    for x1, y1 in next_batch(x_train, y_train): 
     trainer.train_minibatch({x: x1, l: y1}) 
    if epoch % (EPOCHS/10) == 0: 
     training_loss = trainer.previous_minibatch_loss_average 
     loss_summary.append(training_loss) 
     print("epoch: {}, loss: {:.5f}".format(epoch, training_loss)) 

、私はこの時に立ち往生しています今何時起こっているのか理解できない。私はhttps://notebooks.azure.com/cntk/libraries/tutorials/html/CNTK_106A_LSTM_Timeseries_with_Simulated_Data.ipynbでチュートリアルに従っており、Googleを検索しても役に立たない。

ありがとうございました。

答えて

1

ちょっとしたアイデア:for(next minibatch)ループが実行されないことはありますか?

私はそれをpdbを使ってデバッグしようとします。あなたのジュピターセルの上部にちょうどimport pdbを入れ、for x1, y1 ..ループの前にpdb.set_trace()を追加してください。セルを実行します。ステップを使用してメソッドに移動するか、next(n)を使用して進むことができます。それはトレースを分析するのに役立ち、pdbでプリントを使用して変数を証明することができます。

関連する問題