|
clDNN
|
Performs forward spatial convolution with weight sharing. Also supports built-in Relu cldnn_activation_desc available by setting it in arguments. More...
#include <convolution.hpp>


Public Types | |
| typedef cldnn_convolution_desc | dto |
Public Member Functions | |
| convolution (const primitive_id &id, const primitive_id &input, const std::vector< primitive_id > &weights, const std::vector< primitive_id > &bias, tensor stride={ 1, 1, 1, 1 }, tensor input_offset={ 0, 0, 0, 0 }, tensor dilation={ 1, 1, 1, 1 }, bool with_activation=false, float activation_slp=0.0f, const padding &output_padding=padding()) | |
| Constructs convolution primitive. More... | |
| convolution (const primitive_id &id, const primitive_id &input, const std::vector< primitive_id > &weights, tensor stride={ 1, 1, 1, 1 }, tensor input_offset={ 0, 0, 0, 0 }, tensor dilation={ 1, 1, 1, 1 }, bool with_activation=false, float activation_slp=0.0f, const padding &output_padding=padding()) | |
| Constructs convolution primitive (w/o bias). More... | |
| convolution (const primitive_id &id, const primitive_id &input, const std::vector< primitive_id > &weights, const std::vector< primitive_id > &bias, tensor stride, tensor input_offset, tensor dilation, bool with_activation, float activation_slp, tensor output_size, const padding &output_padding=padding()) | |
| Constructs convolution primitive (computes input paddings to match output size). More... | |
| convolution (const primitive_id &id, const primitive_id &input, const std::vector< primitive_id > &weights, tensor stride, tensor input_offset, tensor dilation, bool with_activation, float activation_slp, tensor output_size, const padding &output_padding=padding()) | |
| Constructs convolution primitive (w/o bias; computes input paddings to match output size). More... | |
| convolution (const dto *dto) | |
| Constructs a copy from C API cldnn_convolution_desc. | |
| int32_t | split () const |
| On how many cards split the computation to. | |
Public Member Functions inherited from cldnn::primitive_base< convolution, cldnn_convolution_desc > | |
| const cldnn_primitive_desc * | get_dto () const override |
| Returns pointer to a C API primitive descriptor casted to cldnn_primitive_desc. | |
Public Member Functions inherited from cldnn::primitive | |
| primitive (const primitive_type_id &type, const primitive_id &id, const std::vector< primitive_id > &input, const padding &output_padding=padding()) | |
| primitive (const cldnn_primitive_desc *dto) | |
| Constructs a copy from basic C API cldnn_primitive_desc. | |
| std::vector< std::reference_wrapper< primitive_id > > | dependecies () |
| Returns references to all primitive ids on which this primitive depends - inputs, weights, biases, etc. | |
| std::vector< primitive_id > | dependecies () const |
| Returns copy of all primitive ids on which this primitive depends - inputs, weights, biases, etc. | |
| operator primitive_id () const | |
| Implicit conversion to primiitive id. | |
Static Public Member Functions | |
| static primitive_type_id | type_id () |
| static convolution | create_with_output_size (const primitive_id &id, const primitive_id &input, const std::vector< primitive_id > &weights, const std::vector< primitive_id > &bias, tensor output_size, tensor stride={ 1, 1, 1, 1 }, tensor input_offset={ 0, 0, 0, 0 }, tensor dilation={ 1, 1, 1, 1 }, bool with_activation=false, float activation_slp=0.0f, const padding &output_padding=padding()) |
| Constructs convolution primitive (computes input paddings to match output size). More... | |
| static convolution | create_with_output_size (const primitive_id &id, const primitive_id &input, const std::vector< primitive_id > &weights, tensor output_size, tensor stride={ 1, 1, 1, 1 }, tensor input_offset={ 0, 0, 0, 0 }, tensor dilation={ 1, 1, 1, 1 }, bool with_activation=false, float activation_slp=0.0f, const padding &output_padding=padding()) |
| Constructs convolution primitive (w/o bias; computes input paddings to match output size). More... | |
Public Attributes | |
| fixed_size_vector_ref | weights |
| List of primitive ids containing weights data. | |
| fixed_size_vector_ref | bias |
| List of primitive ids containing bias data. | |
| tensor | input_offset |
| Defines a shift, relative to (0,0) position of the input buffer, where (0,0) point of the convolution window should start calculations. | |
| tensor | stride |
| Defines shift in input buffer between adjacent calculations of output values. | |
| tensor | dilation |
| Defines gaps in the input - dilation rate k=1 is normal convolution, k=2 means skipping one pixel per input, k=4 means skipping 3 pixels. As an example in one dimension, a filter w of size 3 would compute over input x the following: w[0]*x[0] + w[1]*x[1] + w[2]*x[2] for dilation of 1. For dilation 2 the filter would instead compute w[0]*x[0] + w[1]*x[2] + w[2]*x[4]. | |
| bool | with_activation |
| Enable Relu activation. | |
| float | activation_negative_slope |
| Relu activation slope. | |
| bool | with_output_size |
| Indicates that the primitive has user-defined output size (non-zero value). | |
| tensor | output_size |
| User-defined output data size of the primitive (w/o padding). | |
Public Attributes inherited from cldnn::primitive | |
| const primitive_type_id | type |
| Primitive's type id. | |
| const primitive_id | id |
| Primitive's id. | |
| fixed_size_vector_ref | input |
| List of ids of input primitives. | |
| padding | output_padding |
| Requested output padding. | |
Protected Member Functions | |
| std::vector< std::reference_wrapper< const primitive_id > > | get_dependencies () const override |
| void | update_dto (dto &dto) const override |
Protected Member Functions inherited from cldnn::primitive_base< convolution, cldnn_convolution_desc > | |
| primitive_base (const primitive_id &id, const std::vector< primitive_id > &input, const padding &output_padding=padding()) | |
| primitive_base (const cldnn_convolution_desc *dto) | |
Protected Attributes | |
| primitive_id_arr | _weights |
| primitive_id_arr | _bias |
Protected Attributes inherited from cldnn::primitive | |
| primitive_id_arr | _input |
Performs forward spatial convolution with weight sharing. Also supports built-in Relu cldnn_activation_desc available by setting it in arguments.
Parameters are defined in context of "direct" convolution, but actual algorithm is not implied.
Definition at line 34 of file convolution.hpp.
|
inline |
Constructs convolution primitive.
| id | This primitive id. |
| input | Input primitive id. |
| weights | List of primitive ids containing weights data. |
| bias | List of primitive ids containing bias data. |
| input_offset | Input padding/offset. |
| stride | Defines shift in input buffer between adjacent calculations of output values. |
| dilation | Defines gaps in the input - dilation rate k=1 is normal convolution, k=2 means skipping one pixel per input, k=4 means skipping 3 pixels. As an example in one dimension, a filter w of size 3 would compute over input x the following: w[0]*x[0] + w[1]*x[1] + w[2]*x[2] for dilation of 1. For dilation 2 the filter would instead compute w[0]*x[0] + w[1]*x[2] + w[2]*x[4]. |
| with_activation | Enable Relu activation. |
| activation_slp | Relu activation slope. |
Definition at line 50 of file convolution.hpp.
|
inline |
Constructs convolution primitive (w/o bias).
| id | This primitive id. |
| input | Input primitive id. |
| weights | List of primitive ids containing weights data. |
| input_offset | Input padding/offset. |
| stride | Defines shift in input buffer between adjacent calculations of output values. |
| dilation | Defines gaps in the input - dilation rate k=1 is normal convolution, k=2 means skipping one pixel per input, k=4 means skipping 3 pixels. As an example in one dimension, a filter w of size 3 would compute over input x the following: w[0]*x[0] + w[1]*x[1] + w[2]*x[2] for dilation of 1. For dilation 2 the filter would instead compute w[0]*x[0] + w[1]*x[2] + w[2]*x[4]. |
| with_activation | Enable Relu activation. |
| activation_slp | Relu activation slope. |
Definition at line 89 of file convolution.hpp.
|
inline |
Constructs convolution primitive (computes input paddings to match output size).
| id | This primitive id. |
| input | Input primitive id. |
| weights | List of primitive ids containing weights data. |
| bias | List of primitive ids containing bias data. |
| input_offset | Input padding/offset. |
| stride | Defines shift in input buffer between adjacent calculations of output values. |
| dilation | Defines gaps in the input - dilation rate k=1 is normal convolution, k=2 means skipping one pixel per input, k=4 means skipping 3 pixels. As an example in one dimension, a filter w of size 3 would compute over input x the following: w[0]*x[0] + w[1]*x[1] + w[2]*x[2] for dilation of 1. For dilation 2 the filter would instead compute w[0]*x[0] + w[1]*x[2] + w[2]*x[4]. |
| with_activation | Enable Relu activation. |
| activation_slp | Relu activation slope. |
| output_size | User-defined output data size of the primitive (w/o padding). |
Definition at line 127 of file convolution.hpp.
|
inline |
Constructs convolution primitive (w/o bias; computes input paddings to match output size).
| id | This primitive id. |
| input | Input primitive id. |
| weights | List of primitive ids containing weights data. |
| input_offset | Input padding/offset. |
| stride | Defines shift in input buffer between adjacent calculations of output values. |
| dilation | Defines gaps in the input - dilation rate k=1 is normal convolution, k=2 means skipping one pixel per input, k=4 means skipping 3 pixels. As an example in one dimension, a filter w of size 3 would compute over input x the following: w[0]*x[0] + w[1]*x[1] + w[2]*x[2] for dilation of 1. For dilation 2 the filter would instead compute w[0]*x[0] + w[1]*x[2] + w[2]*x[4]. |
| with_activation | Enable Relu activation. |
| activation_slp | Relu activation slope. |
| output_size | User-defined output data size of the primitive (w/o padding). |
Definition at line 169 of file convolution.hpp.
|
inlinestatic |
Constructs convolution primitive (computes input paddings to match output size).
| id | This primitive id. |
| input | Input primitive id. |
| weights | List of primitive ids containing weights data. |
| bias | List of primitive ids containing bias data. |
| input_offset | Input padding/offset. |
| stride | Defines shift in input buffer between adjacent calculations of output values. |
| dilation | Defines gaps in the input - dilation rate k=1 is normal convolution, k=2 means skipping one pixel per input, k=4 means skipping 3 pixels. As an example in one dimension, a filter w of size 3 would compute over input x the following: w[0]*x[0] + w[1]*x[1] + w[2]*x[2] for dilation of 1. For dilation 2 the filter would instead compute w[0]*x[0] + w[1]*x[2] + w[2]*x[4]. |
| with_activation | Enable Relu activation. |
| activation_slp | Relu activation slope. |
| output_size | User-defined output data size of the primitive (w/o padding). |
Definition at line 229 of file convolution.hpp.
|
inlinestatic |
Constructs convolution primitive (w/o bias; computes input paddings to match output size).
| id | This primitive id. |
| input | Input primitive id. |
| weights | List of primitive ids containing weights data. |
| input_offset | Input padding/offset. |
| stride | Defines shift in input buffer between adjacent calculations of output values. |
| dilation | Defines gaps in the input - dilation rate k=1 is normal convolution, k=2 means skipping one pixel per input, k=4 means skipping 3 pixels. As an example in one dimension, a filter w of size 3 would compute over input x the following: w[0]*x[0] + w[1]*x[1] + w[2]*x[2] for dilation of 1. For dilation 2 the filter would instead compute w[0]*x[0] + w[1]*x[2] + w[2]*x[4]. |
| with_activation | Enable Relu activation. |
| activation_slp | Relu activation slope. |
| output_size | User-defined output data size of the primitive (w/o padding). |
Definition at line 260 of file convolution.hpp.