ONE - On-device Neural Engine
Loading...
Searching...
No Matches
Concat.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 "
Concat.h
"
18
19
#include "
ONNXHelpers.h
"
20
#include "
AttributeHelpers.h
"
21
22
#include "
mir/ops/ConcatOp.h
"
23
24
namespace
mir_onnx
25
{
26
27
void
convertConcatV1
(
const
onnx::NodeProto &onnx_node,
ConverterContext
*context)
28
{
29
std::vector<mir::Operation::Output *> inputs = context->
getNodeInputs
(onnx_node);
30
mir::Graph
*graph = context->
getGraph
();
31
32
const
auto
axis = getAttributeValue<int64_t>(onnx_node,
"axis"
, 1);
33
34
auto
result = createOp<mir::ops::ConcatOp>(graph, inputs, axis)->getOutput(0);
35
36
context->
setNodeOutputs
(onnx_node, {result});
37
}
38
39
void
convertConcatV4
(
const
onnx::NodeProto &onnx_node,
ConverterContext
*context)
40
{
41
std::vector<mir::Operation::Output *> inputs = context->
getNodeInputs
(onnx_node);
42
mir::Graph
*graph = context->
getGraph
();
43
// From version 4 axis attribute is required
44
auto
attr =
findAttribute
(onnx_node,
"axis"
);
45
if
(!attr)
46
throw
std::runtime_error(
"Attribute axis is required!"
);
47
int32_t axis = attr->i();
48
49
auto
result = createOp<mir::ops::ConcatOp>(graph, inputs, axis)->getOutput(0);
50
51
context->
setNodeOutputs
(onnx_node, {result});
52
}
53
54
}
// namespace mir_onnx
AttributeHelpers.h
ConcatOp.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::convertConcatV4
void convertConcatV4(const onnx::NodeProto &onnx_node, ConverterContext *context)
Definition
Concat.cpp:39
mir_onnx::convertConcatV1
void convertConcatV1(const onnx::NodeProto &onnx_node, ConverterContext *context)
Definition
Concat.cpp:27
mir_onnx::findAttribute
const onnx::AttributeProto * findAttribute(const onnx::NodeProto &node, const std::string &name)
Definition
AttributeHelpers.h:74
Concat.h
compiler
mir
src
mir_onnx_importer
Op
Concat.cpp
Generated by
1.9.8