AttrCvt

AttrCvt#

AttrCvt 的类,它是通用的属性转换器。该类用于将给定的属性字典进行转换,并返回新的属性字典。

该类的构造函数接受以下参数:

  • op_name:算子名称,可以是字符串或可调用对象。如果是字符串,则返回的算子名称为该字符串;如果是可调用对象,则通过调用 op_name(attr) 来获取算子名称。

  • transforms:一个字典,包含要进行转换的属性名和对应的新属性名、默认值以及转换函数。如果只提供了新属性名,则相当于重命名属性名;如果提供了默认值,则该属性被视为可选;如果提供了转换函数,则使用该函数处理原始属性值。

  • excludes:一个列表,包含不应出现的被排除属性。如果出现了这些属性,则会引发 NotImplementedError 异常。

  • disables:一个列表,包含在 relay 中禁用的属性。会记录警告日志。

  • ignores:一个列表,包含在 relay 中忽略的属性。会记录调试级别的日志。

  • extras:一个字典,包含一系列要添加到返回的属性字典中的额外属性。

  • custom_check:一个可调用对象,接受属性作为参数,并返回 True/False。如果返回的不是 True,则会引发 RuntimeError 异常。

该类还定义了一些辅助方法,如 __call__ 方法用于执行属性转换,_parse_default 方法用于解析默认值,_parse_bool 方法用于解析布尔值,以及 _required_attr 方法用于获取必需的属性。

使用示例:

attr_converter = AttrConverter(op_name, transforms={'a':'b', 'c':('d', 1)})
new_op_name, new_attr = attr_converter(attrs)