ONE - On-device Neural Engine
Toggle main menu visibility
Main Page
Related Pages
Topics
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
w
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Enumerations
a
b
c
d
e
f
i
k
l
m
n
o
p
q
r
s
t
u
Enumerator
a
b
c
d
e
f
g
i
k
l
m
n
o
p
r
s
u
v
w
y
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Enumerations
a
c
d
e
f
g
i
k
l
m
o
p
r
s
t
w
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Related Symbols
a
b
c
d
e
f
g
h
i
m
n
o
p
r
s
t
u
v
w
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
Variables
_
b
c
d
f
g
i
k
m
n
o
p
s
t
v
Typedefs
a
d
f
g
i
l
m
n
o
s
t
u
v
Enumerations
f
g
n
o
p
r
Enumerator
a
k
n
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Examples
▼
ONE - On-device Neural Engine
How to Add a New Operation
How to Build Compiler
How to Build Package
How to Build Runtime with GBS for Tizen/RPi4
How to Build Using Prebuilt Docker Image
How to Build Runtime
How to Contribute
How to Cross-build Runtime for AARCH64
How to Cross-build Runtime for Android
How to Cross-build Runtime for ARM
How To Introduce a New Operation Into Compiler
How To Introduce a New Operation Into Runtime
How to Make an Application with Runtime
How to Remote Debugging with Visual Studio Code
How to Run Package
How to Use API
How to Use NNAPI Binding
How to Use NNFW API
How to Use NNFW PYTHON API
How to Use Specific Backend during Inference
Background
Overall Architecture
Roadmap
Supported Operations
Workgroup
API
Backend API
Compute
Controlflow Operations
Core
Executors
Heterogeneous Execution
On-Device Compilation
Supported Operations and backend
Training
Training a simple CNN model on MNIST using ONERT
Training MobileNetV2 on ImageNet Dataset using ONERT
Transfer Learning
►
Topics
►
Namespaces
►
Data Structures
▼
Files
►
File List
►
Globals
►
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Loading...
Searching...
No Matches
Backend.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 __NNKIT_SUPPORT_CAFFE_BACKEND_H__
18
#define __NNKIT_SUPPORT_CAFFE_BACKEND_H__
19
20
#include "
nnkit/support/caffe/InputBlobContext.h
"
21
#include "
nnkit/support/caffe/OutputBlobContext.h
"
22
#include "
nnkit/support/caffe/TensorContext.h
"
23
24
#include <
nnkit/Backend.h
>
25
26
#include <caffe/net.hpp>
27
28
#include <memory>
29
#include <functional>
30
31
namespace
nnkit
32
{
33
namespace
support
34
{
35
namespace
caffe
36
{
37
38
template
<
typename
DType>
class
Backend
final :
public
nnkit::Backend
39
{
40
public
:
41
Backend
(std::unique_ptr<::caffe::Net<DType>> &&net) : _net{
std
::move(net)}
42
{
43
// DO NOTHING
44
}
41
Backend
(std::unique_ptr<::caffe::Net<DType>> &&net) : _net{
std
::move(net)} {
…
}
45
46
public
:
47
void
prepare
(
const
std::function<
void
(
nnkit::TensorContext
&)> &f)
override
48
{
49
InputBlobContext<DType>
blobs(*_net);
50
TensorContext<DType>
tensors(blobs);
51
f(tensors);
52
}
47
void
prepare
(
const
std::function<
void
(
nnkit::TensorContext
&)> &f)
override
{
…
}
53
54
public
:
55
void
run
(
void
)
override
{ _net->Forward(); }
56
57
public
:
58
void
teardown
(
const
std::function<
void
(
nnkit::TensorContext
&)> &f)
override
59
{
60
OutputBlobContext<DType>
blobs(*_net);
61
TensorContext<DType>
tensors(blobs);
62
f(tensors);
63
}
58
void
teardown
(
const
std::function<
void
(
nnkit::TensorContext
&)> &f)
override
{
…
}
64
65
private
:
66
std::unique_ptr<::caffe::Net<DType>> _net;
67
};
38
template
<
typename
DType>
class
Backend
final :
public
nnkit::Backend
{
…
};
68
69
}
// namespace caffe
35
namespace
caffe {
…
}
70
}
// namespace support
33
namespace
support {
…
}
71
}
// namespace nnkit
31
namespace
nnkit
{
…
}
72
73
#endif
// __NNKIT_SUPPORT_CAFFE_BACKEND_H__
InputBlobContext.h
OutputBlobContext.h
nnkit::support::caffe::Backend
Definition
Backend.h:39
nnkit::support::caffe::Backend::teardown
void teardown(const std::function< void(nnkit::TensorContext &)> &f) override
Definition
Backend.h:58
nnkit::support::caffe::Backend::run
void run(void) override
Definition
Backend.h:55
nnkit::support::caffe::Backend::prepare
void prepare(const std::function< void(nnkit::TensorContext &)> &f) override
Definition
Backend.h:47
nnkit::support::caffe::Backend::Backend
Backend(std::unique_ptr<::caffe::Net< DType > > &&net)
Definition
Backend.h:41
nnkit::support::caffe::InputBlobContext
Definition
InputBlobContext.h:32
nnkit::support::caffe::OutputBlobContext
Definition
OutputBlobContext.h:32
nnkit::support::caffe::TensorContext
Definition
TensorContext.h:38
Backend.h
nnkit
Definition
Backend.h:32
std
Definition
CircleExporterUtils.h:53
TensorContext.h
nnkit::Backend
Definition
Backend.h:28
nnkit::TensorContext
Definition
TensorContext.h:34
compiler
nnkit-caffe
support
include
nnkit
support
caffe
Backend.h
Generated by
1.9.8