From: @liuchongming74 Reviewed-by: @ouwenchang,@yelihua Signed-off-by: @yelihuapull/1279/MERGE
| @@ -19,7 +19,6 @@ from enum import unique, Enum | |||||
| from importlib import import_module | from importlib import import_module | ||||
| from lib2to3.pgen2 import parse | from lib2to3.pgen2 import parse | ||||
| from treelib.exceptions import DuplicatedNodeIdError, MultipleRootError, NodeIDAbsentError | |||||
| from mindinsight.mindconverter.common.log import logger as log, logger_console as log_console | from mindinsight.mindconverter.common.log import logger as log, logger_console as log_console | ||||
| @@ -36,10 +35,9 @@ class ConverterErrors(ScriptConverterErrors): | |||||
| BASE_CONVERTER_FAIL = 000 | BASE_CONVERTER_FAIL = 000 | ||||
| GRAPH_INIT_FAIL = 100 | GRAPH_INIT_FAIL = 100 | ||||
| TREE_CREATE_FAIL = 200 | |||||
| SOURCE_FILES_SAVE_FAIL = 300 | |||||
| GENERATOR_FAIL = 400 | |||||
| SUB_GRAPH_SEARCHING_FAIL = 500 | |||||
| SOURCE_FILES_SAVE_FAIL = 200 | |||||
| GENERATOR_FAIL = 300 | |||||
| SUB_GRAPH_SEARCHING_FAIL = 400 | |||||
| class ScriptNotSupport(MindInsightException): | class ScriptNotSupport(MindInsightException): | ||||
| @@ -273,30 +271,6 @@ class GraphInitError(MindConverterException): | |||||
| return except_source | return except_source | ||||
| class TreeCreationError(MindConverterException): | |||||
| """The tree create fail.""" | |||||
| @unique | |||||
| class ErrCode(Enum): | |||||
| """Define error code of TreeCreationError.""" | |||||
| UNKNOWN_ERROR = 0 | |||||
| NODE_INPUT_MISSING = 1 | |||||
| TREE_NODE_INSERT_FAIL = 2 | |||||
| BASE_ERROR_CODE = ConverterErrors.TREE_CREATE_FAIL.value | |||||
| ERROR_CODE = ErrCode.UNKNOWN_ERROR.value | |||||
| DEFAULT_MSG = "Error occurred when create hierarchical tree." | |||||
| def __init__(self, msg=DEFAULT_MSG): | |||||
| super(TreeCreationError, self).__init__(user_msg=msg) | |||||
| @classmethod | |||||
| def raise_from(cls): | |||||
| """Raise from exceptions below.""" | |||||
| except_source = NodeInputMissingError, TreeNodeInsertError, cls | |||||
| return except_source | |||||
| class SourceFilesSaveError(MindConverterException): | class SourceFilesSaveError(MindConverterException): | ||||
| """The source files save fail error.""" | """The source files save fail error.""" | ||||
| @@ -390,35 +364,6 @@ class RuntimeIntegrityError(GraphInitError): | |||||
| return RuntimeError, AttributeError, ImportError, ModuleNotFoundError, cls | return RuntimeError, AttributeError, ImportError, ModuleNotFoundError, cls | ||||
| class NodeInputMissingError(TreeCreationError): | |||||
| """The node input missing error.""" | |||||
| ERROR_CODE = TreeCreationError.ErrCode.NODE_INPUT_MISSING.value | |||||
| def __init__(self, msg): | |||||
| super(NodeInputMissingError, self).__init__(msg=msg) | |||||
| @classmethod | |||||
| def raise_from(cls): | |||||
| return ValueError, IndexError, KeyError, AttributeError, cls | |||||
| class TreeNodeInsertError(TreeCreationError): | |||||
| """The tree node create fail error.""" | |||||
| ERROR_CODE = TreeCreationError.ErrCode.TREE_NODE_INSERT_FAIL.value | |||||
| def __init__(self, msg): | |||||
| super(TreeNodeInsertError, self).__init__(msg=msg) | |||||
| @classmethod | |||||
| def raise_from(cls): | |||||
| """Raise from exceptions below.""" | |||||
| except_source = (OSError, | |||||
| DuplicatedNodeIdError, | |||||
| MultipleRootError, | |||||
| NodeIDAbsentError, cls) | |||||
| return except_source | |||||
| class NodeInputTypeNotSupportError(SourceFilesSaveError): | class NodeInputTypeNotSupportError(SourceFilesSaveError): | ||||
| """The node input type NOT support error.""" | """The node input type NOT support error.""" | ||||
| ERROR_CODE = SourceFilesSaveError.ErrCode.NODE_INPUT_TYPE_NOT_SUPPORT.value | ERROR_CODE = SourceFilesSaveError.ErrCode.NODE_INPUT_TYPE_NOT_SUPPORT.value | ||||
| @@ -12,18 +12,15 @@ | |||||
| | ModelLoadingError | Fail to load the model | 1000001 | Given `--input_nodes`, `--output_nodes`, `--shape` don't match the input model; Meanwhile, the model file can not be loaded also can cause this error | | | ModelLoadingError | Fail to load the model | 1000001 | Given `--input_nodes`, `--output_nodes`, `--shape` don't match the input model; Meanwhile, the model file can not be loaded also can cause this error | | ||||
| | TfRuntimeError | Fail to initialize the TF runtime | 1000002 | Resources required by TensorFlow are not available | | | TfRuntimeError | Fail to initialize the TF runtime | 1000002 | Resources required by TensorFlow are not available | | ||||
| | RuntimeIntegrityError | Fail to locate required third party dependency | 1000003 | Caused by required third party packages are not installed | | | RuntimeIntegrityError | Fail to locate required third party dependency | 1000003 | Caused by required third party packages are not installed | | ||||
| | TreeCreateFailError | Fail to create code hierarchical tree | 2000000 | Mainly caused by usage of `torch.nn.functional.xxx`, `torch.xxx`, `torch.Tensor.xxx` in PyTorch | | |||||
| | NodeInputMissingError | Fail to get the input node info | 2000001 | Fail to get input node info | | |||||
| | TreeNodeInsertError | Fail to insert tree node | 2000002 | Mainly caused by wrong scope name | | |||||
| | SourceFilesSaveError | Fail to generate or save converted script | 3000000 | Exception caused by 3000001~3000005 | | |||||
| | NodeInputTypeNotSupportError | Fail to recognize the input type of converted operator | 3000001 | Wrong input type set in mapper | | |||||
| | ScriptGenerationError | Fail to generate converted script | 3000002 | No left space on hard disk; Converted code is not legal; A file with the same name already exists in `--output` | | |||||
| | ReportGenerationError | Fail to generate converted script | 3000003 | No left space on hard disk; No available operator to be converted;A file with the same name already exists in `--report` | | |||||
| | CheckPointGenerationError | Fail to generate converted weight file | 3000004 | No left space on hard dist; A file with the same name already exists in `--output` | | |||||
| | WeightMapGenerationError | Fail to generate weight map file | 3000005 | No left space on hard dist; A file with the same name already exists in `--output` | | |||||
| | GeneratorError | Fail to generate code | 4000000 | Exception caused by 4000001~4000004 | | |||||
| | NodeLoadingError | Fail to load node information | 4000001 | Essential parameters are missing after conversion of a node | | |||||
| | NodeArgsTranslationError | Fail to translate the node's argument | 4000002 | Converted nodes have incorrect and conflicted information | | |||||
| | ModuleBuildError | Fail to build module instance | 4000003 | Converted nodes have incorrect and conflicted information with module | | |||||
| | CodeGenerationError | Fail to generate the code statement | 4000004 | Converted nodes have inconsistent information | | |||||
| | SubGraphSearchingError | Fail to find frequent sub-graph | 5000000 | Generally, caused by IR graph topological order error | | |||||
| | SourceFilesSaveError | Fail to generate or save converted script | 2000000 | Exception caused by 2000001~2000005 | | |||||
| | NodeInputTypeNotSupportError | Fail to recognize the input type of converted operator | 2000001 | Wrong input type set in mapper | | |||||
| | ScriptGenerationError | Fail to generate converted script | 2000002 | No left space on hard disk; Converted code is not legal; A file with the same name already exists in `--output` | | |||||
| | ReportGenerationError | Fail to generate converted script | 2000003 | No left space on hard disk; No available operator to be converted;A file with the same name already exists in `--report` | | |||||
| | CheckPointGenerationError | Fail to generate converted weight file | 2000004 | No left space on hard dist; A file with the same name already exists in `--output` | | |||||
| | WeightMapGenerationError | Fail to generate weight map file | 2000005 | No left space on hard dist; A file with the same name already exists in `--output` | | |||||
| | GeneratorError | Fail to generate code | 3000000 | Exception caused by 3000001~3000004 | | |||||
| | NodeLoadingError | Fail to load node information | 3000001 | Essential parameters are missing after conversion of a node | | |||||
| | NodeArgsTranslationError | Fail to translate the node's argument | 3000002 | Converted nodes have incorrect and conflicted information | | |||||
| | ModuleBuildError | Fail to build module instance | 3000003 | Converted nodes have incorrect and conflicted information with module | | |||||
| | CodeGenerationError | Fail to generate the code statement | 3000004 | Converted nodes have inconsistent information | | |||||
| | SubGraphSearchingError | Fail to find frequent sub-graph | 4000000 | Generally, caused by IR graph topological order error | | |||||
| @@ -11,19 +11,16 @@ | |||||
| | GraphInitFailError | 依据网络模型构建计算图失败 | 1000000 | 由1000001,1000002,1000003导致的计算图无法解析 | | | GraphInitFailError | 依据网络模型构建计算图失败 | 1000000 | 由1000001,1000002,1000003导致的计算图无法解析 | | ||||
| | ModelLoadingError | 模型加载失败 | 1000001 | 给定的`--input_nodes`, `--output_nodes`, `--shape`与实际模型不符;<br />或模型文件存在问题导致模型无法加载 | | | ModelLoadingError | 模型加载失败 | 1000001 | 给定的`--input_nodes`, `--output_nodes`, `--shape`与实际模型不符;<br />或模型文件存在问题导致模型无法加载 | | ||||
| | TfRuntimeError | TensorFlow库执行出错 | 1000002 | TensorFlow启动申请所需资源失败导致无法正常启动,<br />请检查系统资源(进程数、内存、显存占用、CPU占用)是否充足 | | | TfRuntimeError | TensorFlow库执行出错 | 1000002 | TensorFlow启动申请所需资源失败导致无法正常启动,<br />请检查系统资源(进程数、内存、显存占用、CPU占用)是否充足 | | ||||
| | RuntimeIntegrityError | 三方依赖库不完整 | 1000003 | MindConverter运行时所需的三方依赖库未安装 | | |||||
| | TreeCreateFailError | 依据计算图构建模型树失败 | 2000000 | Tree用于生成最终代码结构,<br />通常由于PyTorch网络中存在`torch.nn.functional.xxx`, `torch.xxx`, `torch.Tensor.xxx`算子导致 | | |||||
| | NodeInputMissingError | 网络节点输入信息丢失 | 2000001 | 节点的输入信息丢失 | | |||||
| | TreeNodeInsertError | 树节点构建失败 | 2000002 | 由于scope name错误,无法找到该节点的父节点 | | |||||
| | SourceFilesSaveError | 生成和保存转换后的脚本文件失败 | 3000000 | 由300000至3000005导致的脚本生成保存失败 | | |||||
| | NodeInputTypeNotSupportError | 网络节点输入类型未知 | 3000001 | 映射关系中设置节点输入类型错误 | | |||||
| | ScriptGenerationError | 转换脚本生成失败 | 3000002 | 空间不足;生成的脚本不符合PEP-8规范;`--output`目录下已有同名文件存在 | | |||||
| | ReportGenerationError | 转换报告生成失败 | 3000003 | 空间不足;脚本中没有需要转换的算子;`--report`目录下已有同名文件存在 | | |||||
| | CheckPointGenerationError | 转换权重生成失败 | 3000004 | 空间不足;`--output`目录下已有同名文件存在 | | |||||
| | WeightMapGenerationError | 权重映射表生成失败 | 3000005 | 空间不足;`--output`目录下已有同名文件存在 | | |||||
| | GeneratorError | 代码生成失败 | 4000000 |由4000001至4000004引发的代码生成模块错误 | | |||||
| | NodeLoadingError | 节点读取失败 | 4000001 |转换后的节点缺少必要参数 | | |||||
| | NodeArgsTranslationError | 节点参数转换失败 | 4000002 |转换后的节点参数信息不正确 | | |||||
| | ModuleBuildError | 模块搭建失败 | 4000003 |转换后的节点信息不正确,与模块信息冲突,导致模块生成失败 | | |||||
| | CodeGenerationError | 代码生成失败 | 4000004 |转换后的节点信息前后矛盾,生成过程产生冲突 | | |||||
| | SubGraphSearchingError | 子图模式挖掘失败 | 5000000 | 通常由于模型生成对应的拓扑序错误导致 | | |||||
| | RuntimeIntegrityError | 三方依赖库不完整 | 1000003 | MindConverter运行时所需的三方依赖库未安装 | | | |||||
| | SourceFilesSaveError | 生成和保存转换后的脚本文件失败 | 2000000 | 由200000至2000005导致的脚本生成保存失败 | | |||||
| | NodeInputTypeNotSupportError | 网络节点输入类型未知 | 2000001 | 映射关系中设置节点输入类型错误 | | |||||
| | ScriptGenerationError | 转换脚本生成失败 | 2000002 | 空间不足;生成的脚本不符合PEP-8规范;`--output`目录下已有同名文件存在 | | |||||
| | ReportGenerationError | 转换报告生成失败 | 2000003 | 空间不足;脚本中没有需要转换的算子;`--report`目录下已有同名文件存在 | | |||||
| | CheckPointGenerationError | 转换权重生成失败 | 2000004 | 空间不足;`--output`目录下已有同名文件存在 | | |||||
| | WeightMapGenerationError | 权重映射表生成失败 | 2000005 | 空间不足;`--output`目录下已有同名文件存在 | | |||||
| | GeneratorError | 代码生成失败 | 3000000 |由3000001至3000004引发的代码生成模块错误 | | |||||
| | NodeLoadingError | 节点读取失败 | 3000001 |转换后的节点缺少必要参数 | | |||||
| | NodeArgsTranslationError | 节点参数转换失败 | 3000002 |转换后的节点参数信息不正确 | | |||||
| | ModuleBuildError | 模块搭建失败 | 3000003 |转换后的节点信息不正确,与模块信息冲突,导致模块生成失败 | | |||||
| | CodeGenerationError | 代码生成失败 | 3000004 |转换后的节点信息前后矛盾,生成过程产生冲突 | | |||||
| | SubGraphSearchingError | 子图模式挖掘失败 | 4000000 | 通常由于模型生成对应的拓扑序错误导致 | | |||||
| @@ -28,7 +28,7 @@ from mindinsight.mindconverter.graph_based_converter.constant import FrameworkTy | |||||
| from mindinsight.mindconverter.graph_based_converter.generator import batch_add_nodes | from mindinsight.mindconverter.graph_based_converter.generator import batch_add_nodes | ||||
| from mindinsight.mindconverter.graph_based_converter.mapper import ONNXToMindSporeMapper | from mindinsight.mindconverter.graph_based_converter.mapper import ONNXToMindSporeMapper | ||||
| from mindinsight.mindconverter.common.log import logger as log, logger_console as log_console | from mindinsight.mindconverter.common.log import logger as log, logger_console as log_console | ||||
| from mindinsight.mindconverter.common.exceptions import GraphInitError, TreeCreationError, SourceFilesSaveError, \ | |||||
| from mindinsight.mindconverter.common.exceptions import GraphInitError, SourceFilesSaveError, \ | |||||
| BaseConverterError, UnknownModelError, GeneratorError, TfRuntimeError, RuntimeIntegrityError, ParamMissingError, \ | BaseConverterError, UnknownModelError, GeneratorError, TfRuntimeError, RuntimeIntegrityError, ParamMissingError, \ | ||||
| BadParamError | BadParamError | ||||
| from mindinsight.mindconverter.graph_based_converter.third_party_graph import GraphFactory | from mindinsight.mindconverter.graph_based_converter.third_party_graph import GraphFactory | ||||
| @@ -160,7 +160,6 @@ def _extract_model_name(model_path): | |||||
| @onnx_installation_validation | @onnx_installation_validation | ||||
| @GraphInitError.uniform_catcher() | @GraphInitError.uniform_catcher() | ||||
| @TreeCreationError.uniform_catcher() | |||||
| @SourceFilesSaveError.uniform_catcher() | @SourceFilesSaveError.uniform_catcher() | ||||
| @GeneratorError.uniform_catcher() | @GeneratorError.uniform_catcher() | ||||
| def graph_based_converter_onnx_to_ms(graph_path: str, | def graph_based_converter_onnx_to_ms(graph_path: str, | ||||
| @@ -188,7 +187,6 @@ def graph_based_converter_onnx_to_ms(graph_path: str, | |||||
| @tf_installation_validation | @tf_installation_validation | ||||
| @GraphInitError.uniform_catcher() | @GraphInitError.uniform_catcher() | ||||
| @TfRuntimeError.uniform_catcher() | @TfRuntimeError.uniform_catcher() | ||||
| @TreeCreationError.uniform_catcher() | |||||
| @SourceFilesSaveError.uniform_catcher() | @SourceFilesSaveError.uniform_catcher() | ||||
| @GeneratorError.uniform_catcher() | @GeneratorError.uniform_catcher() | ||||
| def graph_based_converter_tf_to_ms(graph_path: str, | def graph_based_converter_tf_to_ms(graph_path: str, | ||||
| @@ -18,5 +18,4 @@ six>=1.12.0 | |||||
| Werkzeug>=1.0.0 | Werkzeug>=1.0.0 | ||||
| pandas>=1.0.4 | pandas>=1.0.4 | ||||
| yapf>=0.30.0 | yapf>=0.30.0 | ||||
| treelib>=1.6.1 | |||||
| grpcio>=1.27.3 | grpcio>=1.27.3 | ||||