parameters: (op_node: Node, port_info: str, input_port: int)
docstring: StridedSLice must be permuted even if input or output tensors have rank lesser than 4
      e.g. input_shape = (1, 10, 10), out = input[:, 0:10, :, new_axis], input_rank < 4
      input_shape = (1, 10, 10, 3), out = input[:, 0:5, 0:4, 0], output_rank < 4
      in both examples slice_rank is >= 4
      slice_rank is defined by length of begin, end, strides (they all are of the same length)
docstring_summary: StridedSLice must be permuted even if input or output tensors have rank lesser than 4
      e.g. input_shape = (1, 10, 10), out = input[:, 0:10, :, new_axis], input_rank < 4
      input_shape = (1, 10, 10, 3), out = input[:, 0:5, 0:4, 0], output_rank < 4
      in both examples slice_rank is >= 4
      slice_rank is defined by length of begin, end, strides (they all are of the same length)
docstring_tokens: StridedSLice must be permuted even if input or output tensors have rank lesser than 4 e . g . input_shape = ( 1 10 10 ) out = input [ : 0 : 10 : new_axis ] input_rank < 4 input_shape = ( 1 10 10 3 ) out = input [ : 0 : 5 0 : 4 0 ] output_rank < 4 in both examples slice_rank is > = 4 slice_rank is defined by length of begin end strides ( they all are of the same length )
function: def strided_slice(op_node: Node, port_info: str, input_port: int):
      """
      StridedSLice must be permuted even if input or output tensors have rank lesser than 4
      e.g. input_shape = (1, 10, 10), out = input[:, 0:10, :, new_axis], input_rank < 4
      input_shape = (1, 10, 10, 3), out = input[:, 0:5, 0:4, 0], output_rank < 4
      in both examples slice_rank is >= 4
      slice_rank is defined by length of begin, end, strides (they all are of the same length)
      """
      permutation_data_node = get_node_with_permutation(op_node, port_info)
      assert permutation_data_node.has_and_set('permutation'), 'Data node "{}" does not have permutation for node {}, ' \
                                                               'port_info "{}".'.format(permutation_data_node.id,
                                                                                        op_node.id, port_info)
      permute_indices_for_gather = permutation_data_node.permutation.perm
      if len(permute_indices_for_gather) == 0:
          return
      from openvino.tools.mo.ops.op import PermuteAttrs
  
      slice_rank = op_node.in_port(input_port).data.get_shape()[0]  # length of begin, end or strides
      permute_indices_for_gather = PermuteAttrs.get_nhwc_to_nchw_permutation(slice_rank).perm
      reorder_inputs_for_shape_or_slice(op_node, input_port, permute_indices_for_gather)
function_tokens: def strided_slice ( op_node : Node , port_info : str , input_port : int ) : permutation_data_node = get_node_with_permutation ( op_node , port_info ) assert permutation_data_node . has_and_set ( 'permutation' ) , 'Data node "{}" does not have permutation for node {}, ' 'port_info "{}".' . format ( permutation_data_node . id , op_node . id , port_info ) permute_indices_for_gather = permutation_data_node . permutation . perm if len ( permute_indices_for_gather ) == 0 : return from openvino . tools . mo . ops . op import PermuteAttrs slice_rank = op_node . in_port ( input_port ) . data . get_shape ( ) [ 0 ] # length of begin, end or strides permute_indices_for_gather = PermuteAttrs . get_nhwc_to_nchw_permutation ( slice_rank ) . perm reorder_inputs_for_shape_or_slice ( op_node , input_port , permute_indices_for_gather )