openvino/ngraph/test/visitors/op/prior_box.cpp

61 lines
2.3 KiB
C++

// Copyright (C) 2018-2021 Intel Corporation
// SPDX-License-Identifier: Apache-2.0
//
#include "gtest/gtest.h"
#include "ngraph/ngraph.hpp"
#include "ngraph/op/util/attr_types.hpp"
#include "ngraph/opsets/opset1.hpp"
#include "ngraph/opsets/opset3.hpp"
#include "ngraph/opsets/opset4.hpp"
#include "ngraph/opsets/opset5.hpp"
#include "util/visitor.hpp"
using namespace std;
using namespace ngraph;
using ngraph::test::NodeBuilder;
using ngraph::test::ValueMap;
TEST(attributes, prior_box_op)
{
NodeBuilder::get_ops().register_factory<opset1::PriorBox>();
const auto layer_shape = make_shared<op::Parameter>(element::i64, Shape{128, 128});
const auto image_shape = make_shared<op::Parameter>(element::i64, Shape{32, 32});
op::PriorBoxAttrs attrs;
attrs.min_size = vector<float>{16.f, 32.f};
attrs.max_size = vector<float>{256.f, 512.f};
attrs.aspect_ratio = vector<float>{0.66f, 1.56f};
attrs.density = vector<float>{0.55f};
attrs.fixed_ratio = vector<float>{0.88f};
attrs.fixed_size = vector<float>{1.25f};
attrs.clip = true;
attrs.flip = false;
attrs.step = 1.0f;
attrs.offset = 0.0f;
attrs.variance = vector<float>{2.22f, 3.14f};
attrs.scale_all_sizes = true;
auto prior_box = make_shared<opset1::PriorBox>(layer_shape, image_shape, attrs);
NodeBuilder builder(prior_box);
auto g_prior_box = as_type_ptr<opset1::PriorBox>(builder.create());
const auto prior_box_attrs = prior_box->get_attrs();
const auto g_prior_box_attrs = g_prior_box->get_attrs();
EXPECT_EQ(g_prior_box_attrs.min_size, prior_box_attrs.min_size);
EXPECT_EQ(g_prior_box_attrs.max_size, prior_box_attrs.max_size);
EXPECT_EQ(g_prior_box_attrs.aspect_ratio, prior_box_attrs.aspect_ratio);
EXPECT_EQ(g_prior_box_attrs.density, prior_box_attrs.density);
EXPECT_EQ(g_prior_box_attrs.fixed_ratio, prior_box_attrs.fixed_ratio);
EXPECT_EQ(g_prior_box_attrs.fixed_size, prior_box_attrs.fixed_size);
EXPECT_EQ(g_prior_box_attrs.clip, prior_box_attrs.clip);
EXPECT_EQ(g_prior_box_attrs.flip, prior_box_attrs.flip);
EXPECT_EQ(g_prior_box_attrs.step, prior_box_attrs.step);
EXPECT_EQ(g_prior_box_attrs.offset, prior_box_attrs.offset);
EXPECT_EQ(g_prior_box_attrs.variance, prior_box_attrs.variance);
EXPECT_EQ(g_prior_box_attrs.scale_all_sizes, prior_box_attrs.scale_all_sizes);
}