def backend_attrs(self): if self.ir_version == 10: return [ ('dilations', lambda node: ','.join(map(str, node['dilation'][node.spatial_dims]))), ('strides', lambda node: ','.join(map(str, node['stride'][node.spatial_dims]))), ('pads_begin', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 0))) if node.has_valid( 'pad') else None), ('pads_end', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 1))) if node.has_valid( 'pad') else None), 'auto_pad', ] return [ ('dilations', lambda node: ','.join(map(str, node['dilation'][node.spatial_dims])) if node.has_valid('dilation') else None), 'auto_pad', 'group', ('strides', lambda node: ','.join(map(str, node['stride'][node.spatial_dims]))), ('kernel', lambda node: ','.join(map(str, node['kernel_spatial']))), ('pads_begin', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 0)))), ('pads_end', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 1)))), 'output' ]
def backend_attrs(self): if self.ir_version == 10: return [ 'auto_pad', ('strides', lambda node: ','.join(map(str, node['stride'][node.spatial_dims]))), ('dilations', lambda node: ','.join(map(str, node['dilation'][node.spatial_dims]))), ('pads_begin', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 0)))), ('pads_end', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 1)))), ('output_padding', lambda node: ','.join(map(str, node.output_padding[node.spatial_dims])) \ if node.has_valid('output_padding') else None), # for BinaryConvolution only 'pad_value', 'mode', ] return [ 'auto_pad', 'group', ('strides', lambda node: ','.join(map(str, node['stride'][node.spatial_dims]))), ('dilations', lambda node: ','.join(map(str, node['dilation'][node.spatial_dims]))), ('kernel', lambda node: ','.join(map(str, node['kernel_spatial'])) \ if node.has_valid('kernel_spatial') else None), ('pads_begin', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 0)))), ('pads_end', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 1)))), 'output', 'pad_value', 'mode', 'input', ]
def backend_attrs(self): return [ 'auto_pad', 'group', ('strides', lambda node: ','.join(map(str, node['stride'][node.spatial_dims]))), ('kernel', lambda node: ','.join(map(str, node['kernel_spatial']))), ('pads_begin', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 0)))), ('pads_end', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 1)))), 'output' ]
def backend_attrs(self): return [ ('strides', lambda node: ','.join(map(str, node['stride'][node.spatial_dims]))), ('kernel', lambda node: ','.join(map(str, node['window'][node.spatial_dims]))), ('pads_begin', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 0)))), ('pads_end', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 1)))), ('exclude-pad', lambda node: bool_to_str(node, 'exclude_pad')), 'rounding_type', ('auto_pad', lambda node: node.auto_pad if node.has_valid('auto_pad') else 'explicit'), ]
def backend_attrs(self): return [ ('strides', lambda node: ','.join(map(str, node['stride'][node.spatial_dims]))), ('kernel', lambda node: ','.join(map(str, node['window'][node.spatial_dims]))), ('pads_begin', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 0)))), ('pads_end', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 1)))), ('pool-method', 'pool_method'), ('exclude-pad', 'exclude_pad'), 'rounding_type', 'auto_pad', ]
def backend_attrs(self): return [ ('dilations', lambda node: ','.join( map(str, node['dilation'][node.spatial_dims]))), ('strides', lambda node: ','.join(map(str, node['stride'][node.spatial_dims])) ), ('pads_begin', lambda node: ','.join( map(str, get_backend_pad(node.pad, node.spatial_dims, 0))) if node.has_valid('pad') else None), ('pads_end', lambda node: ','.join( map(str, get_backend_pad(node.pad, node.spatial_dims, 1))) if node.has_valid('pad') else None), 'auto_pad', ]
def backend_attrs(self): return [ 'auto_pad', 'group', ('strides', lambda node: ','.join(map(str, node['stride'][node.spatial_dims]))), ('dilations', lambda node: ','.join(map(str, node['dilation'][node.spatial_dims]))), ('kernel', lambda node: ','.join(map(str, node['kernel_spatial'])) \ if node.has_valid('kernel_spatial') else None), ('pads_begin', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 0)))), ('pads_end', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 1)))), 'output', 'pad_value', 'mode', 'input', ]
def pad_attribute_helper(node: Node, pad_type: str='begin'): assert pad_type in ['begin', 'end'] if not node.has_valid('pad'): return None pad = get_backend_pad(node.pad, node.spatial_dims, 0 if pad_type == 'begin' else 1) if node.has_valid('auto_pad') and node.auto_pad != 'explicit': pad = [0 for _ in pad] return ','.join(map(str, pad))
def backend_attrs(self): if self.ir_version == 10: def pad_attribute_helper(node: Node, pad_type: str = 'begin'): assert pad_type in ['begin', 'end'] if not node.has_valid('pad'): return None pad = get_backend_pad(node.pad, node.spatial_dims, 0 if pad_type == 'begin' else 1) if node.has_valid('auto_pad'): pad = [0 for _ in pad] return ','.join(map(str, pad)) return [ 'auto_pad', ('strides', lambda node: ','.join(map(str, node['stride'][node.spatial_dims]))), ('dilations', lambda node: ','.join(map(str, node['dilation'][node.spatial_dims]))), ('pads_begin', lambda node: pad_attribute_helper(node, 'begin')), ('pads_end', lambda node: pad_attribute_helper(node, 'end')), ('output_padding', lambda node: ','.join(map(str, node.output_padding[node.spatial_dims])) \ if node.has_valid('output_padding') else None), # for BinaryConvolution only 'pad_value', 'mode', ] return [ 'auto_pad', 'group', ('strides', lambda node: ','.join(map(str, node['stride'][node.spatial_dims]))), ('dilations', lambda node: ','.join(map(str, node['dilation'][node.spatial_dims]))), ('kernel', lambda node: ','.join(map(str, node['kernel_spatial'])) \ if node.has_valid('kernel_spatial') else None), ('pads_begin', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 0)))), ('pads_end', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 1)))), 'output', 'pad_value', 'mode', 'input', ]