提交 414927e7 编写于 作者: 李寅

Merge branch 'prelu-bug' into 'master'

Fix prelu benchmark bug.

See merge request !264
......@@ -116,7 +116,8 @@ class ActivationFunctor {
const T *input_ptr = input->data<T>();
T *output_ptr = output->mutable_data<T>();
if (activation_ == PRELU) {
const T *alpha_ptr = alpha == nullptr ? nullptr : alpha->data<T>();
MACE_CHECK(alpha != nullptr) << "PReLU's alpha parameter shouldn't be null";
const T *alpha_ptr = alpha->data<T>();
PReLUActivation(input_ptr, output->size(), input->dim(3), alpha_ptr, output_ptr);
} else {
DoActivation(input_ptr, output_ptr, output->size(), activation_, relux_max_limit_);
......
......@@ -139,23 +139,26 @@ static void PreluBenchmark(
// Add input data
net.AddRandomInput<D, float>("Input", {batch, height, width, channels});
net.AddRandomInput<D, float>("Alpha", {channels});
if (D == DeviceType::OPENCL) {
BufferToImage<D, float>(net, "Input", "InputImage",
kernels::BufferType::IN_OUT_CHANNEL);
BufferToImage<D, float>(net, "Alpha", "AlphaImage",
kernels::BufferType::ARGUMENT);
OpDefBuilder("Activation", "PreluBM")
.Input("InputImage")
.Input("AlphaImage")
.Output("Output")
.AddStringArg("activation", "PRELU")
.AddFloatArg("alpha", 2.0)
.Finalize(net.NewOperatorDef());
} else {
OpDefBuilder("Activation", "PreluBM")
.Input("Input")
.Input("Alpha")
.Output("Output")
.AddStringArg("activation", "PRELU")
.AddFloatArg("alpha", 2.0)
.Finalize(net.NewOperatorDef());
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册