aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/NEON/functions/NEBatchNormalizationLayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/NEON/functions/NEBatchNormalizationLayer.cpp')
-rw-r--r--src/runtime/NEON/functions/NEBatchNormalizationLayer.cpp27
1 files changed, 22 insertions, 5 deletions
diff --git a/src/runtime/NEON/functions/NEBatchNormalizationLayer.cpp b/src/runtime/NEON/functions/NEBatchNormalizationLayer.cpp
index f6be00169d..b3753e842d 100644
--- a/src/runtime/NEON/functions/NEBatchNormalizationLayer.cpp
+++ b/src/runtime/NEON/functions/NEBatchNormalizationLayer.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017-2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -33,23 +33,40 @@
using namespace arm_compute;
NEBatchNormalizationLayer::NEBatchNormalizationLayer()
- : _norm_kernel()
+ : _norm_kernel(), _act_func(), _act_info_enabled(false)
{
}
-void NEBatchNormalizationLayer::configure(ITensor *input, ITensor *output, const ITensor *mean, const ITensor *var, const ITensor *beta, const ITensor *gamma, float epsilon)
+void NEBatchNormalizationLayer::configure(ITensor *input, ITensor *output, const ITensor *mean, const ITensor *var, const ITensor *beta, const ITensor *gamma, float epsilon,
+ ActivationLayerInfo act_info)
{
+ _act_info_enabled = act_info.enabled();
+
// Configure kernel
_norm_kernel.configure(input, output, mean, var, beta, gamma, epsilon);
+ if(_act_info_enabled)
+ {
+ _act_func.configure(output, nullptr, act_info);
+ }
}
Status NEBatchNormalizationLayer::validate(const ITensorInfo *input, const ITensorInfo *output, const ITensorInfo *mean, const ITensorInfo *var, const ITensorInfo *beta, const ITensorInfo *gamma,
- float epsilon)
+ float epsilon, ActivationLayerInfo act_info)
{
- return NEBatchNormalizationLayerKernel::validate(input, output, mean, var, beta, gamma, epsilon);
+ ARM_COMPUTE_RETURN_ON_ERROR(NEBatchNormalizationLayerKernel::validate(input, output, mean, var, beta, gamma, epsilon));
+ if(act_info.enabled())
+ {
+ ARM_COMPUTE_RETURN_ON_ERROR(NEActivationLayer::validate(output, nullptr, act_info));
+ }
+
+ return Status{};
}
void NEBatchNormalizationLayer::run()
{
NEScheduler::get().schedule(&_norm_kernel, Window::DimY);
+ if(_act_info_enabled)
+ {
+ _act_func.run();
+ }
}