You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by GitBox <gi...@apache.org> on 2019/07/14 03:13:01 UTC

[GitHub] [incubator-mxnet] turtleizzy opened a new issue #15535: mxnet.io.NDArrayIter does not properly function when len(data) * 2 < batch_size and last_batch_handle='pad'

turtleizzy opened a new issue #15535: mxnet.io.NDArrayIter does not properly function when len(data) * 2 < batch_size and last_batch_handle='pad'
URL: https://github.com/apache/incubator-mxnet/issues/15535
 
 
   mxnet version: `1.4.0`
   minimal steps to reproduce:
   ```
   data = mx.nd.arange(4)
   dtIter = mx.io.NDArrayIter(data, batch_size=9, last_batch_handle='pad')
   for i in dtIter:
       print (i.data)
   ```
   ```
   IndexError                                Traceback (most recent call last)
   <ipython-input-76-d82503158b2b> in <module>
   ----> 1 for i in dtIter:
         2     print (i.data)
   
   /usr/local/lib/python3.6/site-packages/mxnet/io/io.py in __next__(self)
       226 
       227     def __next__(self):
   --> 228         return self.next()
       229 
       230     def iter_next(self):
   
   /usr/local/lib/python3.6/site-packages/mxnet/io/io.py in next(self)
       678         if not self.iter_next():
       679             raise StopIteration
   --> 680         data = self.getdata()
       681         label = self.getlabel()
       682         # iter should stop when last batch is not complete
   
   /usr/local/lib/python3.6/site-packages/mxnet/io/io.py in getdata(self)
       760     def getdata(self):
       761         """Get data."""
   --> 762         return self._batchify(self.data)
       763 
       764     def getlabel(self):
   
   /usr/local/lib/python3.6/site-packages/mxnet/io/io.py in _batchify(self, data_source)
       747             pad = self.batch_size - self.num_data + self.cursor
       748             first_data = self._getdata(data_source, start=self.cursor)
   --> 749             second_data = self._getdata(data_source, end=pad)
       750             return self._concat(first_data, second_data)
       751         # normal case
   
   /usr/local/lib/python3.6/site-packages/mxnet/io/io.py in _getdata(self, data_source, start, end)
       703                 list(self.idx[s]).index(i)
       704                 for i in sorted(self.idx[s])
   --> 705             ]]) for x in data_source
       706         ]
       707 
   
   /usr/local/lib/python3.6/site-packages/mxnet/io/io.py in <listcomp>(.0)
       703                 list(self.idx[s]).index(i)
       704                 for i in sorted(self.idx[s])
   --> 705             ]]) for x in data_source
       706         ]
       707 
   
   /usr/local/lib/python3.6/site-packages/mxnet/ndarray/ndarray.py in __getitem__(self, key)
       504         indexing_dispatch_code = _get_indexing_dispatch_code(key)
       505         if indexing_dispatch_code == _NDARRAY_BASIC_INDEXING:
   --> 506             return self._get_nd_basic_indexing(key)
       507         elif indexing_dispatch_code == _NDARRAY_ADVANCED_INDEXING:
       508             return self._get_nd_advanced_indexing(key)
   
   /usr/local/lib/python3.6/site-packages/mxnet/ndarray/ndarray.py in _get_nd_basic_indexing(self, key)
       785                 return op.slice(self, begin=(key.start,), end=(key.stop,), step=(key.step,))
       786             elif key.start is not None or key.stop is not None:
   --> 787                 return self._slice(key.start, key.stop)
       788             else:
       789                 return self
   
   /usr/local/lib/python3.6/site-packages/mxnet/ndarray/ndarray.py in _slice(self, start, stop)
       900         """
       901         handle = NDArrayHandle()
   --> 902         start, stop, _ = _get_index_range(start, stop, self.shape[0])
       903 
       904         check_call(_LIB.MXNDArraySlice(
   
   /usr/local/lib/python3.6/site-packages/mxnet/ndarray/ndarray.py in _get_index_range(start, stop, length, step)
      2325             raise IndexError('Slicing stop %d exceeds limit of %d' % (stop-length, length))
      2326     elif stop > length:
   -> 2327         raise IndexError('Slicing stop %d exceeds limit of %d' % (stop, length))
      2328 
      2329     return start, stop, step
   
   IndexError: Slicing stop 5 exceeds limit of 4
   ```

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services