MCPcopy Create free account
hub / github.com/MegEngine/MegEngine / LITE_tensor_slice

Function LITE_tensor_slice

lite/lite-c/src/tensor.cpp:118–140  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

116}
117
118int LITE_tensor_slice(
119 const LiteTensor tensor, const size_t* start, const size_t* end,
120 const size_t* step, size_t size, LiteTensor* slice_tensor) {
121 LITE_CAPI_BEGIN();
122 LITE_ASSERT(
123 tensor && start && end && slice_tensor,
124 "The tensor pass to LITE c_api is null");
125 std::vector<size_t> starts, ends, steps;
126 for (size_t i = 0; i < size; i++) {
127 starts.push_back(start[i]);
128 ends.push_back(end[i]);
129 if (step) {
130 steps.push_back(step[i]);
131 }
132 }
133 auto ret_tensor = static_cast<lite::Tensor*>(tensor)->slice(starts, ends, steps);
134 {
135 LITE_LOCK_GUARD(mtx_tensor);
136 get_global_tensor_holder()[ret_tensor.get()] = ret_tensor;
137 }
138 *slice_tensor = ret_tensor.get();
139 LITE_CAPI_END();
140}
141
142int LITE_tensor_fill_zero(LiteTensor tensor) {
143 LITE_CAPI_BEGIN();

Callers 1

TESTFunction · 0.85

Calls 3

push_backMethod · 0.45
sliceMethod · 0.45
getMethod · 0.45

Tested by 1

TESTFunction · 0.68