Browse Source

fix build without neon

tags/20200226
nihui 6 years ago
parent
commit
57bedd59fa
3 changed files with 66 additions and 3 deletions
  1. +22
    -1
      src/layer/arm/convolution_arm.cpp
  2. +22
    -1
      src/layer/arm/deconvolution_arm.cpp
  3. +22
    -1
      src/layer/arm/deconvolutiondepthwise_arm.cpp

+ 22
- 1
src/layer/arm/convolution_arm.cpp View File

@@ -974,7 +974,28 @@ int Convolution_arm::forward(const Mat& bottom_blob, Mat& top_blob, const Option
kptr += maxk;
}

sum = activation_ss(sum, activation_type, activation_params);
if (activation_type == 1)
{
sum = std::max(sum, 0.f);
}
else if (activation_type == 2)
{
float slope = activation_params[0];
sum = sum > 0.f ? sum : sum * slope;
}
else if (activation_type == 3)
{
float min = activation_params[0];
float max = activation_params[1];
if (sum < min)
sum = min;
if (sum > max)
sum = max;
}
else if (activation_type == 4)
{
sum = static_cast<float>(1.f / (1.f + exp(-sum)));
}

outptr[j] = sum;
}


+ 22
- 1
src/layer/arm/deconvolution_arm.cpp View File

@@ -644,7 +644,28 @@ int Deconvolution_arm::forward(const Mat& bottom_blob, Mat& top_blob, const Opti
kptr += maxk;
}

sum = activation_ss(sum, activation_type, activation_params);
if (activation_type == 1)
{
sum = std::max(sum, 0.f);
}
else if (activation_type == 2)
{
float slope = activation_params[0];
sum = sum > 0.f ? sum : sum * slope;
}
else if (activation_type == 3)
{
float min = activation_params[0];
float max = activation_params[1];
if (sum < min)
sum = min;
if (sum > max)
sum = max;
}
else if (activation_type == 4)
{
sum = static_cast<float>(1.f / (1.f + exp(-sum)));
}

outptr[j] = sum;
}


+ 22
- 1
src/layer/arm/deconvolutiondepthwise_arm.cpp View File

@@ -306,7 +306,28 @@ int DeconvolutionDepthWise_arm::forward(const Mat& bottom_blob, Mat& top_blob, c
}
}

sum = activation_ss(sum, activation_type, activation_params);
if (activation_type == 1)
{
sum = std::max(sum, 0.f);
}
else if (activation_type == 2)
{
float slope = activation_params[0];
sum = sum > 0.f ? sum : sum * slope;
}
else if (activation_type == 3)
{
float min = activation_params[0];
float max = activation_params[1];
if (sum < min)
sum = min;
if (sum > max)
sum = max;
}
else if (activation_type == 4)
{
sum = static_cast<float>(1.f / (1.f + exp(-sum)));
}

outptr[j] = sum;
}


Loading…
Cancel
Save