Removed global factory for nodes (#3701)
This commit is contained in:
parent
dbedeae9c9
commit
ad3405ef5e
@ -91,9 +91,6 @@ namespace ngraph
|
|||||||
return create(DERIVED_TYPE::type_info);
|
return create(DERIVED_TYPE::type_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// \brief Get the factory for BASE_TYPE
|
|
||||||
static FactoryRegistry<BASE_TYPE>& get();
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
FactoryMap m_factory_map;
|
FactoryMap m_factory_map;
|
||||||
};
|
};
|
||||||
|
@ -49,11 +49,6 @@ namespace ngraph
|
|||||||
}
|
}
|
||||||
visitor.on_attribute("name", type_info_name);
|
visitor.on_attribute("name", type_info_name);
|
||||||
visitor.on_attribute("version", type_info_version);
|
visitor.on_attribute("version", type_info_version);
|
||||||
if (!type_info_name.empty() && !m_ref)
|
|
||||||
{
|
|
||||||
m_ref = std::shared_ptr<BASE_TYPE>(FactoryRegistry<BASE_TYPE>::get().create(
|
|
||||||
DiscreteTypeInfo{type_info_name.c_str(), type_info_version}));
|
|
||||||
}
|
|
||||||
if (m_ref)
|
if (m_ref)
|
||||||
{
|
{
|
||||||
visitor.start_structure("value");
|
visitor.start_structure("value");
|
||||||
|
@ -29,25 +29,4 @@ namespace ngraph
|
|||||||
static mutex registry_mutex;
|
static mutex registry_mutex;
|
||||||
return registry_mutex;
|
return registry_mutex;
|
||||||
}
|
}
|
||||||
|
|
||||||
template class NGRAPH_API FactoryRegistry<Node>;
|
|
||||||
|
|
||||||
template <>
|
|
||||||
FactoryRegistry<Node>& FactoryRegistry<Node>::get()
|
|
||||||
{
|
|
||||||
static FactoryRegistry<Node> registry;
|
|
||||||
static mutex init_guard;
|
|
||||||
// TODO: Add a lock
|
|
||||||
if (registry.m_factory_map.size() == 0)
|
|
||||||
{
|
|
||||||
lock_guard<mutex> guard(init_guard);
|
|
||||||
if (registry.m_factory_map.size() == 0)
|
|
||||||
{
|
|
||||||
#define NGRAPH_OP(NAME, NAMESPACE, VERSION) registry.register_factory<NAMESPACE::NAME>();
|
|
||||||
#include "ngraph/op/op_version_tbl.hpp"
|
|
||||||
#undef NGRAPH_OP
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return registry;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -347,7 +347,7 @@ constexpr NodeTypeInfo Oracle::type_info;
|
|||||||
|
|
||||||
TEST(attributes, user_op)
|
TEST(attributes, user_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<Oracle>();
|
NodeBuilder::get_ops().register_factory<Oracle>();
|
||||||
auto program = make_shared<op::Parameter>(element::i32, Shape{200});
|
auto program = make_shared<op::Parameter>(element::i32, Shape{200});
|
||||||
auto data = make_shared<op::Parameter>(element::i32, Shape{200});
|
auto data = make_shared<op::Parameter>(element::i32, Shape{200});
|
||||||
auto result = make_shared<op::Result>(data);
|
auto result = make_shared<op::Result>(data);
|
||||||
@ -437,7 +437,7 @@ TEST(attributes, user_op)
|
|||||||
|
|
||||||
TEST(attributes, matmul_op)
|
TEST(attributes, matmul_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::MatMul>();
|
NodeBuilder::get_ops().register_factory<opset1::MatMul>();
|
||||||
auto A = make_shared<op::Parameter>(element::f32, Shape{0, 2});
|
auto A = make_shared<op::Parameter>(element::f32, Shape{0, 2});
|
||||||
auto B = make_shared<op::Parameter>(element::f32, Shape{2, 0});
|
auto B = make_shared<op::Parameter>(element::f32, Shape{2, 0});
|
||||||
|
|
||||||
@ -491,7 +491,7 @@ TEST(attributes, partial_shape)
|
|||||||
|
|
||||||
TEST(attributes, max_pool_op)
|
TEST(attributes, max_pool_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::MaxPool>();
|
NodeBuilder::get_ops().register_factory<opset1::MaxPool>();
|
||||||
auto data = make_shared<op::Parameter>(element::f32, Shape{64, 3, 5});
|
auto data = make_shared<op::Parameter>(element::f32, Shape{64, 3, 5});
|
||||||
|
|
||||||
auto strides = Strides{2};
|
auto strides = Strides{2};
|
||||||
@ -516,7 +516,7 @@ TEST(attributes, max_pool_op)
|
|||||||
|
|
||||||
TEST(attributes, mod_op)
|
TEST(attributes, mod_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::Mod>();
|
NodeBuilder::get_ops().register_factory<opset1::Mod>();
|
||||||
auto A = make_shared<op::Parameter>(element::f32, Shape{0, 2});
|
auto A = make_shared<op::Parameter>(element::f32, Shape{0, 2});
|
||||||
auto B = make_shared<op::Parameter>(element::f32, Shape{2, 0});
|
auto B = make_shared<op::Parameter>(element::f32, Shape{2, 0});
|
||||||
|
|
||||||
@ -531,7 +531,7 @@ TEST(attributes, mod_op)
|
|||||||
|
|
||||||
TEST(attributes, non_max_suppression_op_custom_attributes)
|
TEST(attributes, non_max_suppression_op_custom_attributes)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::NonMaxSuppression>();
|
NodeBuilder::get_ops().register_factory<opset1::NonMaxSuppression>();
|
||||||
auto boxes = make_shared<op::Parameter>(element::f32, Shape{1, 1, 4});
|
auto boxes = make_shared<op::Parameter>(element::f32, Shape{1, 1, 4});
|
||||||
auto scores = make_shared<op::Parameter>(element::f32, Shape{1, 1, 1});
|
auto scores = make_shared<op::Parameter>(element::f32, Shape{1, 1, 1});
|
||||||
|
|
||||||
@ -549,7 +549,7 @@ TEST(attributes, non_max_suppression_op_custom_attributes)
|
|||||||
|
|
||||||
TEST(attributes, non_max_suppression_op_default_attributes)
|
TEST(attributes, non_max_suppression_op_default_attributes)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::NonMaxSuppression>();
|
NodeBuilder::get_ops().register_factory<opset1::NonMaxSuppression>();
|
||||||
auto boxes = make_shared<op::Parameter>(element::f32, Shape{1, 1, 4});
|
auto boxes = make_shared<op::Parameter>(element::f32, Shape{1, 1, 4});
|
||||||
auto scores = make_shared<op::Parameter>(element::f32, Shape{1, 1, 1});
|
auto scores = make_shared<op::Parameter>(element::f32, Shape{1, 1, 1});
|
||||||
|
|
||||||
@ -563,7 +563,7 @@ TEST(attributes, non_max_suppression_op_default_attributes)
|
|||||||
|
|
||||||
TEST(attributes, non_max_suppression_v3_op_custom_attributes)
|
TEST(attributes, non_max_suppression_v3_op_custom_attributes)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset3::NonMaxSuppression>();
|
NodeBuilder::get_ops().register_factory<opset3::NonMaxSuppression>();
|
||||||
auto boxes = make_shared<op::Parameter>(element::f32, Shape{1, 1, 4});
|
auto boxes = make_shared<op::Parameter>(element::f32, Shape{1, 1, 4});
|
||||||
auto scores = make_shared<op::Parameter>(element::f32, Shape{1, 1, 1});
|
auto scores = make_shared<op::Parameter>(element::f32, Shape{1, 1, 1});
|
||||||
|
|
||||||
@ -583,7 +583,7 @@ TEST(attributes, non_max_suppression_v3_op_custom_attributes)
|
|||||||
|
|
||||||
TEST(attributes, non_max_suppression_v3_op_default_attributes)
|
TEST(attributes, non_max_suppression_v3_op_default_attributes)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset3::NonMaxSuppression>();
|
NodeBuilder::get_ops().register_factory<opset3::NonMaxSuppression>();
|
||||||
auto boxes = make_shared<op::Parameter>(element::f32, Shape{1, 1, 4});
|
auto boxes = make_shared<op::Parameter>(element::f32, Shape{1, 1, 4});
|
||||||
auto scores = make_shared<op::Parameter>(element::f32, Shape{1, 1, 1});
|
auto scores = make_shared<op::Parameter>(element::f32, Shape{1, 1, 1});
|
||||||
|
|
||||||
@ -598,7 +598,7 @@ TEST(attributes, non_max_suppression_v3_op_default_attributes)
|
|||||||
|
|
||||||
TEST(attributes, normalize_l2_op)
|
TEST(attributes, normalize_l2_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::NormalizeL2>();
|
NodeBuilder::get_ops().register_factory<opset1::NormalizeL2>();
|
||||||
auto data = make_shared<op::Parameter>(element::i32, Shape{1});
|
auto data = make_shared<op::Parameter>(element::i32, Shape{1});
|
||||||
const auto axes = make_shared<op::Constant>(element::i32, Shape{}, vector<int32_t>{0});
|
const auto axes = make_shared<op::Constant>(element::i32, Shape{}, vector<int32_t>{0});
|
||||||
|
|
||||||
@ -615,7 +615,7 @@ TEST(attributes, normalize_l2_op)
|
|||||||
|
|
||||||
TEST(attributes, one_hot_op)
|
TEST(attributes, one_hot_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::OneHot>();
|
NodeBuilder::get_ops().register_factory<opset1::OneHot>();
|
||||||
auto indices = make_shared<op::Parameter>(element::i64, Shape{1, 3, 2, 3});
|
auto indices = make_shared<op::Parameter>(element::i64, Shape{1, 3, 2, 3});
|
||||||
auto depth = op::Constant::create(element::i64, Shape{}, {4});
|
auto depth = op::Constant::create(element::i64, Shape{}, {4});
|
||||||
auto on_value = op::Constant::create(element::f32, Shape{}, {1.0f});
|
auto on_value = op::Constant::create(element::f32, Shape{}, {1.0f});
|
||||||
@ -632,7 +632,7 @@ TEST(attributes, one_hot_op)
|
|||||||
|
|
||||||
TEST(attributes, pad_op)
|
TEST(attributes, pad_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::Pad>();
|
NodeBuilder::get_ops().register_factory<opset1::Pad>();
|
||||||
auto arg = make_shared<op::Parameter>(element::f32, Shape{1, 2, 3});
|
auto arg = make_shared<op::Parameter>(element::f32, Shape{1, 2, 3});
|
||||||
auto pads_begin = make_shared<op::Parameter>(element::i64, Shape{1});
|
auto pads_begin = make_shared<op::Parameter>(element::i64, Shape{1});
|
||||||
auto pads_end = make_shared<op::Parameter>(element::i64, Shape{1});
|
auto pads_end = make_shared<op::Parameter>(element::i64, Shape{1});
|
||||||
@ -648,7 +648,7 @@ TEST(attributes, pad_op)
|
|||||||
|
|
||||||
TEST(attributes, psroi_pooling_op)
|
TEST(attributes, psroi_pooling_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::PSROIPooling>();
|
NodeBuilder::get_ops().register_factory<opset1::PSROIPooling>();
|
||||||
auto input = make_shared<op::Parameter>(element::f32, Shape{1, 1024, 63, 38});
|
auto input = make_shared<op::Parameter>(element::f32, Shape{1, 1024, 63, 38});
|
||||||
auto coords = make_shared<op::Parameter>(element::f32, Shape{300, 5});
|
auto coords = make_shared<op::Parameter>(element::f32, Shape{300, 5});
|
||||||
|
|
||||||
@ -675,7 +675,7 @@ TEST(attributes, psroi_pooling_op)
|
|||||||
TEST(attributes, reduce_logical_and_op)
|
TEST(attributes, reduce_logical_and_op)
|
||||||
{
|
{
|
||||||
// ReduceLogicalAnd derives visit_attributes from op::util::LogicalReductionKeepDims
|
// ReduceLogicalAnd derives visit_attributes from op::util::LogicalReductionKeepDims
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::ReduceLogicalAnd>();
|
NodeBuilder::get_ops().register_factory<opset1::ReduceLogicalAnd>();
|
||||||
auto data = make_shared<op::Parameter>(element::f32, Shape{3, 4, 5});
|
auto data = make_shared<op::Parameter>(element::f32, Shape{3, 4, 5});
|
||||||
auto reduction_axes = make_shared<op::Parameter>(element::i64, Shape{2});
|
auto reduction_axes = make_shared<op::Parameter>(element::i64, Shape{2});
|
||||||
|
|
||||||
@ -691,7 +691,7 @@ TEST(attributes, reduce_logical_and_op)
|
|||||||
TEST(attributes, reduce_logical_or_op)
|
TEST(attributes, reduce_logical_or_op)
|
||||||
{
|
{
|
||||||
// ReduceLogicalOr derives visit_attributes from op::util::LogicalReductionKeepDims
|
// ReduceLogicalOr derives visit_attributes from op::util::LogicalReductionKeepDims
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::ReduceLogicalOr>();
|
NodeBuilder::get_ops().register_factory<opset1::ReduceLogicalOr>();
|
||||||
auto data = make_shared<op::Parameter>(element::f32, Shape{3, 4, 5});
|
auto data = make_shared<op::Parameter>(element::f32, Shape{3, 4, 5});
|
||||||
auto reduction_axes = make_shared<op::Parameter>(element::i64, Shape{2});
|
auto reduction_axes = make_shared<op::Parameter>(element::i64, Shape{2});
|
||||||
|
|
||||||
@ -707,7 +707,7 @@ TEST(attributes, reduce_logical_or_op)
|
|||||||
TEST(attributes, reduce_max_op)
|
TEST(attributes, reduce_max_op)
|
||||||
{
|
{
|
||||||
// ReduceMax derives visit_attributes from op::util::ArithmeticReductionKeepDims
|
// ReduceMax derives visit_attributes from op::util::ArithmeticReductionKeepDims
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::ReduceMax>();
|
NodeBuilder::get_ops().register_factory<opset1::ReduceMax>();
|
||||||
auto data = make_shared<op::Parameter>(element::f32, Shape{3, 4, 5});
|
auto data = make_shared<op::Parameter>(element::f32, Shape{3, 4, 5});
|
||||||
auto reduction_axes = make_shared<op::Parameter>(element::i64, Shape{2});
|
auto reduction_axes = make_shared<op::Parameter>(element::i64, Shape{2});
|
||||||
|
|
||||||
@ -723,7 +723,7 @@ TEST(attributes, reduce_max_op)
|
|||||||
TEST(attributes, reduce_mean_op)
|
TEST(attributes, reduce_mean_op)
|
||||||
{
|
{
|
||||||
// ReduceMean derives visit_attributes from op::util::ArithmeticReductionKeepDims
|
// ReduceMean derives visit_attributes from op::util::ArithmeticReductionKeepDims
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::ReduceMean>();
|
NodeBuilder::get_ops().register_factory<opset1::ReduceMean>();
|
||||||
auto data = make_shared<op::Parameter>(element::f32, Shape{3, 4, 5});
|
auto data = make_shared<op::Parameter>(element::f32, Shape{3, 4, 5});
|
||||||
auto reduction_axes = make_shared<op::Parameter>(element::i64, Shape{2});
|
auto reduction_axes = make_shared<op::Parameter>(element::i64, Shape{2});
|
||||||
|
|
||||||
@ -739,7 +739,7 @@ TEST(attributes, reduce_mean_op)
|
|||||||
TEST(attributes, reduce_min_op)
|
TEST(attributes, reduce_min_op)
|
||||||
{
|
{
|
||||||
// ReduceMin derives visit_attributes from op::util::ArithmeticReductionKeepDims
|
// ReduceMin derives visit_attributes from op::util::ArithmeticReductionKeepDims
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::ReduceMin>();
|
NodeBuilder::get_ops().register_factory<opset1::ReduceMin>();
|
||||||
auto data = make_shared<op::Parameter>(element::f32, Shape{3, 4, 5});
|
auto data = make_shared<op::Parameter>(element::f32, Shape{3, 4, 5});
|
||||||
auto reduction_axes = make_shared<op::Parameter>(element::i64, Shape{2});
|
auto reduction_axes = make_shared<op::Parameter>(element::i64, Shape{2});
|
||||||
|
|
||||||
@ -755,7 +755,7 @@ TEST(attributes, reduce_min_op)
|
|||||||
TEST(attributes, reduce_prod_op)
|
TEST(attributes, reduce_prod_op)
|
||||||
{
|
{
|
||||||
// ReduceProd derives visit_attributes from op::util::ArithmeticReductionKeepDims
|
// ReduceProd derives visit_attributes from op::util::ArithmeticReductionKeepDims
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::ReduceProd>();
|
NodeBuilder::get_ops().register_factory<opset1::ReduceProd>();
|
||||||
auto data = make_shared<op::Parameter>(element::f32, Shape{3, 4, 5});
|
auto data = make_shared<op::Parameter>(element::f32, Shape{3, 4, 5});
|
||||||
auto reduction_axes = make_shared<op::Parameter>(element::i64, Shape{2});
|
auto reduction_axes = make_shared<op::Parameter>(element::i64, Shape{2});
|
||||||
|
|
||||||
@ -771,7 +771,7 @@ TEST(attributes, reduce_prod_op)
|
|||||||
TEST(attributes, reduce_sum_op)
|
TEST(attributes, reduce_sum_op)
|
||||||
{
|
{
|
||||||
// ReduceSum derives visit_attributes from op::util::ArithmeticReductionKeepDims
|
// ReduceSum derives visit_attributes from op::util::ArithmeticReductionKeepDims
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::ReduceSum>();
|
NodeBuilder::get_ops().register_factory<opset1::ReduceSum>();
|
||||||
auto data = make_shared<op::Parameter>(element::f32, Shape{3, 4, 5});
|
auto data = make_shared<op::Parameter>(element::f32, Shape{3, 4, 5});
|
||||||
auto reduction_axes = make_shared<op::Parameter>(element::i64, Shape{2});
|
auto reduction_axes = make_shared<op::Parameter>(element::i64, Shape{2});
|
||||||
|
|
||||||
@ -786,7 +786,7 @@ TEST(attributes, reduce_sum_op)
|
|||||||
|
|
||||||
TEST(attributes, region_yolo_op)
|
TEST(attributes, region_yolo_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::RegionYolo>();
|
NodeBuilder::get_ops().register_factory<opset1::RegionYolo>();
|
||||||
auto data = make_shared<op::Parameter>(element::f32, Shape{1, 255, 26, 26});
|
auto data = make_shared<op::Parameter>(element::f32, Shape{1, 255, 26, 26});
|
||||||
|
|
||||||
size_t num_coords = 4;
|
size_t num_coords = 4;
|
||||||
@ -815,7 +815,7 @@ TEST(attributes, region_yolo_op)
|
|||||||
|
|
||||||
TEST(attributes, reshape_op)
|
TEST(attributes, reshape_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::Reshape>();
|
NodeBuilder::get_ops().register_factory<opset1::Reshape>();
|
||||||
auto data = make_shared<op::Parameter>(element::i32, Shape{2, 3, 4});
|
auto data = make_shared<op::Parameter>(element::i32, Shape{2, 3, 4});
|
||||||
auto pattern = make_shared<op::Parameter>(element::i32, Shape{2});
|
auto pattern = make_shared<op::Parameter>(element::i32, Shape{2});
|
||||||
|
|
||||||
@ -830,7 +830,7 @@ TEST(attributes, reshape_op)
|
|||||||
|
|
||||||
TEST(attributes, reverse_op_enum_mode)
|
TEST(attributes, reverse_op_enum_mode)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::Reverse>();
|
NodeBuilder::get_ops().register_factory<opset1::Reverse>();
|
||||||
auto data = make_shared<op::Parameter>(element::i32, Shape{200});
|
auto data = make_shared<op::Parameter>(element::i32, Shape{200});
|
||||||
auto reversed_axes = make_shared<op::Parameter>(element::i32, Shape{200});
|
auto reversed_axes = make_shared<op::Parameter>(element::i32, Shape{200});
|
||||||
|
|
||||||
@ -843,7 +843,7 @@ TEST(attributes, reverse_op_enum_mode)
|
|||||||
|
|
||||||
TEST(attributes, reverse_op_string_mode)
|
TEST(attributes, reverse_op_string_mode)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::Reverse>();
|
NodeBuilder::get_ops().register_factory<opset1::Reverse>();
|
||||||
auto data = make_shared<op::Parameter>(element::i32, Shape{200});
|
auto data = make_shared<op::Parameter>(element::i32, Shape{200});
|
||||||
auto reversed_axes = make_shared<op::Parameter>(element::i32, Shape{200});
|
auto reversed_axes = make_shared<op::Parameter>(element::i32, Shape{200});
|
||||||
|
|
||||||
@ -858,7 +858,7 @@ TEST(attributes, reverse_op_string_mode)
|
|||||||
|
|
||||||
TEST(attributes, reverse_sequence_op)
|
TEST(attributes, reverse_sequence_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::ReverseSequence>();
|
NodeBuilder::get_ops().register_factory<opset1::ReverseSequence>();
|
||||||
auto data = make_shared<op::Parameter>(element::i32, Shape{2, 3, 4, 2});
|
auto data = make_shared<op::Parameter>(element::i32, Shape{2, 3, 4, 2});
|
||||||
auto seq_indices = make_shared<op::Parameter>(element::i32, Shape{4});
|
auto seq_indices = make_shared<op::Parameter>(element::i32, Shape{4});
|
||||||
|
|
||||||
@ -878,7 +878,7 @@ TEST(attributes, reverse_sequence_op)
|
|||||||
|
|
||||||
TEST(attributes, rnn_cell_op_custom_attributes)
|
TEST(attributes, rnn_cell_op_custom_attributes)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::RNNCell>();
|
NodeBuilder::get_ops().register_factory<opset1::RNNCell>();
|
||||||
auto X = make_shared<op::Parameter>(element::f32, Shape{2, 3});
|
auto X = make_shared<op::Parameter>(element::f32, Shape{2, 3});
|
||||||
auto H = make_shared<op::Parameter>(element::f32, Shape{2, 3});
|
auto H = make_shared<op::Parameter>(element::f32, Shape{2, 3});
|
||||||
auto W = make_shared<op::Parameter>(element::f32, Shape{3, 3});
|
auto W = make_shared<op::Parameter>(element::f32, Shape{3, 3});
|
||||||
@ -905,7 +905,7 @@ TEST(attributes, rnn_cell_op_custom_attributes)
|
|||||||
|
|
||||||
TEST(attributes, rnn_cell_op_default_attributes)
|
TEST(attributes, rnn_cell_op_default_attributes)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::RNNCell>();
|
NodeBuilder::get_ops().register_factory<opset1::RNNCell>();
|
||||||
auto X = make_shared<op::Parameter>(element::f32, Shape{2, 3});
|
auto X = make_shared<op::Parameter>(element::f32, Shape{2, 3});
|
||||||
auto H = make_shared<op::Parameter>(element::f32, Shape{2, 3});
|
auto H = make_shared<op::Parameter>(element::f32, Shape{2, 3});
|
||||||
auto W = make_shared<op::Parameter>(element::f32, Shape{3, 3});
|
auto W = make_shared<op::Parameter>(element::f32, Shape{3, 3});
|
||||||
@ -927,7 +927,7 @@ TEST(attributes, rnn_cell_op_default_attributes)
|
|||||||
|
|
||||||
TEST(attributes, elu_op)
|
TEST(attributes, elu_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::Elu>();
|
NodeBuilder::get_ops().register_factory<opset1::Elu>();
|
||||||
auto data = make_shared<op::Parameter>(element::f32, Shape{2, 4});
|
auto data = make_shared<op::Parameter>(element::f32, Shape{2, 4});
|
||||||
|
|
||||||
double alpha = 0.1;
|
double alpha = 0.1;
|
||||||
@ -941,7 +941,7 @@ TEST(attributes, elu_op)
|
|||||||
|
|
||||||
TEST(attributes, fake_quantize_op)
|
TEST(attributes, fake_quantize_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::FakeQuantize>();
|
NodeBuilder::get_ops().register_factory<opset1::FakeQuantize>();
|
||||||
const auto data = make_shared<op::Parameter>(element::f32, Shape{1, 2, 3, 4});
|
const auto data = make_shared<op::Parameter>(element::f32, Shape{1, 2, 3, 4});
|
||||||
const auto input_low = make_shared<op::Parameter>(element::f32, Shape{});
|
const auto input_low = make_shared<op::Parameter>(element::f32, Shape{});
|
||||||
const auto input_high = make_shared<op::Parameter>(element::f32, Shape{});
|
const auto input_high = make_shared<op::Parameter>(element::f32, Shape{});
|
||||||
@ -962,7 +962,7 @@ TEST(attributes, fake_quantize_op)
|
|||||||
|
|
||||||
TEST(attributes, broadcast_v3)
|
TEST(attributes, broadcast_v3)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset3::Broadcast>();
|
NodeBuilder::get_ops().register_factory<opset3::Broadcast>();
|
||||||
const auto arg = make_shared<op::Parameter>(element::i64, Shape{1, 3, 1});
|
const auto arg = make_shared<op::Parameter>(element::i64, Shape{1, 3, 1});
|
||||||
const auto shape = make_shared<op::Parameter>(element::i64, Shape{3});
|
const auto shape = make_shared<op::Parameter>(element::i64, Shape{3});
|
||||||
const auto broadcast_spec = op::BroadcastType::BIDIRECTIONAL;
|
const auto broadcast_spec = op::BroadcastType::BIDIRECTIONAL;
|
||||||
@ -976,7 +976,7 @@ TEST(attributes, broadcast_v3)
|
|||||||
|
|
||||||
TEST(attributes, grn_op)
|
TEST(attributes, grn_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::GRN>();
|
NodeBuilder::get_ops().register_factory<opset1::GRN>();
|
||||||
auto data = make_shared<op::Parameter>(element::f32, Shape{2, 3, 4, 5});
|
auto data = make_shared<op::Parameter>(element::f32, Shape{2, 3, 4, 5});
|
||||||
|
|
||||||
float bias = 1.25f;
|
float bias = 1.25f;
|
||||||
@ -990,7 +990,7 @@ TEST(attributes, grn_op)
|
|||||||
|
|
||||||
TEST(attributes, group_conv_op)
|
TEST(attributes, group_conv_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::GroupConvolution>();
|
NodeBuilder::get_ops().register_factory<opset1::GroupConvolution>();
|
||||||
auto data = make_shared<op::Parameter>(element::f32, Shape{1, 12, 224, 224});
|
auto data = make_shared<op::Parameter>(element::f32, Shape{1, 12, 224, 224});
|
||||||
auto filters = make_shared<op::Parameter>(element::f32, Shape{4, 1, 3, 5, 5});
|
auto filters = make_shared<op::Parameter>(element::f32, Shape{4, 1, 3, 5, 5});
|
||||||
auto strides = Strides{1, 1};
|
auto strides = Strides{1, 1};
|
||||||
@ -1010,7 +1010,7 @@ TEST(attributes, group_conv_op)
|
|||||||
|
|
||||||
TEST(attributes, group_conv_backprop_data_op)
|
TEST(attributes, group_conv_backprop_data_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::GroupConvolutionBackpropData>();
|
NodeBuilder::get_ops().register_factory<opset1::GroupConvolutionBackpropData>();
|
||||||
const auto data = make_shared<op::Parameter>(element::f32, Shape{1, 20, 224, 224});
|
const auto data = make_shared<op::Parameter>(element::f32, Shape{1, 20, 224, 224});
|
||||||
const auto filter = make_shared<op::Parameter>(element::f32, Shape{4, 5, 2, 3, 3});
|
const auto filter = make_shared<op::Parameter>(element::f32, Shape{4, 5, 2, 3, 3});
|
||||||
const auto output_shape = make_shared<op::Parameter>(element::f32, Shape{1, 8, 447, 447});
|
const auto output_shape = make_shared<op::Parameter>(element::f32, Shape{1, 8, 447, 447});
|
||||||
@ -1044,7 +1044,7 @@ TEST(attributes, group_conv_backprop_data_op)
|
|||||||
|
|
||||||
TEST(attributes, lrn_op)
|
TEST(attributes, lrn_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::LRN>();
|
NodeBuilder::get_ops().register_factory<opset1::LRN>();
|
||||||
const auto arg = make_shared<op::Parameter>(element::f32, Shape{1, 2, 3, 4});
|
const auto arg = make_shared<op::Parameter>(element::f32, Shape{1, 2, 3, 4});
|
||||||
const auto axes = make_shared<op::Parameter>(element::i32, Shape{2});
|
const auto axes = make_shared<op::Parameter>(element::i32, Shape{2});
|
||||||
|
|
||||||
@ -1065,7 +1065,7 @@ TEST(attributes, lrn_op)
|
|||||||
|
|
||||||
TEST(attributes, lstm_cell_op)
|
TEST(attributes, lstm_cell_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset4::LSTMCell>();
|
NodeBuilder::get_ops().register_factory<opset4::LSTMCell>();
|
||||||
auto X = make_shared<op::Parameter>(element::f32, Shape{2, 3});
|
auto X = make_shared<op::Parameter>(element::f32, Shape{2, 3});
|
||||||
auto H = make_shared<op::Parameter>(element::f32, Shape{2, 3});
|
auto H = make_shared<op::Parameter>(element::f32, Shape{2, 3});
|
||||||
auto W = make_shared<op::Parameter>(element::f32, Shape{12, 3});
|
auto W = make_shared<op::Parameter>(element::f32, Shape{12, 3});
|
||||||
@ -1100,7 +1100,7 @@ TEST(attributes, lstm_cell_op)
|
|||||||
|
|
||||||
TEST(attributes, lstm_sequence_op)
|
TEST(attributes, lstm_sequence_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset5::LSTMSequence>();
|
NodeBuilder::get_ops().register_factory<opset5::LSTMSequence>();
|
||||||
|
|
||||||
const size_t batch_size = 4;
|
const size_t batch_size = 4;
|
||||||
const size_t num_directions = 2;
|
const size_t num_directions = 2;
|
||||||
@ -1153,7 +1153,7 @@ TEST(attributes, lstm_sequence_op)
|
|||||||
|
|
||||||
TEST(attributes, shuffle_channels_op)
|
TEST(attributes, shuffle_channels_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::ShuffleChannels>();
|
NodeBuilder::get_ops().register_factory<opset1::ShuffleChannels>();
|
||||||
auto data = make_shared<op::Parameter>(element::i32, Shape{200});
|
auto data = make_shared<op::Parameter>(element::i32, Shape{200});
|
||||||
auto axis = 0;
|
auto axis = 0;
|
||||||
auto groups = 2;
|
auto groups = 2;
|
||||||
@ -1167,7 +1167,7 @@ TEST(attributes, shuffle_channels_op)
|
|||||||
|
|
||||||
TEST(attributes, softmax_op)
|
TEST(attributes, softmax_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::Softmax>();
|
NodeBuilder::get_ops().register_factory<opset1::Softmax>();
|
||||||
auto data = make_shared<op::Parameter>(element::i32, Shape{200});
|
auto data = make_shared<op::Parameter>(element::i32, Shape{200});
|
||||||
auto axis = 0;
|
auto axis = 0;
|
||||||
auto softmax = make_shared<opset1::Softmax>(data, axis);
|
auto softmax = make_shared<opset1::Softmax>(data, axis);
|
||||||
@ -1179,7 +1179,7 @@ TEST(attributes, softmax_op)
|
|||||||
|
|
||||||
TEST(attributes, space_to_depth_op)
|
TEST(attributes, space_to_depth_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::SpaceToDepth>();
|
NodeBuilder::get_ops().register_factory<opset1::SpaceToDepth>();
|
||||||
auto data = make_shared<op::Parameter>(element::i32, Shape{2, 3, 50, 50});
|
auto data = make_shared<op::Parameter>(element::i32, Shape{2, 3, 50, 50});
|
||||||
auto block_size = 2;
|
auto block_size = 2;
|
||||||
auto mode = opset1::SpaceToDepth::SpaceToDepthMode::BLOCKS_FIRST;
|
auto mode = opset1::SpaceToDepth::SpaceToDepthMode::BLOCKS_FIRST;
|
||||||
@ -1193,7 +1193,7 @@ TEST(attributes, space_to_depth_op)
|
|||||||
|
|
||||||
TEST(attributes, split_op)
|
TEST(attributes, split_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::Split>();
|
NodeBuilder::get_ops().register_factory<opset1::Split>();
|
||||||
auto data = make_shared<op::Parameter>(element::i32, Shape{200});
|
auto data = make_shared<op::Parameter>(element::i32, Shape{200});
|
||||||
auto axis = make_shared<op::Parameter>(element::i32, Shape{});
|
auto axis = make_shared<op::Parameter>(element::i32, Shape{});
|
||||||
auto num_splits = 2;
|
auto num_splits = 2;
|
||||||
@ -1206,7 +1206,7 @@ TEST(attributes, split_op)
|
|||||||
|
|
||||||
TEST(attributes, squared_difference_op)
|
TEST(attributes, squared_difference_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::SquaredDifference>();
|
NodeBuilder::get_ops().register_factory<opset1::SquaredDifference>();
|
||||||
auto x1 = make_shared<op::Parameter>(element::i32, Shape{200});
|
auto x1 = make_shared<op::Parameter>(element::i32, Shape{200});
|
||||||
auto x2 = make_shared<op::Parameter>(element::i32, Shape{200});
|
auto x2 = make_shared<op::Parameter>(element::i32, Shape{200});
|
||||||
auto auto_broadcast = op::AutoBroadcastType::NUMPY;
|
auto auto_broadcast = op::AutoBroadcastType::NUMPY;
|
||||||
@ -1219,7 +1219,7 @@ TEST(attributes, squared_difference_op)
|
|||||||
|
|
||||||
TEST(attributes, strided_slice_op)
|
TEST(attributes, strided_slice_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::StridedSlice>();
|
NodeBuilder::get_ops().register_factory<opset1::StridedSlice>();
|
||||||
auto data = make_shared<op::Parameter>(element::i32, Shape{2, 3, 4, 5});
|
auto data = make_shared<op::Parameter>(element::i32, Shape{2, 3, 4, 5});
|
||||||
auto begin = make_shared<op::Parameter>(element::i32, Shape{2});
|
auto begin = make_shared<op::Parameter>(element::i32, Shape{2});
|
||||||
auto end = make_shared<op::Parameter>(element::i32, Shape{2});
|
auto end = make_shared<op::Parameter>(element::i32, Shape{2});
|
||||||
@ -1252,7 +1252,7 @@ TEST(attributes, strided_slice_op)
|
|||||||
|
|
||||||
TEST(attributes, topk_op)
|
TEST(attributes, topk_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::TopK>();
|
NodeBuilder::get_ops().register_factory<opset1::TopK>();
|
||||||
auto data = make_shared<op::Parameter>(element::i32, Shape{2, 3, 4, 5});
|
auto data = make_shared<op::Parameter>(element::i32, Shape{2, 3, 4, 5});
|
||||||
auto k = make_shared<op::Parameter>(element::i32, Shape{});
|
auto k = make_shared<op::Parameter>(element::i32, Shape{});
|
||||||
|
|
||||||
@ -1271,7 +1271,7 @@ TEST(attributes, topk_op)
|
|||||||
|
|
||||||
TEST(attributes, logical_xor_op)
|
TEST(attributes, logical_xor_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::LogicalXor>();
|
NodeBuilder::get_ops().register_factory<opset1::LogicalXor>();
|
||||||
auto x1 = make_shared<op::Parameter>(element::boolean, Shape{200});
|
auto x1 = make_shared<op::Parameter>(element::boolean, Shape{200});
|
||||||
auto x2 = make_shared<op::Parameter>(element::boolean, Shape{200});
|
auto x2 = make_shared<op::Parameter>(element::boolean, Shape{200});
|
||||||
|
|
||||||
@ -1286,7 +1286,7 @@ TEST(attributes, logical_xor_op)
|
|||||||
|
|
||||||
TEST(attributes, extractimagepatches_op)
|
TEST(attributes, extractimagepatches_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset3::ExtractImagePatches>();
|
NodeBuilder::get_ops().register_factory<opset3::ExtractImagePatches>();
|
||||||
auto data = make_shared<op::Parameter>(element::i32, Shape{64, 3, 10, 10});
|
auto data = make_shared<op::Parameter>(element::i32, Shape{64, 3, 10, 10});
|
||||||
|
|
||||||
auto sizes = Shape{3, 3};
|
auto sizes = Shape{3, 3};
|
||||||
@ -1307,7 +1307,7 @@ TEST(attributes, extractimagepatches_op)
|
|||||||
|
|
||||||
TEST(attributes, mvn_op)
|
TEST(attributes, mvn_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset3::MVN>();
|
NodeBuilder::get_ops().register_factory<opset3::MVN>();
|
||||||
const auto data = make_shared<op::Parameter>(element::i32, Shape{2, 3, 4, 5});
|
const auto data = make_shared<op::Parameter>(element::i32, Shape{2, 3, 4, 5});
|
||||||
|
|
||||||
const auto axes = AxisSet{0, 1};
|
const auto axes = AxisSet{0, 1};
|
||||||
@ -1325,7 +1325,7 @@ TEST(attributes, mvn_op)
|
|||||||
|
|
||||||
TEST(attributes, reorg_yolo_op_stride)
|
TEST(attributes, reorg_yolo_op_stride)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset3::ReorgYolo>();
|
NodeBuilder::get_ops().register_factory<opset3::ReorgYolo>();
|
||||||
const auto data = make_shared<op::Parameter>(element::i32, Shape{1, 64, 26, 26});
|
const auto data = make_shared<op::Parameter>(element::i32, Shape{1, 64, 26, 26});
|
||||||
|
|
||||||
const auto op = make_shared<op::v0::ReorgYolo>(data, 2);
|
const auto op = make_shared<op::v0::ReorgYolo>(data, 2);
|
||||||
@ -1337,7 +1337,7 @@ TEST(attributes, reorg_yolo_op_stride)
|
|||||||
|
|
||||||
TEST(attributes, reorg_yolo_op_strides)
|
TEST(attributes, reorg_yolo_op_strides)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset3::ReorgYolo>();
|
NodeBuilder::get_ops().register_factory<opset3::ReorgYolo>();
|
||||||
const auto data = make_shared<op::Parameter>(element::i32, Shape{1, 64, 26, 26});
|
const auto data = make_shared<op::Parameter>(element::i32, Shape{1, 64, 26, 26});
|
||||||
|
|
||||||
const auto op = make_shared<op::v0::ReorgYolo>(data, Strides{2});
|
const auto op = make_shared<op::v0::ReorgYolo>(data, Strides{2});
|
||||||
@ -1349,7 +1349,7 @@ TEST(attributes, reorg_yolo_op_strides)
|
|||||||
|
|
||||||
TEST(attributes, roi_pooling_op)
|
TEST(attributes, roi_pooling_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset3::ROIPooling>();
|
NodeBuilder::get_ops().register_factory<opset3::ROIPooling>();
|
||||||
const auto data = make_shared<op::Parameter>(element::f32, Shape{2, 3, 4, 5});
|
const auto data = make_shared<op::Parameter>(element::f32, Shape{2, 3, 4, 5});
|
||||||
const auto coords = make_shared<op::Parameter>(element::f32, Shape{2, 5});
|
const auto coords = make_shared<op::Parameter>(element::f32, Shape{2, 5});
|
||||||
|
|
||||||
@ -1378,7 +1378,7 @@ TEST(attributes, constant_op)
|
|||||||
|
|
||||||
TEST(attributes, bucketize_v3_op_default_attributes)
|
TEST(attributes, bucketize_v3_op_default_attributes)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset3::Bucketize>();
|
NodeBuilder::get_ops().register_factory<opset3::Bucketize>();
|
||||||
auto data = make_shared<op::Parameter>(element::f32, Shape{2, 3, 4});
|
auto data = make_shared<op::Parameter>(element::f32, Shape{2, 3, 4});
|
||||||
auto buckets = make_shared<op::Parameter>(element::f32, Shape{5});
|
auto buckets = make_shared<op::Parameter>(element::f32, Shape{5});
|
||||||
auto bucketize = make_shared<opset3::Bucketize>(data, buckets);
|
auto bucketize = make_shared<opset3::Bucketize>(data, buckets);
|
||||||
@ -1392,7 +1392,7 @@ TEST(attributes, bucketize_v3_op_default_attributes)
|
|||||||
|
|
||||||
TEST(attributes, bucketize_v3_op_custom_attributes)
|
TEST(attributes, bucketize_v3_op_custom_attributes)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset3::Bucketize>();
|
NodeBuilder::get_ops().register_factory<opset3::Bucketize>();
|
||||||
auto data = make_shared<op::Parameter>(element::f32, Shape{2, 3, 4});
|
auto data = make_shared<op::Parameter>(element::f32, Shape{2, 3, 4});
|
||||||
auto buckets = make_shared<op::Parameter>(element::f32, Shape{5});
|
auto buckets = make_shared<op::Parameter>(element::f32, Shape{5});
|
||||||
element::Type output_type = element::i32;
|
element::Type output_type = element::i32;
|
||||||
@ -1409,7 +1409,7 @@ TEST(attributes, bucketize_v3_op_custom_attributes)
|
|||||||
|
|
||||||
TEST(attributes, cum_sum_op_default_attributes)
|
TEST(attributes, cum_sum_op_default_attributes)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset3::CumSum>();
|
NodeBuilder::get_ops().register_factory<opset3::CumSum>();
|
||||||
|
|
||||||
Shape shape{1, 4};
|
Shape shape{1, 4};
|
||||||
auto A = make_shared<op::Parameter>(element::f32, shape);
|
auto A = make_shared<op::Parameter>(element::f32, shape);
|
||||||
@ -1425,7 +1425,7 @@ TEST(attributes, cum_sum_op_default_attributes)
|
|||||||
|
|
||||||
TEST(attributes, cum_sum_op_custom_attributes)
|
TEST(attributes, cum_sum_op_custom_attributes)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset3::CumSum>();
|
NodeBuilder::get_ops().register_factory<opset3::CumSum>();
|
||||||
|
|
||||||
Shape shape{1, 4};
|
Shape shape{1, 4};
|
||||||
auto A = make_shared<op::Parameter>(element::f32, shape);
|
auto A = make_shared<op::Parameter>(element::f32, shape);
|
||||||
@ -1443,7 +1443,7 @@ TEST(attributes, cum_sum_op_custom_attributes)
|
|||||||
|
|
||||||
TEST(attributes, interpolate_op)
|
TEST(attributes, interpolate_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::Interpolate>();
|
NodeBuilder::get_ops().register_factory<opset1::Interpolate>();
|
||||||
auto img = make_shared<op::Parameter>(element::f32, Shape{1, 3, 32, 32});
|
auto img = make_shared<op::Parameter>(element::f32, Shape{1, 3, 32, 32});
|
||||||
auto out_shape = make_shared<op::Parameter>(element::i32, Shape{2});
|
auto out_shape = make_shared<op::Parameter>(element::i32, Shape{2});
|
||||||
|
|
||||||
@ -1472,7 +1472,7 @@ TEST(attributes, interpolate_op)
|
|||||||
|
|
||||||
TEST(attributes, detection_output_op)
|
TEST(attributes, detection_output_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::DetectionOutput>();
|
NodeBuilder::get_ops().register_factory<opset1::DetectionOutput>();
|
||||||
const auto box_logits = make_shared<op::Parameter>(element::f32, Shape{1, 2 * 1 * 4});
|
const auto box_logits = make_shared<op::Parameter>(element::f32, Shape{1, 2 * 1 * 4});
|
||||||
const auto class_preds = make_shared<op::Parameter>(element::f32, Shape{1, 2 * 32});
|
const auto class_preds = make_shared<op::Parameter>(element::f32, Shape{1, 2 * 32});
|
||||||
const auto proposals = make_shared<op::Parameter>(element::f32, Shape{1, 2, 2 * 4});
|
const auto proposals = make_shared<op::Parameter>(element::f32, Shape{1, 2, 2 * 4});
|
||||||
@ -1525,7 +1525,7 @@ TEST(attributes, detection_output_op)
|
|||||||
|
|
||||||
TEST(attributes, prior_box_op)
|
TEST(attributes, prior_box_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::PriorBox>();
|
NodeBuilder::get_ops().register_factory<opset1::PriorBox>();
|
||||||
const auto layer_shape = make_shared<op::Parameter>(element::i64, Shape{128, 128});
|
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});
|
const auto image_shape = make_shared<op::Parameter>(element::i64, Shape{32, 32});
|
||||||
|
|
||||||
@ -1566,7 +1566,7 @@ TEST(attributes, prior_box_op)
|
|||||||
|
|
||||||
TEST(attributes, prior_box_clustered_op)
|
TEST(attributes, prior_box_clustered_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::PriorBoxClustered>();
|
NodeBuilder::get_ops().register_factory<opset1::PriorBoxClustered>();
|
||||||
const auto layer_shape = make_shared<op::Parameter>(element::i64, Shape{128, 128});
|
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});
|
const auto image_shape = make_shared<op::Parameter>(element::i64, Shape{32, 32});
|
||||||
|
|
||||||
@ -1597,7 +1597,7 @@ TEST(attributes, prior_box_clustered_op)
|
|||||||
|
|
||||||
TEST(attributes, proposal_op)
|
TEST(attributes, proposal_op)
|
||||||
{
|
{
|
||||||
FactoryRegistry<Node>::get().register_factory<opset1::Proposal>();
|
NodeBuilder::get_ops().register_factory<opset1::Proposal>();
|
||||||
const auto class_probs = make_shared<op::Parameter>(element::i64, Shape{1024, 3, 128, 128});
|
const auto class_probs = make_shared<op::Parameter>(element::i64, Shape{1024, 3, 128, 128});
|
||||||
const auto class_logits = make_shared<op::Parameter>(element::i64, Shape{1024, 3, 128, 128});
|
const auto class_logits = make_shared<op::Parameter>(element::i64, Shape{1024, 3, 128, 128});
|
||||||
const auto image_shape = make_shared<op::Parameter>(element::i64, Shape{4});
|
const auto image_shape = make_shared<op::Parameter>(element::i64, Shape{4});
|
||||||
|
@ -211,7 +211,7 @@ TEST(opset, new_op)
|
|||||||
fred = shared_ptr<Node>(opset1_copy.create_insensitive("FReD"));
|
fred = shared_ptr<Node>(opset1_copy.create_insensitive("FReD"));
|
||||||
EXPECT_TRUE(fred);
|
EXPECT_TRUE(fred);
|
||||||
// Fred should not be in the registry
|
// Fred should not be in the registry
|
||||||
ASSERT_FALSE(FactoryRegistry<Node>::get().has_factory<NewOp>());
|
ASSERT_FALSE(get_opset1().contains_type(NewOp::type_info));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(opset, dump)
|
TEST(opset, dump)
|
||||||
|
@ -16,12 +16,14 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <mutex>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "ngraph/attribute_visitor.hpp"
|
#include "ngraph/attribute_visitor.hpp"
|
||||||
#include "ngraph/factory.hpp"
|
#include "ngraph/factory.hpp"
|
||||||
|
#include "ngraph/ops.hpp"
|
||||||
#include "ngraph/runtime/host_tensor.hpp"
|
#include "ngraph/runtime/host_tensor.hpp"
|
||||||
|
|
||||||
namespace ngraph
|
namespace ngraph
|
||||||
@ -367,12 +369,30 @@ namespace ngraph
|
|||||||
// Does not validate, since inputs aren't set
|
// Does not validate, since inputs aren't set
|
||||||
std::shared_ptr<Node> create()
|
std::shared_ptr<Node> create()
|
||||||
{
|
{
|
||||||
std::shared_ptr<Node> node(FactoryRegistry<Node>::get().create(m_node_type_info));
|
std::shared_ptr<Node> node(get_ops().create(m_node_type_info));
|
||||||
node->visit_attributes(*this);
|
node->visit_attributes(*this);
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
AttributeVisitor& get_node_saver() { return m_serializer; }
|
AttributeVisitor& get_node_saver() { return m_serializer; }
|
||||||
AttributeVisitor& get_node_loader() { return *this; }
|
AttributeVisitor& get_node_loader() { return *this; }
|
||||||
|
static FactoryRegistry<Node>& get_ops()
|
||||||
|
{
|
||||||
|
static std::shared_ptr<FactoryRegistry<Node>> registry;
|
||||||
|
static std::mutex init_guard;
|
||||||
|
if (!registry)
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> guard(init_guard);
|
||||||
|
if (!registry)
|
||||||
|
{
|
||||||
|
registry = std::make_shared<FactoryRegistry<Node>>();
|
||||||
|
#define NGRAPH_OP(NAME, NAMESPACE, VERSION) registry->register_factory<NAMESPACE::NAME>();
|
||||||
|
#include "op_version_tbl.hpp"
|
||||||
|
#undef NGRAPH_OP
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return *registry;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Node::type_info_t m_node_type_info;
|
Node::type_info_t m_node_type_info;
|
||||||
SerializeAttributeVisitor m_serializer;
|
SerializeAttributeVisitor m_serializer;
|
||||||
|
Loading…
Reference in New Issue
Block a user