首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CNTK运行时错误

CNTK运行时错误
EN

Stack Overflow用户
提问于 2017-10-07 16:13:47
回答 1查看 110关注 0票数 0

我正在cntk中尝试一个简单的lstm网络,并得到以下错误:

代码语言:javascript
复制
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

有关守则是:

代码语言:javascript
复制
# 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))

现在,我被困在这几个小时,无法理解发生了什么。我正在Data.ipynb上学习一个教程,搜索google也没有帮助。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-11 20:21:12

只是一个想法:您的for (下一个小型批处理)循环永远不会执行吗?

我会尝试使用pdb来调试它。只需将import pdb放在jupyter单元格的顶部,并在for x1, y1 ..循环之前添加一个pdb.set_trace()。查一下牢房。您可以使用步骤(s)进入方法,也可以使用next (n)前进。这可能会帮助您分析跟踪,您可以使用pdb中的打印来验证变量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46622363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档