Browse Source

fix: process is not exit when oom / memory err in feed mode

tags/v1.1.0
jonyguo 5 years ago
parent
commit
742ec73fa3
1 changed files with 12 additions and 1 deletions
  1. +12
    -1
      mindspore/dataset/engine/iterators.py

+ 12
- 1
mindspore/dataset/engine/iterators.py View File

@@ -15,6 +15,8 @@
"""Built-in iterators.
"""
from abc import abstractmethod
import os
import signal
import weakref
import numpy as np

@@ -160,7 +162,16 @@ class DictIterator(Iterator):
Returns:
Dict, the next record in the dataset.
"""
return {k: self._transform_tensor(t) for k, t in self._iterator.GetNextAsMap().items()}
try:
return {k: self._transform_tensor(t) for k, t in self._iterator.GetNextAsMap().items()}
except RuntimeError as err:
## maybe "Out of memory" / "MemoryError" error
logger.error("Got runtime err: {}.".format(err))
err_info = str(err)
if err_info.find("Out of memory") >= 0 or err_info.find("MemoryError") >= 0:
logger.error("Memory error occurred, process will exit.")
os.kill(os.getpid(), signal.SIGKILL)
raise err


class TupleIterator(Iterator):


Loading…
Cancel
Save