改善格式错误的输入格式的错误消息?

时间:2017-01-09 12:20:49

标签: cntk

我有一个包含如下数据的地图文件:

|labels 0 0 1 0 0 0 |features 0
|labels 1 0 0 0 0 0 |features 2
|labels 0 0 0 1 0 0 |features 3
|labels 0 0 0 0 0 1 |features 7

使用以下代码将数据读入小批量:

from cntk import Trainer, StreamConfiguration, text_format_minibatch_source, learning_rate_schedule, UnitType

mb_source = text_format_minibatch_source('test_map2.txt', [
    StreamConfiguration('features', 1),
    StreamConfiguration('labels', num_classes)])

test_minibatch = mb_source.next_minibatch(2)

如果输入文件格式错误,您有时会收到相当神秘的错误消息。例如,输入文件中最后一行末尾的缺少换行符将导致如下错误:

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-35-2f1481ccfced> in <module>()
----> 1 test_minibatch = mb_source.next_minibatch(2)

C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py34\lib\site-packages\cntk\utils\swig_helper.py in wrapper(*args, **kwds)
     56     @wraps(f)
     57     def wrapper(*args, **kwds):
---> 58         result = f(*args, **kwds)
     59         map_if_possible(result)
     60         return result

C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py34\lib\site-packages\cntk\io\__init__.py in next_minibatch(self, minibatch_size_in_samples, input_map, device)
    159 
    160         mb = super(MinibatchSource, self).get_next_minibatch(
--> 161                 minibatch_size_in_samples, device)
    162 
    163         if input_map:

C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py34\lib\site-packages\cntk\cntk_py.py in get_next_minibatch(self, *args)
   1914 
   1915     def get_next_minibatch(self, *args):
-> 1916         return _cntk_py.MinibatchSource_get_next_minibatch(self, *args)
   1917 MinibatchSource_swigregister = _cntk_py.MinibatchSource_swigregister
   1918 MinibatchSource_swigregister(MinibatchSource)

RuntimeError: Invalid chunk requested.

有时可能很难弄清楚文件中的哪个位置会出现问题。是否可以发出更具体的错误消息。输入文件中的行号很有用。

1 个答案:

答案 0 :(得分:3)

感谢您报告此问题。我们已经创建了一个错误,并将致力于通过错误的输入修复读者行为。