예제 #1
0
 def serialize(self, serializer):
     current_position = serializer('current_position',
                                   self.current_position)
     epoch = serializer('epoch', self.epoch)
     is_new_epoch = serializer('is_new_epoch', self.is_new_epoch)
     order = self._state.order
     if order is not None:
         try:
             serializer('order', order)
         except KeyError:
             serializer('_order', order)
     self._state = _statemachine.IteratorState(
         current_position, epoch, is_new_epoch, order)
     try:
         self._previous_epoch_detail = serializer(
             'previous_epoch_detail', self._previous_epoch_detail)
     except KeyError:
         # guess previous_epoch_detail for older version
         self._previous_epoch_detail = self.epoch + \
             (self.current_position - self.batch_size) / self._epoch_size
         if self.epoch_detail > 0:
             self._previous_epoch_detail = max(
                 self._previous_epoch_detail, 0.)
         else:
             self._previous_epoch_detail = -1.
예제 #2
0
 def _reset_state(self, current_position, epoch, is_new_epoch, order):
     if self._finalized:
         raise NotImplementedError(
             'Reset of finalized MultiProcessIterator is currently not '
             'supported.')
     self._state = _statemachine.IteratorState(current_position, epoch,
                                               is_new_epoch, order)
     self._comm.reset(self._state)
예제 #3
0
 def reset(self):
     if self.order_sampler:
         order = self.order_sampler(
             numpy.arange(len(self.dataset)), 0)
     else:
         order = None
     self._state = _statemachine.IteratorState(0, 0, False, order)
     self._previous_epoch_detail = -1.
예제 #4
0
 def serialize(self, serializer):
     current_position = serializer(
         'current_position', self.current_position)
     epoch = serializer('epoch', self.epoch)
     is_new_epoch = serializer('is_new_epoch', self.is_new_epoch)
     order = serializer('_order', self._state.order)
     self._state = _statemachine.IteratorState(
         current_position, epoch, is_new_epoch, order)
     self._previous_epoch_detail = serializer(
         'previous_epoch_detail', self._previous_epoch_detail)
     # Old version serialized ``None``.
     if self._previous_epoch_detail is None:
         self._previous_epoch_detail = -1.
     self._next = None