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_to(property, 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 input in inputs: if isinstance(input, Tensor) and \ input.dtype is not None: dtype = input.dtype break for i, input in enumerate(inputs): if not isinstance(input, Tensor): inputs[i] = Tensor.convert_to(input, dtype) return op_func(inputs + list(args[1:]), **kwargs) else: if not isinstance(inputs, Tensor): inputs = Tensor.convert_to(inputs) return op_func([inputs] + list(args[1:]), **kwargs)