|
|
|
@@ -80,6 +80,13 @@ def make_tensor(data, data_type=mstype.int64, data_shape=None): |
|
|
|
return Tensor(data, data_type) |
|
|
|
|
|
|
|
|
|
|
|
@constexpr |
|
|
|
def judge_data_rank(data_rank, min_data_rank=0, max_data_rank=8): |
|
|
|
if data_rank < min_data_rank or data_rank > max_data_rank: |
|
|
|
raise ValueError(f"The input data's rank should in the range of[{min_data_rank}, " |
|
|
|
f"{max_data_rank}], bug actually is '{data_rank}'") |
|
|
|
|
|
|
|
|
|
|
|
@constexpr |
|
|
|
def check_ellipsis_shape_size(data_shape, value_shape, data_size, value_size): |
|
|
|
"""Checks the shape and size of the sensor and value.""" |
|
|
|
@@ -148,14 +155,14 @@ def judge_index_type(index_type, target_type): |
|
|
|
def check_type_valid(dtype, target_type, op_name): |
|
|
|
if dtype != target_type and (isinstance(target_type, (list, tuple)) and dtype not in target_type): |
|
|
|
raise TypeError( |
|
|
|
f"The '{op_name}' doesn't supoort {dtype}' and expecte to receive {target_type}.") |
|
|
|
f"The '{op_name}' doesn't supoort {dtype}' and expect to receive {target_type}.") |
|
|
|
|
|
|
|
|
|
|
|
@constexpr |
|
|
|
def check_index_type_valid(dtype, target_type, op_name): |
|
|
|
if dtype != target_type and (isinstance(target_type, (list, tuple)) and dtype not in target_type): |
|
|
|
raise IndexError( |
|
|
|
f"The '{op_name}' doesn't supoort {dtype}' and expecte to receive {target_type}.") |
|
|
|
f"The '{op_name}' doesn't supoort {dtype}' and expect to receive {target_type}.") |
|
|
|
|
|
|
|
|
|
|
|
@constexpr |
|
|
|
@@ -330,12 +337,12 @@ def integer_to_indices(index, shape): |
|
|
|
|
|
|
|
|
|
|
|
@constexpr |
|
|
|
def tuple_element_is_int(indexs): |
|
|
|
def tuple_element_is_int(indexes): |
|
|
|
"""Judges tuple element type.""" |
|
|
|
if not indexs: |
|
|
|
if not indexes: |
|
|
|
raise IndexError("Tensor's index cannot be empty.") |
|
|
|
if isinstance(indexs, tuple): |
|
|
|
for _, ele in enumerate(indexs): |
|
|
|
if isinstance(indexes, tuple): |
|
|
|
for _, ele in enumerate(indexes): |
|
|
|
if not isinstance(ele, int): |
|
|
|
return False |
|
|
|
return True |
|
|
|
@@ -509,7 +516,7 @@ def transform_sequence_index(sequence_index, shape, op_name): |
|
|
|
if bool_count == shape: |
|
|
|
list_index = list(filter(lambda i: sequence_index[i], range(bool_count))) |
|
|
|
else: |
|
|
|
raise IndexError("The boolean array should have the same length with the corresponding dimensiton") |
|
|
|
raise IndexError("The boolean array should have the same length with the corresponding dimension") |
|
|
|
else: |
|
|
|
list_index = [int(index) for index in sequence_index] |
|
|
|
|
|
|
|
|