跳到主要内容
版本:0.21.0

tvm.error

TVM 中的结构化错误类。

每个错误类都接受一个错误消息作为输入。有关建议的消息格式,请参见示例部分。为了提高代码可读性,建议开发者复制示例并使用相同的消息格式来抛出错误。

备注

另请参阅错误处理指南

函数:

register_error([name_or_cls, cls])注册一个错误类,以便 FFI 错误处理器能够识别它。

异常:

TVMErrorTVM 的通用错误基类。
InternalError系统内部错误。
RPCError由远程服务器在处理 RPC 调用时抛出的错误。
RPCSessionTimeoutError当 RPC 会话过期时由远程服务器抛出的错误。
OpError前端所有算子错误的基类。
OpNotImplemented算子未实现。
OpAttributeRequired找不到所需的算子属性。
OpAttributeInvalid前端算子接收的属性值无效。
OpAttributeUnImplemented在某些前端中不支持该属性。
DiagnosticError在执行某个 Pass 时报告的错误诊断。

tvm.error.register_error(name_or_cls=None,cls=None)

注册一个错误类,以便 FFI 错误处理器能够识别它。

  • 参数:
    • name_or_cls (str 或 class) – 错误类的名称或类对象。
    • cls (class) – 要注册的类。
  • 返回:fregister – 如果未指定 f,则返回用于注册的函数。
  • 返回类型: function

示例:

@tvm.error.register_error
class MyError(RuntimeError):
pass

err_inst = tvm.error.create_ffi_error("MyError: xyz")
assert isinstance(err_inst, MyError)

exceptiontvm.error.TVMError

exceptiontvm.error.InternalError

系统内部错误。

示例

// C++ 示例
LOG(FATAL) << "InternalError: internal error detail.";
# Python 示例
raise InternalError("internal error detail")

exceptiontvm.error.RPCError

由远程服务器在处理 RPC 调用时抛出的错误。

exceptiontvm.error.RPCSessionTimeoutError

当 RPC 会话过期时由远程服务器抛出的错误。

exceptiontvm.error.OpError

前端所有算子错误的基类。

exceptiontvm.error.OpNotImplemented

算子未实现。

示例

raise OpNotImplemented(
"Operator {} is not supported in {} frontend".format(
missing_op, frontend_name))

exceptiontvm.error.OpAttributeRequired

所需属性未找到。

示例

raise OpAttributeRequired(
"Required attribute {} not found in operator {}".format(
attr_name, op_name))

exceptiontvm.error.OpAttributeInvalid

在接收前端算子时,属性值无效。

示例

raise OpAttributeInvalid(
"Value {} in attribute {} of operator {} is not valid".format(
value, attr_name, op_name))

exceptiontvm.error.OpAttributeUnImplemented

属性在该前端中不支持。

示例

raise OpAttributeUnImplemented(
"Attribute {} is not supported in operator {}".format(
attr_name, op_name))

exceptiontvm.error.DiagnosticError

在执行 Pass 时报告的错误诊断。

有关详细错误信息,请参见配置的诊断渲染器。