ONE - On-device Neural Engine
Loading...
Searching...
No Matches
StridedSlice.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2021 Samsung Electronics Co., Ltd. All Rights Reserved
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
#include "
Builders.h
"
18
19
#include "
kernels/StridedSlice.h
"
20
21
namespace
luci_interpreter
22
{
23
24
std::unique_ptr<Kernel>
build_kernel_CircleStridedSlice
(
const
luci::CircleNode
*circle_node,
25
KernelBuilderHelper
&helper)
26
{
27
const
auto
*node = loco::must_cast<const luci::CircleStridedSlice *>(circle_node);
28
assert(node->arity() == 4);
29
30
const
Tensor
*input = helper.
getInputTensor
(node->input());
31
const
Tensor
*
begin
= helper.
getInputTensor
(node->begin());
32
const
Tensor
*end = helper.
getInputTensor
(node->end());
33
const
Tensor
*strides = helper.
getInputTensor
(node->strides());
34
35
Tensor
*output = helper.
getOutputTensor
(node);
36
37
StridedSliceParams
params{};
38
params.
begin_mask
= node->begin_mask();
39
params.ellipsis_mask = node->ellipsis_mask();
40
params.end_mask = node->end_mask();
41
params.new_axis_mask = node->new_axis_mask();
42
params.shrink_axis_mask = node->shrink_axis_mask();
43
44
return
std::make_unique<kernels::StridedSlice>(input,
begin
, end, strides, output, params);
45
}
46
47
}
// namespace luci_interpreter
luci_interpreter::KernelBuilderHelper
Definition
KernelBuilderHelper.h:33
luci_interpreter::KernelBuilderHelper::getOutputTensor
Tensor * getOutputTensor(const loco::Node *node) const
Definition
KernelBuilderHelper.cpp:40
luci_interpreter::KernelBuilderHelper::getInputTensor
const Tensor * getInputTensor(const loco::Node *node) const
Definition
KernelBuilderHelper.cpp:24
luci_interpreter::Tensor
Definition
Tensor.h:101
StridedSlice.h
luci_interpreter
Definition
BuddyMemoryManager.h:22
luci_interpreter::build_kernel_CircleStridedSlice
std::unique_ptr< Kernel > build_kernel_CircleStridedSlice(const luci::CircleNode *circle_node, KernelBuilderHelper &helper)
Definition
StridedSlice.cpp:24
Builders.h
begin
int32_t begin[5]
Definition
Slice.cpp:33
luci::CircleNode
Definition
CircleNodeDecl.h:40
luci_interpreter::StridedSliceParams
Definition
KernelParams.h:231
luci_interpreter::StridedSliceParams::begin_mask
int32_t begin_mask
Definition
KernelParams.h:232
compiler
luci-interpreter
src
loader
nodes
StridedSlice.cpp
Generated by
1.9.8