forked from mindspore-Ecosystem/mindspore
!6249 [MD] fix coredump raised by ctrl c in transform script
Merge pull request !6249 from liyong126/fix_coredump
This commit is contained in:
commit
5ffec7efaf
|
@ -16,6 +16,10 @@
|
||||||
This module is to write data into mindrecord.
|
This module is to write data into mindrecord.
|
||||||
"""
|
"""
|
||||||
import os
|
import os
|
||||||
|
import sys
|
||||||
|
import threading
|
||||||
|
import traceback
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import mindspore._c_mindrecord as ms
|
import mindspore._c_mindrecord as ms
|
||||||
from .common.exceptions import ParamValueError, MRMUnsupportedSchemaError
|
from .common.exceptions import ParamValueError, MRMUnsupportedSchemaError
|
||||||
|
@ -41,6 +45,23 @@ VALUE_TYPE_MAP = {"int": ["int32", "int64"], "float": ["float32", "float64"], "s
|
||||||
VALID_ATTRIBUTES = ["int32", "int64", "float32", "float64", "string", "bytes"]
|
VALID_ATTRIBUTES = ["int32", "int64", "float32", "float64", "string", "bytes"]
|
||||||
VALID_ARRAY_ATTRIBUTES = ["int32", "int64", "float32", "float64"]
|
VALID_ARRAY_ATTRIBUTES = ["int32", "int64", "float32", "float64"]
|
||||||
|
|
||||||
|
class ExceptionThread(threading.Thread):
|
||||||
|
""" class to pass exception"""
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
threading.Thread.__init__(self, *args, **kwargs)
|
||||||
|
self.res = SUCCESS
|
||||||
|
self.exitcode = 0
|
||||||
|
self.exception = None
|
||||||
|
self.exc_traceback = ''
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
try:
|
||||||
|
if self._target:
|
||||||
|
self.res = self._target(*self._args, **self._kwargs)
|
||||||
|
except Exception as e: # pylint: disable=W0703
|
||||||
|
self.exitcode = 1
|
||||||
|
self.exception = e
|
||||||
|
self.exc_traceback = ''.join(traceback.format_exception(*sys.exc_info()))
|
||||||
|
|
||||||
def check_filename(path):
|
def check_filename(path):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -24,7 +24,8 @@ from mindspore import log as logger
|
||||||
from .cifar100 import Cifar100
|
from .cifar100 import Cifar100
|
||||||
from ..common.exceptions import PathNotExistsError
|
from ..common.exceptions import PathNotExistsError
|
||||||
from ..filewriter import FileWriter
|
from ..filewriter import FileWriter
|
||||||
from ..shardutils import check_filename, SUCCESS
|
from ..shardutils import check_filename, ExceptionThread, SUCCESS
|
||||||
|
|
||||||
try:
|
try:
|
||||||
cv2 = import_module("cv2")
|
cv2 = import_module("cv2")
|
||||||
except ModuleNotFoundError:
|
except ModuleNotFoundError:
|
||||||
|
@ -65,7 +66,7 @@ class Cifar100ToMR:
|
||||||
self.destination = destination
|
self.destination = destination
|
||||||
self.writer = None
|
self.writer = None
|
||||||
|
|
||||||
def transform(self, fields=None):
|
def run(self, fields=None):
|
||||||
"""
|
"""
|
||||||
Executes transformation from cifar100 to MindRecord.
|
Executes transformation from cifar100 to MindRecord.
|
||||||
|
|
||||||
|
@ -104,6 +105,15 @@ class Cifar100ToMR:
|
||||||
return FAILED
|
return FAILED
|
||||||
return SUCCESS
|
return SUCCESS
|
||||||
|
|
||||||
|
def transform(self, fields=None):
|
||||||
|
t = ExceptionThread(target=self.run, kwargs={'fields': fields})
|
||||||
|
t.daemon = True
|
||||||
|
t.start()
|
||||||
|
t.join()
|
||||||
|
if t.exitcode != 0:
|
||||||
|
raise t.exception
|
||||||
|
return t.res
|
||||||
|
|
||||||
def _construct_raw_data(images, fine_labels, coarse_labels):
|
def _construct_raw_data(images, fine_labels, coarse_labels):
|
||||||
"""
|
"""
|
||||||
Construct raw data from cifar100 data.
|
Construct raw data from cifar100 data.
|
||||||
|
|
|
@ -24,7 +24,7 @@ from mindspore import log as logger
|
||||||
from .cifar10 import Cifar10
|
from .cifar10 import Cifar10
|
||||||
from ..common.exceptions import PathNotExistsError
|
from ..common.exceptions import PathNotExistsError
|
||||||
from ..filewriter import FileWriter
|
from ..filewriter import FileWriter
|
||||||
from ..shardutils import check_filename, SUCCESS, FAILED
|
from ..shardutils import check_filename, ExceptionThread, SUCCESS, FAILED
|
||||||
try:
|
try:
|
||||||
cv2 = import_module("cv2")
|
cv2 = import_module("cv2")
|
||||||
except ModuleNotFoundError:
|
except ModuleNotFoundError:
|
||||||
|
@ -65,7 +65,7 @@ class Cifar10ToMR:
|
||||||
self.destination = destination
|
self.destination = destination
|
||||||
self.writer = None
|
self.writer = None
|
||||||
|
|
||||||
def transform(self, fields=None):
|
def run(self, fields=None):
|
||||||
"""
|
"""
|
||||||
Executes transformation from cifar10 to MindRecord.
|
Executes transformation from cifar10 to MindRecord.
|
||||||
|
|
||||||
|
@ -100,6 +100,15 @@ class Cifar10ToMR:
|
||||||
return FAILED
|
return FAILED
|
||||||
return SUCCESS
|
return SUCCESS
|
||||||
|
|
||||||
|
def transform(self, fields=None):
|
||||||
|
t = ExceptionThread(target=self.run, kwargs={'fields': fields})
|
||||||
|
t.daemon = True
|
||||||
|
t.start()
|
||||||
|
t.join()
|
||||||
|
if t.exitcode != 0:
|
||||||
|
raise t.exception
|
||||||
|
return t.res
|
||||||
|
|
||||||
def _construct_raw_data(images, labels):
|
def _construct_raw_data(images, labels):
|
||||||
"""
|
"""
|
||||||
Construct raw data from cifar10 data.
|
Construct raw data from cifar10 data.
|
||||||
|
|
|
@ -20,7 +20,7 @@ import os
|
||||||
|
|
||||||
from mindspore import log as logger
|
from mindspore import log as logger
|
||||||
from ..filewriter import FileWriter
|
from ..filewriter import FileWriter
|
||||||
from ..shardutils import check_filename
|
from ..shardutils import check_filename, ExceptionThread
|
||||||
|
|
||||||
try:
|
try:
|
||||||
pd = import_module("pandas")
|
pd = import_module("pandas")
|
||||||
|
@ -116,7 +116,7 @@ class CsvToMR:
|
||||||
row[col] = r[col]
|
row[col] = r[col]
|
||||||
yield row
|
yield row
|
||||||
|
|
||||||
def transform(self):
|
def run(self):
|
||||||
"""
|
"""
|
||||||
Executes transformation from csv to MindRecord.
|
Executes transformation from csv to MindRecord.
|
||||||
|
|
||||||
|
@ -166,3 +166,12 @@ class CsvToMR:
|
||||||
ret = self.writer.commit()
|
ret = self.writer.commit()
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
def transform(self):
|
||||||
|
t = ExceptionThread(target=self.run)
|
||||||
|
t.daemon = True
|
||||||
|
t.start()
|
||||||
|
t.join()
|
||||||
|
if t.exitcode != 0:
|
||||||
|
raise t.exception
|
||||||
|
return t.res
|
||||||
|
|
|
@ -21,7 +21,7 @@ import time
|
||||||
from mindspore import log as logger
|
from mindspore import log as logger
|
||||||
from ..common.exceptions import PathNotExistsError
|
from ..common.exceptions import PathNotExistsError
|
||||||
from ..filewriter import FileWriter
|
from ..filewriter import FileWriter
|
||||||
from ..shardutils import check_filename
|
from ..shardutils import check_filename, ExceptionThread
|
||||||
|
|
||||||
__all__ = ['ImageNetToMR']
|
__all__ = ['ImageNetToMR']
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ class ImageNetToMR:
|
||||||
data["image"] = image_bytes
|
data["image"] = image_bytes
|
||||||
yield data
|
yield data
|
||||||
|
|
||||||
def transform(self):
|
def run(self):
|
||||||
"""
|
"""
|
||||||
Executes transformation from imagenet to MindRecord.
|
Executes transformation from imagenet to MindRecord.
|
||||||
|
|
||||||
|
@ -170,3 +170,12 @@ class ImageNetToMR:
|
||||||
logger.info("--------------------------------------------")
|
logger.info("--------------------------------------------")
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
def transform(self):
|
||||||
|
t = ExceptionThread(target=self.run)
|
||||||
|
t.daemon = True
|
||||||
|
t.start()
|
||||||
|
t.join()
|
||||||
|
if t.exitcode != 0:
|
||||||
|
raise t.exception
|
||||||
|
return t.res
|
||||||
|
|
|
@ -23,7 +23,7 @@ import numpy as np
|
||||||
|
|
||||||
from mindspore import log as logger
|
from mindspore import log as logger
|
||||||
from ..filewriter import FileWriter
|
from ..filewriter import FileWriter
|
||||||
from ..shardutils import check_filename, SUCCESS, FAILED
|
from ..shardutils import check_filename, ExceptionThread, SUCCESS, FAILED
|
||||||
|
|
||||||
try:
|
try:
|
||||||
cv2 = import_module("cv2")
|
cv2 = import_module("cv2")
|
||||||
|
@ -217,7 +217,7 @@ class MnistToMR:
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def transform(self):
|
def run(self):
|
||||||
"""
|
"""
|
||||||
Executes transformation from Mnist to MindRecord.
|
Executes transformation from Mnist to MindRecord.
|
||||||
|
|
||||||
|
@ -233,3 +233,12 @@ class MnistToMR:
|
||||||
return FAILED
|
return FAILED
|
||||||
|
|
||||||
return SUCCESS
|
return SUCCESS
|
||||||
|
|
||||||
|
def transform(self):
|
||||||
|
t = ExceptionThread(target=self.run)
|
||||||
|
t.daemon = True
|
||||||
|
t.start()
|
||||||
|
t.join()
|
||||||
|
if t.exitcode != 0:
|
||||||
|
raise t.exception
|
||||||
|
return t.res
|
||||||
|
|
|
@ -21,7 +21,7 @@ import numpy as np
|
||||||
|
|
||||||
from mindspore import log as logger
|
from mindspore import log as logger
|
||||||
from ..filewriter import FileWriter
|
from ..filewriter import FileWriter
|
||||||
from ..shardutils import check_filename
|
from ..shardutils import check_filename, ExceptionThread
|
||||||
|
|
||||||
try:
|
try:
|
||||||
tf = import_module("tensorflow") # just used to convert tfrecord to mindrecord
|
tf = import_module("tensorflow") # just used to convert tfrecord to mindrecord
|
||||||
|
@ -235,7 +235,7 @@ class TFRecordToMR:
|
||||||
except tf.errors.InvalidArgumentError:
|
except tf.errors.InvalidArgumentError:
|
||||||
raise ValueError("TFRecord feature_dict parameter error.")
|
raise ValueError("TFRecord feature_dict parameter error.")
|
||||||
|
|
||||||
def transform(self):
|
def run(self):
|
||||||
"""
|
"""
|
||||||
Executes transform from TFRecord to MindRecord.
|
Executes transform from TFRecord to MindRecord.
|
||||||
|
|
||||||
|
@ -267,3 +267,12 @@ class TFRecordToMR:
|
||||||
logger.info("Transformed {} records...".format(transform_count))
|
logger.info("Transformed {} records...".format(transform_count))
|
||||||
break
|
break
|
||||||
return writer.commit()
|
return writer.commit()
|
||||||
|
|
||||||
|
def transform(self):
|
||||||
|
t = ExceptionThread(target=self.run)
|
||||||
|
t.daemon = True
|
||||||
|
t.start()
|
||||||
|
t.join()
|
||||||
|
if t.exitcode != 0:
|
||||||
|
raise t.exception
|
||||||
|
return t.res
|
||||||
|
|
Loading…
Reference in New Issue