ONE - On-device Neural Engine
Loading...
Searching...
No Matches
Add.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2019 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 "
Add.h
"
18
19
#include "
ONNXHelpers.h
"
20
#include "
AttributeHelpers.h
"
21
22
#include "
mir/ops/AddOp.h
"
23
24
namespace
mir_onnx
25
{
26
27
void
convertAddV1
(
const
onnx::NodeProto &onnx_node,
ConverterContext
*context)
28
{
29
// consumed_inputs attribute not used
30
convertAddV6
(onnx_node, context);
31
}
32
33
void
convertAddV6
(
const
onnx::NodeProto &onnx_node,
ConverterContext
*context)
34
{
35
// broadcast attribute not used
36
const
auto
*axis =
findAttribute
(onnx_node,
"axis"
);
37
if
(axis !=
nullptr
)
38
throw
std::runtime_error(
"Not supported axis attribute in Add operation!"
);
39
40
convertAddV7
(onnx_node, context);
41
}
42
43
void
convertAddV7
(
const
onnx::NodeProto &onnx_node,
ConverterContext
*context)
44
{
45
std::vector<mir::Operation::Output *> inputs = context->
getNodeInputs
(onnx_node);
46
mir::Graph
*graph = context->
getGraph
();
47
48
auto
result = createOp<mir::ops::AddOp>(graph, inputs[0], inputs[1])->getOutput(0);
49
50
context->
setNodeOutputs
(onnx_node, {result});
51
}
52
53
}
// namespace mir_onnx
AddOp.h
AttributeHelpers.h
ONNXHelpers.h
mir::Graph
Definition
Graph.h:35
mir_onnx::ConverterContext
Definition
ONNXNodeConverterRegistry.h:43
mir_onnx::ConverterContext::setNodeOutputs
void setNodeOutputs(const onnx::NodeProto &onnx_node, const std::vector< mir::Operation::Output * > &outputs)
Definition
ONNXNodeConverterRegistry.cpp:96
mir_onnx::ConverterContext::getNodeInputs
std::vector< mir::Operation::Output * > getNodeInputs(const onnx::NodeProto &onnx_node) const
Definition
ONNXNodeConverterRegistry.cpp:79
mir_onnx::ConverterContext::getGraph
mir::Graph * getGraph() const
Definition
ONNXNodeConverterRegistry.h:53
mir_onnx
Definition
ONNXImporterImpl.h:26
mir_onnx::convertAddV7
void convertAddV7(const onnx::NodeProto &onnx_node, ConverterContext *context)
Definition
Add.cpp:43
mir_onnx::convertAddV1
void convertAddV1(const onnx::NodeProto &onnx_node, ConverterContext *context)
Definition
Add.cpp:27
mir_onnx::findAttribute
const onnx::AttributeProto * findAttribute(const onnx::NodeProto &node, const std::string &name)
Definition
AttributeHelpers.h:74
mir_onnx::convertAddV6
void convertAddV6(const onnx::NodeProto &onnx_node, ConverterContext *context)
Definition
Add.cpp:33
Add.h
compiler
mir
src
mir_onnx_importer
Op
Add.cpp
Generated by
1.9.8