Convolutions

View as Markdown

Convolution Fprop

Convolution fprop computes:

response=image∗filterresponse = image * filter

C++ API

std::shared_ptr<Tensor_attributes> conv_fprop(std::shared_ptr<Tensor_attributes> image,
std::shared_ptr<Tensor_attributes> filter,
Conv_fprop_attributes);

Conv_fprop_attributes is a lightweight structure with setters:

Conv_fprop_attributes&
set_padding(std::vector<int64_t>)
Conv_fprop_attributes&
set_stride(std::vector<int64_t>)
Conv_fprop_attributes&
set_dilation(std::vector<int64_t>)
Conv_fprop_attributes&
set_name(std::string const&)
Conv_fprop_attributes&
set_compute_data_type(DataType_t value)
Conv_fprop_attributes&
set_convolution_mode(ConvolutionMode_t mode_)

Python API

  • conv_fprop
    • image
    • weight
    • pre_padding
    • post_padding
    • stride
    • dilation
    • convolution_mode
    • compute_data_type
    • name

The symmetric-padding overload accepts padding in place of pre_padding and post_padding.

Convolution Dgrad

Convolution dgrad computes data gradient during backpropagation.

C++ API

std::shared_ptr<Tensor_attributes> conv_dgrad(std::shared_ptr<Tensor_attributes> image,
std::shared_ptr<Tensor_attributes> filter,
Conv_dgrad_attributes);

Conv_dgrad_attributes is a lightweight structure with setters:

Conv_dgrad_attributes&
set_padding(std::vector<int64_t>)
Conv_dgrad_attributes&
set_stride(std::vector<int64_t>)
Conv_dgrad_attributes&
set_dilation(std::vector<int64_t>)
Conv_dgrad_attributes&
set_name(std::string const&)
Conv_dgrad_attributes&
set_compute_data_type(DataType_t value)
Conv_dgrad_attributes&
set_convolution_mode(ConvolutionMode_t mode_)

Python API

  • conv_dgrad
    • loss
    • filter
    • pre_padding
    • post_padding
    • stride
    • dilation
    • convolution_mode
    • compute_data_type
    • name

The symmetric-padding overload accepts padding in place of pre_padding and post_padding.

Convolution Wgrad

Convolution wgrad computes weight gradient during backpropagation.

C++ API

std::shared_ptr<Tensor_attributes> conv_wgrad(std::shared_ptr<Tensor_attributes> image,
std::shared_ptr<Tensor_attributes> filter,
Conv_wgrad_attributes);

Conv_wgrad_attributes is a lightweight structure with setters:

Conv_wgrad_attributes&
set_padding(std::vector<int64_t>)
Conv_wgrad_attributes&
set_stride(std::vector<int64_t>)
Conv_wgrad_attributes&
set_dilation(std::vector<int64_t>)
Conv_wgrad_attributes&
set_name(std::string const&)
Conv_wgrad_attributes&
set_compute_data_type(DataType_t value)
Conv_wgrad_attributes&
set_convolution_mode(ConvolutionMode_t mode_)

Python API

  • conv_wgrad
    • image
    • loss
    • pre_padding
    • post_padding
    • stride
    • dilation
    • convolution_mode
    • compute_data_type
    • name

The symmetric-padding overload accepts padding in place of pre_padding and post_padding.