ONE - On-device Neural Engine
Loading...
Searching...
No Matches
CircleMul.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 "
luci/Service/CircleShapeInference.h
"
18
19
#include "
CircleCloneNode.h
"
20
#include "
CircleShapeInferenceHelper.h
"
21
22
namespace
luci
23
{
24
25
luci::CircleNode
*
CloneNodeLet<CN::KLMN>::visit
(
const
luci::CircleMul
*node)
26
{
27
if
(node->
fusedActivationFunction
() ==
luci::FusedActFunc::UNDEFINED
)
28
return
nullptr
;
29
30
auto
*cloned = _graph->nodes()->create<
luci::CircleMul
>();
31
if
(cloned !=
nullptr
)
32
cloned->
fusedActivationFunction
(node->
fusedActivationFunction
());
33
return
cloned;
34
}
35
36
namespace
sinf
37
{
38
39
loco::TensorShape
Algorithm::visit
(
const
luci::CircleMul
*node)
40
{
41
const
auto
x = loco::must_cast<luci::CircleNode *>(node->
x
());
42
const
auto
y = loco::must_cast<luci::CircleNode *>(node->
y
());
43
44
const
auto
x_shape =
circle_shape
(x);
45
const
auto
y_shape =
circle_shape
(y);
46
47
return
broadcast_shape
(x_shape, y_shape);
48
}
49
50
}
// namespace sinf
51
52
}
// namespace luci
CircleCloneNode.h
CircleShapeInference.h
CircleShapeInferenceHelper.h
loco::TensorShape
Definition
TensorShape.h:29
luci::CircleMul
MUL in Circle.
Definition
CircleMul.h:34
luci::CircleMul::y
loco::Node * y(void) const
Definition
CircleMul.h:39
luci::CircleMul::x
loco::Node * x(void) const
Definition
CircleMul.h:36
luci::CircleNodeMixin< CircleNodeTrait::FusedActFunc >::fusedActivationFunction
FusedActFunc fusedActivationFunction() const
Definition
CircleNodeMixins.h:45
luci::CloneNodeLet
Definition
CircleCloneNode.h:39
luci::sinf::Algorithm::visit
loco::TensorShape visit(const luci::CircleNode *node) final
Default fallback.
Definition
CircleShapeInference.h:42
luci::sinf::broadcast_shape
loco::TensorShape broadcast_shape(const loco::TensorShape &x, const loco::TensorShape &y)
Definition
CircleShapeInferenceHelper.cpp:152
luci::sinf::circle_shape
loco::TensorShape circle_shape(const luci::CircleNode *node)
Definition
CircleShapeInferenceHelper.cpp:143
luci
Definition
DepthwiseConv2D.h:24
luci::FusedActFunc::UNDEFINED
@ UNDEFINED
luci::CircleNode
Definition
CircleNodeDecl.h:40
compiler
luci
service
src
Nodes
CircleMul.cpp
Generated by
1.9.8