52 const circle::Tensor *input;
53 const circle::Tensor *axis;
54 const circle::Tensor *output;
60 const circle::SplitOptions *options;
67 status = runtime_kernel.
readKernel(op_index, runtime_context);
71 input = runtime_kernel.
inputs[inputTensorIdx];
72 axis = runtime_kernel.
inputs[axisTensorIdx];
73 output = runtime_kernel.
outputs[outputTensorIdx];
74 assert(input !=
nullptr);
75 assert(axis !=
nullptr);
76 assert(output !=
nullptr);
78 status = runtime_kernel.
getDataFromStorage(op_index, runtime_storage, runtime_context);
82 input_data = runtime_kernel.
inputs_data[inputTensorIdx];
83 axis_data = runtime_kernel.
inputs_data[axisTensorIdx];
84 assert(input_data !=
nullptr);
85 assert(axis_data !=
nullptr);
86 options = runtime_kernel.
first_operator->builtin_options_as_SplitOptions();
88 params.num_outputs = options->num_splits();
90 for (uint32_t i = 0; i < params.num_outputs; ++i)
100 int32_t axis_value = utils::castInputData<int32_t>(axis_data)[0];
106 switch (input->type())
109 case circle::TensorType_FLOAT32:
110 status = pal::Split<float>(params, input_shape, core::utils::castInputData<float>(input_data),
115 case circle::TensorType_INT8:
118 pal::Split<int8_t>(params, input_shape, core::utils::castInputData<int8_t>(input_data),
126 assert(
false &&
"Unsupported type.");