19 #include "ngraph/coordinate_diff.hpp"
20 #include "ngraph/op/op.hpp"
21 #include "ngraph/op/util/attr_types.hpp"
34 NGRAPH_RTTI_DECLARATION;
58 const Output<Node>& filters,
59 const Strides& strides,
60 const CoordinateDiff& pads_begin,
61 const CoordinateDiff& pads_end,
62 const Strides& dilations,
63 const PadType& auto_pad = PadType::EXPLICIT);
68 virtual std::shared_ptr<Node>
69 clone_with_new_inputs(
const OutputVector& new_args)
const override;
73 void set_strides(
const Strides& strides) { m_strides = strides; }
76 void set_dilations(
const Strides& dilations) { m_dilations = dilations; }
79 void set_pads_begin(
const CoordinateDiff& pads_begin) { m_pads_begin = pads_begin; }
82 void set_adding_above(
const CoordinateDiff& pads_end) { m_pads_end = pads_end; }
85 void set_auto_pad(
const PadType& auto_pad) { m_auto_pad = auto_pad; }
92 CoordinateDiff m_pads_begin;
93 CoordinateDiff m_pads_end;
101 static constexpr NodeTypeInfo type_info{
"ConvolutionBackpropData", 1};
124 const Output<Node>& filters,
125 const Output<Node>& output_shape,
126 const Strides& strides,
127 const CoordinateDiff& pads_begin,
128 const CoordinateDiff& pads_end,
129 const Strides& dilations,
130 const PadType& auto_pad = PadType::EXPLICIT,
131 const CoordinateDiff& output_padding = {});
150 const Output<Node>& filters,
151 const Strides& strides,
152 const CoordinateDiff& pads_begin,
153 const CoordinateDiff& pads_end,
154 const Strides& dilations,
155 const PadType& auto_pad = PadType::EXPLICIT,
156 const CoordinateDiff& output_padding = {});
160 virtual bool is_dynamic()
const override;
162 virtual std::shared_ptr<Node>
163 clone_with_new_inputs(
const OutputVector& new_args)
const override;
167 void set_output_shape(
const Shape& output_shape);
170 void set_strides(
const Strides& strides) { m_strides = strides; }
173 void set_dilations(
const Strides& dilations) { m_dilations = dilations; }
176 void set_pads_begin(
const CoordinateDiff& pads_begin) { m_pads_begin = pads_begin; }
179 void set_pads_end(
const CoordinateDiff& pads_end) { m_pads_end = pads_end; }
182 void set_auto_pad(
const PadType& auto_pad) { m_auto_pad = auto_pad; }
185 void set_output_padding(
const CoordinateDiff& output_padding)
187 m_output_padding = output_padding;
203 const std::vector<Dimension>& filters_shape,
204 const Strides& strides,
205 const Strides& dilations,
206 const CoordinateDiff& pads_begin,
207 const CoordinateDiff& pads_end,
208 const CoordinateDiff& output_padding,
209 std::vector<Dimension>& output_spatial_shape);
214 CoordinateDiff m_pads_begin;
215 CoordinateDiff m_pads_end;
217 CoordinateDiff m_output_padding;
const PadType & get_auto_pad() const
Definition: convolution.hpp:84
Data batch backprop for batched convolution operation.
Definition: convolution.hpp:99
PadType
Padding Type used for Convolution and Pooling
Definition: attr_types.hpp:71
const NodeTypeInfo & get_type_info() const override
Definition: convolution.hpp:102
Convolution(const Output< Node > &data_batch, const Output< Node > &filters, const Strides &strides, const CoordinateDiff &pads_begin, const CoordinateDiff &pads_end, const Strides &dilations, const PadType &auto_pad=PadType::EXPLICIT)
Constructs a batched convolution operation.
const CoordinateDiff & get_pads_end() const
Definition: convolution.hpp:81
Convolution()=default
Constructs a batched convolution operation.
const CoordinateDiff & get_pads_end() const
Definition: convolution.hpp:178
const Strides & get_strides() const
Definition: convolution.hpp:169
const Strides & get_dilations() const
Definition: convolution.hpp:172
void validate_and_infer_types() override
Verifies that attributes and inputs are consistent and computes output shapes and element types....
const PadType & get_auto_pad() const
Definition: convolution.hpp:181
const Strides & get_strides() const
Definition: convolution.hpp:72
void infer_conv_backprop_output_spatial_shape(const std::vector< Dimension > &input_data_shape, const std::vector< Dimension > &filters_shape, const Strides &strides, const Strides &dilations, const CoordinateDiff &pads_begin, const CoordinateDiff &pads_end, const CoordinateDiff &output_padding, std::vector< Dimension > &output_spatial_shape)
Calculates output spatial features size.
The Intel nGraph C++ API.
Definition: attribute_adapter.hpp:28
ConvolutionBackpropData()=default
Constructs a batched-convolution data batch-backprop operation.
void validate_and_infer_types() override
Verifies that attributes and inputs are consistent and computes output shapes and element types....
Visits the attributes of a node, primarily for serialization-like tasks.
Definition: attribute_visitor.hpp:70
const CoordinateDiff & get_output_padding() const
Definition: convolution.hpp:184
Batched convolution operation, with optional window dilation and stride.
Definition: convolution.hpp:32
const CoordinateDiff & get_pads_begin() const
Definition: convolution.hpp:175
const PartialShape get_output_shape() const
const CoordinateDiff & get_pads_begin() const
Definition: convolution.hpp:78
virtual std::shared_ptr< Node > get_default_value() const override
const Strides & get_dilations() const
Definition: convolution.hpp:75
Root of all actual ops.
Definition: op.hpp:29