ONE - On-device Neural Engine
Loading...
Searching...
No Matches
Layout.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018 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
#ifndef __ONERT_IR_LAYOUT_H__
18
#define __ONERT_IR_LAYOUT_H__
19
20
#include <functional>
21
#include <stdexcept>
22
#include <string>
23
24
namespace
onert::ir
25
{
26
27
enum class
Layout
28
{
29
UNKNOWN
= 0,
30
NHWC
,
31
NCHW
32
};
33
34
// PermuteType::SAME is used for data forwarding and type conversion
35
enum class
PermuteType
36
{
37
NHWC_TO_NCHW
,
38
NCHW_TO_NHWC
,
39
SAME
40
};
41
42
inline
std::string
to_string
(
Layout
layout)
43
{
44
switch
(layout)
45
{
46
case
Layout::NHWC
:
47
return
std::string{
"NHWC"
};
48
case
Layout::NCHW
:
49
return
std::string{
"NCHW"
};
50
case
Layout::UNKNOWN
:
51
return
std::string{
"UNKNOWN"
};
52
default
:
53
throw
std::runtime_error(
"WRONG LAYOUT"
);
54
}
55
}
56
57
}
// namespace onert::ir
58
59
namespace
std
60
{
61
62
template
<>
struct
hash<
onert
::ir::Layout>
63
{
64
size_t
operator()
(
onert::ir::Layout
value)
const
noexcept
65
{
66
using
type =
typename
std::underlying_type<onert::ir::Layout>::type;
67
return
hash<type>()(
static_cast<
type
>
(value));
68
}
69
};
70
71
}
// namespace std
72
73
#endif
// __ONERT_IR_LAYOUT_H__
onert::ir
Definition
CircleExporter.h:30
onert::ir::to_string
std::string to_string(Layout layout)
Definition
Layout.h:42
onert::ir::Layout
Layout
Definition
Layout.h:28
onert::ir::Layout::UNKNOWN
@ UNKNOWN
onert::ir::Layout::NCHW
@ NCHW
onert::ir::Layout::NHWC
@ NHWC
onert::ir::PermuteType
PermuteType
Definition
Layout.h:36
onert::ir::PermuteType::NHWC_TO_NCHW
@ NHWC_TO_NCHW
onert::ir::PermuteType::NCHW_TO_NHWC
@ NCHW_TO_NHWC
onert::ir::PermuteType::SAME
@ SAME
onert
Definition
CustomKernel.cc:20
std
Definition
CircleExporterUtils.h:53
std::hash< onert::ir::Layout >::operator()
size_t operator()(onert::ir::Layout value) const noexcept
Definition
Layout.h:64
runtime
onert
core
include
ir
Layout.h
Generated by
1.9.8