add relu as activation option in darknet
authordanielenricocahall <danielenricocahall@gmail.com>
Sun, 2 Aug 2020 16:46:05 +0000 (12:46 -0400)
committerdanielenricocahall <danielenricocahall@gmail.com>
Mon, 3 Aug 2020 23:19:35 +0000 (19:19 -0400)
add relu option

add relu as activation option in darknet

simplify the setParams if-else ladder

add relu as activation option in darknet

correct activation_param type

format

format

add relu as activation option in darknet

spacing

spacing

add relu as activation option in darknet

modules/dnn/src/darknet/darknet_io.cpp
modules/dnn/test/test_darknet_importer.cpp

index f6504b96c708d8757a0c8652636cce151636dcb3..bc0b413588eec5319adaacad7ec9e7a775a6e700 100644 (file)
@@ -221,6 +221,10 @@ namespace cv {
                 {
                     cv::dnn::LayerParams activation_param;
                     if (type == "relu")
+                    {
+                        activation_param.type = "ReLU";
+                    }
+                    else if (type == "leaky")
                     {
                         activation_param.set<float>("negative_slope", 0.1f);
                         activation_param.type = "ReLU";
@@ -862,24 +866,8 @@ namespace cv {
                     }
 
                     std::string activation = getParam<std::string>(layer_params, "activation", "linear");
-                    if (activation == "leaky")
-                    {
-                        setParams.setActivation("relu");
-                    }
-                    else if (activation == "swish")
-                    {
-                        setParams.setActivation("swish");
-                    }
-                    else if (activation == "mish")
-                    {
-                        setParams.setActivation("mish");
-                    }
-                    else if (activation == "logistic")
-                    {
-                        setParams.setActivation("logistic");
-                    }
-                    else if (activation != "linear")
-                        CV_Error(cv::Error::StsParseError, "Unsupported activation: " + activation);
+                    if (activation != "linear")
+                        setParams.setActivation(activation);
 
                     net->out_channels_vec[layers_counter] = tensor_shape[0];
                 }
index 552c1fa11126e6b370917e5f6749489d5f9cfd5d..45edf405ac987d7d90c4e4879dda9cd573a6b561 100644 (file)
@@ -753,6 +753,11 @@ TEST_P(Test_Darknet_layers, connected)
     testDarknetLayer("connected", true);
 }
 
+TEST_P(Test_Darknet_layers, relu)
+{
+    testDarknetLayer("relu");
+}
+
 INSTANTIATE_TEST_CASE_P(/**/, Test_Darknet_layers, dnnBackendsAndTargets());
 
 }} // namespace