def __call__(self, *input_tensor_list): tensor_row = [ cde.Tensor(np.asarray(tensor)) for tensor in input_tensor_list ] callable_op = cde.Execute(self.parse()) output_tensor_list = callable_op(tensor_row) for i, element in enumerate(output_tensor_list): arr = element.as_array() if arr.dtype.char == 'S': output_tensor_list[i] = np.char.decode(arr) else: output_tensor_list[i] = arr return output_tensor_list[0] if len( output_tensor_list) == 1 else tuple(output_tensor_list)
def __call__(self, *input_tensor_list): tensor_row = [] for tensor in input_tensor_list: try: tensor_row.append(cde.Tensor(np.asarray(tensor))) except RuntimeError: raise TypeError("Invalid user input. Got {}: {}, cannot be converted into tensor." \ .format(type(tensor), tensor)) callable_op = cde.Execute(self.parse()) output_tensor_list = callable_op(tensor_row) for i, element in enumerate(output_tensor_list): arr = element.as_array() if arr.dtype.char == 'S': output_tensor_list[i] = np.char.decode(arr) else: output_tensor_list[i] = arr return output_tensor_list[0] if len(output_tensor_list) == 1 else tuple(output_tensor_list)
def __call__(self, input_tensor): if not isinstance(input_tensor, list): input_list = [input_tensor] else: input_list = input_tensor tensor_list = [] for tensor in input_list: if not isinstance(tensor, str): raise TypeError("Input should be string or list of strings, got {}.".format(type(tensor))) tensor_list.append(cde.Tensor(np.asarray(tensor))) callable_op = cde.Execute(self.parse()) output_list = callable_op(tensor_list) for i, element in enumerate(output_list): arr = element.as_array() if arr.dtype.char == 'S': output_list[i] = to_str(arr) else: output_list[i] = arr if not isinstance(input_tensor, list) and len(output_list) == 1: output_list = output_list[0] return output_list