MCPcopy Create free account
hub / github.com/ARM-software/ComputeLibrary / ConvolutionLayer

Class ConvolutionLayer

arm_compute/graph/frontend/Layers.h:377–433  ·  view source on GitHub ↗

Convolution Layer */

Source from the content-addressed store, hash-verified

375
376/** Convolution Layer */
377class ConvolutionLayer final : public ILayer
378{
379public:
380 /** Construct a convolution layer.
381 *
382 * @param[in] conv_width Convolution width.
383 * @param[in] conv_height Convolution height.
384 * @param[in] ofm Output feature map.
385 * @param[in] weights Accessor to get kernel weights from.
386 * @param[in] bias Accessor to get kernel bias from.
387 * @param[in] conv_info Padding and stride information.
388 * @param[in] num_groups (Optional) Number of groups. Default: 1.
389 * @param[in] weights_quant_info (Optional) Weights quantization information
390 * @param[in] out_quant_info (Optional) Output quantization info
391 */
392 ConvolutionLayer(unsigned int conv_width,
393 unsigned int conv_height,
394 unsigned int ofm,
395 ITensorAccessorUPtr weights,
396 ITensorAccessorUPtr bias,
397 PadStrideInfo conv_info,
398 unsigned int num_groups = 1,
399 const QuantizationInfo weights_quant_info = QuantizationInfo(),
400 const QuantizationInfo out_quant_info = QuantizationInfo())
401 : _conv_width(conv_width),
402 _conv_height(conv_height),
403 _ofm(ofm),
404 _conv_info(std::move(conv_info)),
405 _num_groups(num_groups),
406 _weights(std::move(weights)),
407 _bias(std::move(bias)),
408 _weights_quant_info(std::move(weights_quant_info)),
409 _out_quant_info(std::move(out_quant_info))
410 {
411 }
412
413 NodeID create_layer(IStream &s) override
414 {
415 NodeIdxPair input = {s.tail_node(), 0};
416 NodeParams common_params = {name(), s.hints().target_hint};
417 return GraphBuilder::add_convolution_node(s.graph(), common_params, input, Size2D(_conv_width, _conv_height),
418 _ofm, _conv_info, _num_groups, s.hints().convolution_method_hint,
419 s.hints().fast_math_hint, std::move(_weights), std::move(_bias),
420 std::move(_weights_quant_info), std::move(_out_quant_info));
421 }
422
423private:
424 unsigned int _conv_width;
425 unsigned int _conv_height;
426 unsigned int _ofm;
427 const PadStrideInfo _conv_info;
428 unsigned int _num_groups;
429 ITensorAccessorUPtr _weights;
430 ITensorAccessorUPtr _bias;
431 const QuantizationInfo _weights_quant_info;
432 const QuantizationInfo _out_quant_info;
433};
434

Callers 15

GraphFunctionLayerMethod · 0.85
do_setupMethod · 0.85
block_mixed_5bMethod · 0.85
block_mixed_6aMethod · 0.85
block_mixed_7aMethod · 0.85
block35_repeatMethod · 0.85
block17_repeatMethod · 0.85
block8_repeatMethod · 0.85
do_setupMethod · 0.85
create_graph_floatMethod · 0.85
create_graph_qasymmMethod · 0.85
get_dwsc_node_floatMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected