ONE - On-device Neural Engine
Loading...
Searching...
No Matches
HardSwish.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2023 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 "
kernels/HardSwish.h
"
18
#include "kernels/Utils.h"
19
20
#include "
PALHardSwish.h
"
21
22
#include <stdexcept>
23
24
namespace
luci_interpreter
25
{
26
27
namespace
kernels
28
{
29
30
HardSwish::HardSwish
(
const
Tensor
*input,
Tensor
*output) :
Kernel
({
input
}, {output}) {}
31
32
void
HardSwish::configure
()
33
{
34
LUCI_INTERPRETER_CHECK
(
input
()->element_type() ==
output
()->element_type());
35
output
()->
resize
(
input
()->shape());
36
}
37
38
void
HardSwish::execute
()
const
39
{
40
switch
(
input
()->element_type())
41
{
42
case
DataType::FLOAT32:
43
luci_interpreter_pal::HardSwish(
getTensorShape
(
input
()), getTensorData<float>(
input
()),
44
getTensorShape
(
output
()), getTensorData<float>(
output
()));
45
break
;
46
default
:
47
throw
std::runtime_error(
"luci-intp HardSwish Unsupported type."
);
48
}
49
}
50
51
}
// namespace kernels
52
}
// namespace luci_interpreter
PALHardSwish.h
luci_interpreter::Kernel
Definition
Kernel.h:29
luci_interpreter::Tensor
Definition
Tensor.h:101
luci_interpreter::Tensor::resize
void resize(const Shape &new_shape)
Definition
Tensor.cpp:56
luci_interpreter::kernels::HardSwish::input
const Tensor * input() const
Definition
HardSwish.h:33
luci_interpreter::kernels::HardSwish::configure
void configure() override
Definition
HardSwish.cpp:32
luci_interpreter::kernels::HardSwish::HardSwish
HardSwish(const Tensor *input, Tensor *output)
Definition
HardSwish.cpp:30
luci_interpreter::kernels::HardSwish::execute
void execute() const override
Definition
HardSwish.cpp:38
luci_interpreter::kernels::HardSwish::output
Tensor * output() const
Definition
HardSwish.h:34
LUCI_INTERPRETER_CHECK
#define LUCI_INTERPRETER_CHECK(cond)
Definition
Utils.h:36
HardSwish.h
luci_interpreter::kernels::getTensorShape
tflite::RuntimeShape getTensorShape(const Tensor *tensor)
Definition
Utils.h:194
luci_interpreter
Definition
BuddyMemoryManager.h:22
compiler
luci-interpreter
src
kernels
HardSwish.cpp
Generated by
1.9.8