Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / src / extension / ext_priorbox.cpp
index 8b948ef..d1cb195 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2018 Intel Corporation
+// Copyright (C) 2018-2019 Intel Corporation
 // SPDX-License-Identifier: Apache-2.0
 //
 
@@ -8,6 +8,7 @@
 #include <vector>
 #include <string>
 #include <cmath>
+#include <limits>
 
 namespace InferenceEngine {
 namespace Extensions {
@@ -28,9 +29,9 @@ public:
             _step = layer->GetParamAsFloat("step", 0);
             _min_sizes = layer->GetParamAsFloats("min_size", {});
             _max_sizes = layer->GetParamAsFloats("max_size", {});
-            _flip = static_cast<bool>(layer->GetParamAsInt("flip"));
-            _clip = static_cast<bool>(layer->GetParamAsInt("clip"));
-            _scale_all_sizes = static_cast<bool>(layer->GetParamAsInt("scale_all_sizes", 1));
+            _flip = layer->GetParamAsBool("flip", false);
+            _clip = layer->GetParamAsBool("clip", false);
+            _scale_all_sizes = layer->GetParamAsBool("scale_all_sizes", true);
 
             bool exist;
 
@@ -41,6 +42,10 @@ public:
             for (float aspect_ratio : aspect_ratios) {
                 exist = false;
 
+                if (std::fabs(aspect_ratio) < std::numeric_limits<float>::epsilon()) {
+                    THROW_IE_EXCEPTION << "aspect_ratio param can't be equal to zero";
+                }
+
                 for (float _aspect_ratio : _aspect_ratios) {
                     if (fabs(aspect_ratio - _aspect_ratio) < 1e-6) {
                         exist = true;
@@ -91,6 +96,10 @@ public:
         }
     }
 
+    StatusCode init(LayerConfig& config, ResponseDesc *resp) noexcept override {
+        return OK;
+    }
+
     StatusCode execute(std::vector<Blob::Ptr>& inputs, std::vector<Blob::Ptr>& outputs,
                        ResponseDesc *resp) noexcept override {
         if (inputs.size() != 2 || outputs.empty()) {