def Generator(arguments): properties = arguments.get(name, None) if properties is None: return arguments desc_name = name_v2 if name_v2 else name if name_v2: del arguments[name] if not isinstance(properties, (list, tuple)): properties = [properties] # Check whether to use desc tensor_in_properties = False for property in properties: if isinstance(property, Tensor): tensor_in_properties = True if tensor_in_properties: properties_t = [] for property in properties: if isinstance(property, Tensor): if as_target: if not 'extra_inputs' in arguments: arguments['extra_inputs'] = [] arguments['extra_inputs'].extend( [property]) properties_t.append(property.name) else: properties_t.append( Tensor.Convert(property, dtype=dtype).name) arguments[desc_name] = None arguments[desc_name + '_desc'] = properties_t else: arguments[desc_name] = properties return arguments
def Impl(*args, **kwargs): inputs = args[0] if isinstance(inputs, (list, tuple)): dtype = None for idx, input in enumerate(inputs): if isinstance(input, Tensor) and \ input.dtype is not None: dtype = input.dtype break for idx, input in enumerate(inputs): if not isinstance(input, Tensor): inputs[idx] = Tensor.Convert(input, dtype=dtype) return op_func(inputs + list(args[1:]), **kwargs) else: if not isinstance(inputs, Tensor): inputs = Tensor.Convert(inputs, dtype=None) return op_func([inputs] + list(args[1:]), **kwargs)
def AddArgumentsWithDesc(arguments, properties, name, type, as_target=True): if not isinstance(properties, (list, tuple)): properties = [properties] # check whether to use desc tensor_in_properties = False for property in properties: if isinstance(property, Tensor): tensor_in_properties = True if tensor_in_properties: properties_t = [] for property in properties: if isinstance(property, Tensor): if as_target: if not 'extra_inputs' in arguments: arguments['extra_inputs'] = [] arguments['extra_inputs'].extend([property]) properties_t.append(property.name) else: properties_t.append(Tensor.Convert(property, dtype=type).name) arguments[name] = None arguments[name + '_desc'] = properties_t return arguments