Optimize Mish for CPU backend

pull/17624/head
Dmitry Kurtaev 5 years ago
parent fce486c4f9
commit 1491934d17
  1. 5
      modules/dnn/src/layers/elementwise_layers.cpp

@ -667,8 +667,11 @@ struct MishFunctor : public BaseFunctor
{
for( int i = 0; i < len; i++ )
{
// Use fast approximation introduced in https://github.com/opencv/opencv/pull/17200
float x = srcptr[i];
dstptr[i] = x * tanh(log(1.0f + exp(x)));
float eX = exp(std::min(x, 20.f));
float n = (eX + 2) * eX;
dstptr[i] = (x * n) / (n + 2);
}
}
}

Loading…
Cancel
Save