Inner Product

Overview

A primitive to compute an inner product. More…

// structs

struct dnnl_inner_product_desc_t;
struct dnnl::inner_product_backward_data;
struct dnnl::inner_product_backward_weights;
struct dnnl::inner_product_forward;

// global functions

dnnl_status_t DNNL_API dnnl_inner_product_forward_desc_init(
    dnnl_inner_product_desc_t* ip_desc,
    dnnl_prop_kind_t prop_kind,
    const dnnl_memory_desc_t* src_desc,
    const dnnl_memory_desc_t* weights_desc,
    const dnnl_memory_desc_t* bias_desc,
    const dnnl_memory_desc_t* dst_desc
    );

dnnl_status_t DNNL_API dnnl_inner_product_backward_data_desc_init(
    dnnl_inner_product_desc_t* ip_desc,
    const dnnl_memory_desc_t* diff_src_desc,
    const dnnl_memory_desc_t* weights_desc,
    const dnnl_memory_desc_t* diff_dst_desc
    );

dnnl_status_t DNNL_API dnnl_inner_product_backward_weights_desc_init(
    dnnl_inner_product_desc_t* ip_desc,
    const dnnl_memory_desc_t* src_desc,
    const dnnl_memory_desc_t* diff_weights_desc,
    const dnnl_memory_desc_t* diff_bias_desc,
    const dnnl_memory_desc_t* diff_dst_desc
    );

Detailed Documentation

A primitive to compute an inner product.

See also:

Inner Product in developer guide

Global Functions

dnnl_status_t DNNL_API dnnl_inner_product_forward_desc_init(
    dnnl_inner_product_desc_t* ip_desc,
    dnnl_prop_kind_t prop_kind,
    const dnnl_memory_desc_t* src_desc,
    const dnnl_memory_desc_t* weights_desc,
    const dnnl_memory_desc_t* bias_desc,
    const dnnl_memory_desc_t* dst_desc
    )

Initializes descriptor for inner product forward propagation.

Note

Memory descriptors can be initialized with dnnl_format_tag_any or with format_kind set to dnnl_format_kind_any.

Parameters:

ip_desc

Output descriptor for inner product primitive.

prop_kind

Propagation kind. Possible values are dnnl_forward_training and dnnl_forward_inference.

src_desc

Source memory descriptor.

weights_desc

Weights memory descriptor.

bias_desc

Bias memory descriptor. Passing NULL, a zero memory descriptor, or a memory descriptor with format_kind set to dnnl_format_kind_undef disables the bias term.

dst_desc

Destination memory descriptor.

Returns:

dnnl_success on success and a status describing the error otherwise.

dnnl_status_t DNNL_API dnnl_inner_product_backward_data_desc_init(
    dnnl_inner_product_desc_t* ip_desc,
    const dnnl_memory_desc_t* diff_src_desc,
    const dnnl_memory_desc_t* weights_desc,
    const dnnl_memory_desc_t* diff_dst_desc
    )

Initializes descriptor for inner product backward propagation.

Note

Memory descriptors can be initialized with dnnl_format_tag_any or with format_kind set to dnnl_format_kind_any.

Parameters:

ip_desc

Output descriptor for inner product primitive.

diff_src_desc

Diff source memory descriptor.

weights_desc

Weights memory descriptor.

diff_dst_desc

Diff destination memory descriptor.

Returns:

dnnl_success on success and a status describing the error otherwise.

dnnl_status_t DNNL_API dnnl_inner_product_backward_weights_desc_init(
    dnnl_inner_product_desc_t* ip_desc,
    const dnnl_memory_desc_t* src_desc,
    const dnnl_memory_desc_t* diff_weights_desc,
    const dnnl_memory_desc_t* diff_bias_desc,
    const dnnl_memory_desc_t* diff_dst_desc
    )

Initializes descriptor for inner product weights gradient primitive.

Note

Memory descriptors can be initialized with dnnl_format_tag_any or with format_kind set to dnnl_format_kind_any.

Parameters:

ip_desc

Output descriptor for inner product primitive.

src_desc

Source memory descriptor.

diff_weights_desc

Diff weights memory descriptor.

diff_bias_desc

Diff bias memory descriptor. Passing NULL, a zero memory descriptor, or a memory descriptor with format_kind set to dnnl_format_kind_undef disables the bias term.

diff_dst_desc

Diff destination memory descriptor.

Returns:

dnnl_success on success and a status describing the error otherwise.