19 #include "ngraph/coordinate_diff.hpp"
20 #include "ngraph/op/op.hpp"
21 #include "ngraph/op/util/attr_types.hpp"
32 static constexpr NodeTypeInfo type_info{
"BinaryConvolution", 1};
33 const NodeTypeInfo&
get_type_info()
const override {
return type_info; }
34 enum class BinaryConvolutionMode
55 const Output<Node>& kernel,
56 const Strides& strides,
57 const CoordinateDiff& pads_begin,
58 const CoordinateDiff& pads_end,
59 const Strides& dilations,
60 BinaryConvolutionMode mode,
62 const PadType& auto_pad = PadType::EXPLICIT);
65 const Output<Node>& kernel,
66 const Strides& strides,
67 const CoordinateDiff& pads_begin,
68 const CoordinateDiff& pads_end,
69 const Strides& dilations,
70 const std::string& mode,
72 const PadType& auto_pad = PadType::EXPLICIT);
80 clone_with_new_inputs(
const OutputVector& new_args)
const override;
84 void set_strides(
const Strides& strides) { m_strides = strides; }
87 void set_dilations(
const Strides& dilations) { m_dilations = dilations; }
90 void set_pads_begin(
const CoordinateDiff& pads_begin) { m_pads_begin = pads_begin; }
93 void set_adding_above(
const CoordinateDiff& pads_end) { m_pads_end = pads_end; }
96 void set_auto_pad(
const PadType& auto_pad) { m_auto_pad = auto_pad; }
98 const BinaryConvolutionMode&
get_mode()
const {
return m_mode; }
99 void set_mode(
const BinaryConvolutionMode& mode) { m_mode = mode; }
102 void set_pad_value(
float pad_value) { m_pad_value = pad_value; }
104 BinaryConvolutionMode mode_from_string(
const std::string& mode)
const;
107 CoordinateDiff m_pads_begin;
108 CoordinateDiff m_pads_end;
109 BinaryConvolutionMode m_mode;
117 std::ostream& operator<<(std::ostream& s,
118 const op::v1::BinaryConvolution::BinaryConvolutionMode& type);
121 class NGRAPH_API AttributeAdapter<op::v1::BinaryConvolution::BinaryConvolutionMode>
122 :
public EnumAttributeAdapterBase<op::v1::BinaryConvolution::BinaryConvolutionMode>
125 AttributeAdapter(op::v1::BinaryConvolution::BinaryConvolutionMode& value)
126 : EnumAttributeAdapterBase<op::v1::BinaryConvolution::BinaryConvolutionMode>(value)
131 "AttributeAdapter<op::v1::BinaryConvolution::BinaryConvolutionMode>", 0};
132 const DiscreteTypeInfo& get_type_info()
const override {
return type_info; }
const BinaryConvolutionMode & get_mode() const
Definition: binary_convolution.hpp:98
PadType
Padding Type used for Convolution and Pooling
Definition: attr_types.hpp:71
const Strides & get_dilations() const
Definition: binary_convolution.hpp:86
BinaryConvolution()=default
Constructs a binary convolution operation.
const CoordinateDiff & get_pads_end() const
Definition: binary_convolution.hpp:92
BinaryConvolution(const Output< Node > &data, const Output< Node > &kernel, const Strides &strides, const CoordinateDiff &pads_begin, const CoordinateDiff &pads_end, const Strides &dilations, BinaryConvolutionMode mode, float pad_value, const PadType &auto_pad=PadType::EXPLICIT)
Constructs a binary convolution operation.
Definition: binary_convolution.hpp:30
size_t get_version() const override
Definition: binary_convolution.hpp:74
The Intel nGraph C++ API.
Definition: attribute_adapter.hpp:28
const Strides & get_strides() const
Definition: binary_convolution.hpp:83
Visits the attributes of a node, primarily for serialization-like tasks.
Definition: attribute_visitor.hpp:70
void validate_and_infer_types() override
Verifies that attributes and inputs are consistent and computes output shapes and element types....
const CoordinateDiff & get_pads_begin() const
Definition: binary_convolution.hpp:89
const NodeTypeInfo & get_type_info() const override
Definition: binary_convolution.hpp:33
const PadType & get_auto_pad() const
Definition: binary_convolution.hpp:95
float get_pad_value() const
Definition: binary_convolution.hpp:101
Root of all actual ops.
Definition: op.hpp:29