struct dnnl::lstm_backward::desc

Overview

Descriptor for an LSTM backward propagation primitive. More…

#include <dnnl.hpp>

struct desc
{
    // fields

    dnnl_rnn_desc_t data;

    // methods

    desc(
        prop_kind aprop_kind,
        rnn_direction direction,
        const memory::desc& src_layer_desc,
        const memory::desc& src_iter_desc,
        const memory::desc& src_iter_c_desc,
        const memory::desc& weights_layer_desc,
        const memory::desc& weights_iter_desc,
        const memory::desc& weights_peephole_desc,
        const memory::desc& weights_projection_desc,
        const memory::desc& bias_desc,
        const memory::desc& dst_layer_desc,
        const memory::desc& dst_iter_desc,
        const memory::desc& dst_iter_c_desc,
        const memory::desc& diff_src_layer_desc,
        const memory::desc& diff_src_iter_desc,
        const memory::desc& diff_src_iter_c_desc,
        const memory::desc& diff_weights_layer_desc,
        const memory::desc& diff_weights_iter_desc,
        const memory::desc& diff_weights_peephole_desc,
        const memory::desc& diff_weights_projection_desc,
        const memory::desc& diff_bias_desc,
        const memory::desc& diff_dst_layer_desc,
        const memory::desc& diff_dst_iter_desc,
        const memory::desc& diff_dst_iter_c_desc,
        rnn_flags flags = rnn_flags::undef
        );

    desc(
        prop_kind aprop_kind,
        rnn_direction direction,
        const memory::desc& src_layer_desc,
        const memory::desc& src_iter_desc,
        const memory::desc& src_iter_c_desc,
        const memory::desc& weights_layer_desc,
        const memory::desc& weights_iter_desc,
        const memory::desc& weights_peephole_desc,
        const memory::desc& bias_desc,
        const memory::desc& dst_layer_desc,
        const memory::desc& dst_iter_desc,
        const memory::desc& dst_iter_c_desc,
        const memory::desc& diff_src_layer_desc,
        const memory::desc& diff_src_iter_desc,
        const memory::desc& diff_src_iter_c_desc,
        const memory::desc& diff_weights_layer_desc,
        const memory::desc& diff_weights_iter_desc,
        const memory::desc& diff_weights_peephole_desc,
        const memory::desc& diff_bias_desc,
        const memory::desc& diff_dst_layer_desc,
        const memory::desc& diff_dst_iter_desc,
        const memory::desc& diff_dst_iter_c_desc,
        rnn_flags flags = rnn_flags::undef
        );

    desc(
        prop_kind aprop_kind,
        rnn_direction direction,
        const memory::desc& src_layer_desc,
        const memory::desc& src_iter_desc,
        const memory::desc& src_iter_c_desc,
        const memory::desc& weights_layer_desc,
        const memory::desc& weights_iter_desc,
        const memory::desc& bias_desc,
        const memory::desc& dst_layer_desc,
        const memory::desc& dst_iter_desc,
        const memory::desc& dst_iter_c_desc,
        const memory::desc& diff_src_layer_desc,
        const memory::desc& diff_src_iter_desc,
        const memory::desc& diff_src_iter_c_desc,
        const memory::desc& diff_weights_layer_desc,
        const memory::desc& diff_weights_iter_desc,
        const memory::desc& diff_bias_desc,
        const memory::desc& diff_dst_layer_desc,
        const memory::desc& diff_dst_iter_desc,
        const memory::desc& diff_dst_iter_c_desc,
        rnn_flags flags = rnn_flags::undef
        );
};

Detailed Documentation

Descriptor for an LSTM backward propagation primitive.

Methods

desc(
    prop_kind aprop_kind,
    rnn_direction direction,
    const memory::desc& src_layer_desc,
    const memory::desc& src_iter_desc,
    const memory::desc& src_iter_c_desc,
    const memory::desc& weights_layer_desc,
    const memory::desc& weights_iter_desc,
    const memory::desc& weights_peephole_desc,
    const memory::desc& weights_projection_desc,
    const memory::desc& bias_desc,
    const memory::desc& dst_layer_desc,
    const memory::desc& dst_iter_desc,
    const memory::desc& dst_iter_c_desc,
    const memory::desc& diff_src_layer_desc,
    const memory::desc& diff_src_iter_desc,
    const memory::desc& diff_src_iter_c_desc,
    const memory::desc& diff_weights_layer_desc,
    const memory::desc& diff_weights_iter_desc,
    const memory::desc& diff_weights_peephole_desc,
    const memory::desc& diff_weights_projection_desc,
    const memory::desc& diff_bias_desc,
    const memory::desc& diff_dst_layer_desc,
    const memory::desc& diff_dst_iter_desc,
    const memory::desc& diff_dst_iter_c_desc,
    rnn_flags flags = rnn_flags::undef
    )

Constructs an LSTM (with or without peephole and with or without projection) descriptor for backward propagation using prop_kind, direction, and memory descriptors.

The following arguments may point to a zero memory descriptor:

  • src_iter_desc together with src_iter_c_desc, diff_src_iter_desc, and diff_src_iter_c_desc,

  • weights_peephole_desc together with diff_weights_peephole_desc

  • bias_desc together with diff_bias_desc,

  • dst_iter_desc together with dst_iter_c_desc, diff_dst_iter_desc, and diff_dst_iter_c_desc.

This would then indicate that the LSTM backward propagation primitive should not use them and should default to zero values instead.

The weights_projection_desc together with diff_weights_projection_desc may point to a zero memory descriptor. This would then indicate that the LSTM doesn’t have recurrent projection layer.

Note

All memory descriptors can be initialized with dnnl::memory::format_tag::any value of format_tag.

Parameters:

aprop_kind

Propagation kind. Must be dnnl::prop_kind::backward.

direction

RNN direction. See dnnl::rnn_direction for more info.

src_layer_desc

Memory descriptor for the input vector.

src_iter_desc

Memory descriptor for the input recurrent hidden state vector.

src_iter_c_desc

Memory descriptor for the input recurrent cell state vector.

weights_layer_desc

Memory descriptor for the weights applied to the layer input.

weights_iter_desc

Memory descriptor for the weights applied to the recurrent input.

weights_peephole_desc

Memory descriptor for the weights applied to the cell states (according to the Peephole LSTM formula).

weights_projection_desc

Memory descriptor for the weights applied to the hidden states to get the recurrent projection (according to the Projection LSTM formula).

bias_desc

Bias memory descriptor.

dst_layer_desc

Memory descriptor for the output vector.

dst_iter_desc

Memory descriptor for the output recurrent hidden state vector.

dst_iter_c_desc

Memory descriptor for the output recurrent cell state vector.

diff_src_layer_desc

Memory descriptor for the diff of input vector.

diff_src_iter_desc

Memory descriptor for the diff of input recurrent hidden state vector.

diff_src_iter_c_desc

Memory descriptor for the diff of input recurrent cell state vector.

diff_weights_layer_desc

Memory descriptor for the diff of weights applied to the layer input.

diff_weights_iter_desc

Memory descriptor for the diff of weights applied to the recurrent input.

diff_weights_peephole_desc

Memory descriptor for the diff of weights applied to the cell states (according to the Peephole LSTM formula).

diff_weights_projection_desc

Memory descriptor for the diff of weights applied to the hidden states to get the recurrent projection (according to the Projection LSTM formula).

diff_bias_desc

Diff bias memory descriptor.

diff_dst_layer_desc

Memory descriptor for the diff of output vector.

diff_dst_iter_desc

Memory descriptor for the diff of output recurrent hidden state vector.

diff_dst_iter_c_desc

Memory descriptor for the diff of output recurrent cell state vector.

flags

Unused.

desc(
    prop_kind aprop_kind,
    rnn_direction direction,
    const memory::desc& src_layer_desc,
    const memory::desc& src_iter_desc,
    const memory::desc& src_iter_c_desc,
    const memory::desc& weights_layer_desc,
    const memory::desc& weights_iter_desc,
    const memory::desc& weights_peephole_desc,
    const memory::desc& bias_desc,
    const memory::desc& dst_layer_desc,
    const memory::desc& dst_iter_desc,
    const memory::desc& dst_iter_c_desc,
    const memory::desc& diff_src_layer_desc,
    const memory::desc& diff_src_iter_desc,
    const memory::desc& diff_src_iter_c_desc,
    const memory::desc& diff_weights_layer_desc,
    const memory::desc& diff_weights_iter_desc,
    const memory::desc& diff_weights_peephole_desc,
    const memory::desc& diff_bias_desc,
    const memory::desc& diff_dst_layer_desc,
    const memory::desc& diff_dst_iter_desc,
    const memory::desc& diff_dst_iter_c_desc,
    rnn_flags flags = rnn_flags::undef
    )

Constructs an LSTM (with or without peephole) descriptor for backward propagation using prop_kind, direction, and memory descriptors.

The following arguments may point to a zero memory descriptor:

  • src_iter_desc together with src_iter_c_desc, diff_src_iter_desc, and diff_src_iter_c_desc,

  • weights_peephole_desc together with diff_weights_peephole_desc

  • bias_desc together with diff_bias_desc,

  • dst_iter_desc together with dst_iter_c_desc, diff_dst_iter_desc, and diff_dst_iter_c_desc.

This would then indicate that the LSTM backward propagation primitive should not use them and should default to zero values instead.

Note

All memory descriptors may be initialized with dnnl::memory::format_tag::any value of format_tag.

Parameters:

aprop_kind

Propagation kind. Must be dnnl::prop_kind::backward.

direction

RNN direction. See dnnl::rnn_direction for more info.

src_layer_desc

Memory descriptor for the input vector.

src_iter_desc

Memory descriptor for the input recurrent hidden state vector.

src_iter_c_desc

Memory descriptor for the input recurrent cell state vector.

weights_layer_desc

Memory descriptor for the weights applied to the layer input.

weights_iter_desc

Memory descriptor for the weights applied to the recurrent input.

weights_peephole_desc

Memory descriptor for the weights applied to the cell states (according to the Peephole LSTM formula).

bias_desc

Bias memory descriptor.

dst_layer_desc

Memory descriptor for the output vector.

dst_iter_desc

Memory descriptor for the output recurrent hidden state vector.

dst_iter_c_desc

Memory descriptor for the output recurrent cell state vector.

diff_src_layer_desc

Memory descriptor for the diff of input vector.

diff_src_iter_desc

Memory descriptor for the diff of input recurrent hidden state vector.

diff_src_iter_c_desc

Memory descriptor for the diff of input recurrent cell state vector.

diff_weights_layer_desc

Memory descriptor for the diff of weights applied to the layer input.

diff_weights_iter_desc

Memory descriptor for the diff of weights applied to the recurrent input.

diff_weights_peephole_desc

Memory descriptor for the diff of weights applied to the cell states (according to the Peephole LSTM formula).

diff_bias_desc

Diff bias memory descriptor.

diff_dst_layer_desc

Memory descriptor for the diff of output vector.

diff_dst_iter_desc

Memory descriptor for the diff of output recurrent hidden state vector.

diff_dst_iter_c_desc

Memory descriptor for the diff of output recurrent cell state vector.

flags

Unused.

desc(
    prop_kind aprop_kind,
    rnn_direction direction,
    const memory::desc& src_layer_desc,
    const memory::desc& src_iter_desc,
    const memory::desc& src_iter_c_desc,
    const memory::desc& weights_layer_desc,
    const memory::desc& weights_iter_desc,
    const memory::desc& bias_desc,
    const memory::desc& dst_layer_desc,
    const memory::desc& dst_iter_desc,
    const memory::desc& dst_iter_c_desc,
    const memory::desc& diff_src_layer_desc,
    const memory::desc& diff_src_iter_desc,
    const memory::desc& diff_src_iter_c_desc,
    const memory::desc& diff_weights_layer_desc,
    const memory::desc& diff_weights_iter_desc,
    const memory::desc& diff_bias_desc,
    const memory::desc& diff_dst_layer_desc,
    const memory::desc& diff_dst_iter_desc,
    const memory::desc& diff_dst_iter_c_desc,
    rnn_flags flags = rnn_flags::undef
    )

Constructs an LSTM descriptor for backward propagation using prop_kind, direction, and memory descriptors.

The following arguments may point to a zero memory descriptor:

  • src_iter_desc together with src_iter_c_desc, diff_src_iter_desc, and diff_src_iter_c_desc,

  • bias_desc together with diff_bias_desc,

  • dst_iter_desc together with dst_iter_c_desc, diff_dst_iter_desc, and diff_dst_iter_c_desc.

This would then indicate that the LSTM backward propagation primitive should not use them and should default to zero values instead.

Note

All memory descriptors may be initialized with dnnl::memory::format_tag::any value of format_tag.

Parameters:

aprop_kind

Propagation kind. Must be dnnl::prop_kind::backward.

direction

RNN direction. See dnnl::rnn_direction for more info.

src_layer_desc

Memory descriptor for the input vector.

src_iter_desc

Memory descriptor for the input recurrent hidden state vector.

src_iter_c_desc

Memory descriptor for the input recurrent cell state vector.

weights_layer_desc

Memory descriptor for the weights applied to the layer input.

weights_iter_desc

Memory descriptor for the weights applied to the recurrent input.

bias_desc

Bias memory descriptor.

dst_layer_desc

Memory descriptor for the output vector.

dst_iter_desc

Memory descriptor for the output recurrent hidden state vector.

dst_iter_c_desc

Memory descriptor for the output recurrent cell state vector.

diff_src_layer_desc

Memory descriptor for the diff of input vector.

diff_src_iter_desc

Memory descriptor for the diff of input recurrent hidden state vector.

diff_src_iter_c_desc

Memory descriptor for the diff of input recurrent cell state vector.

diff_weights_layer_desc

Memory descriptor for the diff of weights applied to the layer input.

diff_weights_iter_desc

Memory descriptor for the diff of weights applied to the recurrent input.

diff_bias_desc

Diff bias memory descriptor.

diff_dst_layer_desc

Memory descriptor for the diff of output vector.

diff_dst_iter_desc

Memory descriptor for the diff of output recurrent hidden state vector.

diff_dst_iter_c_desc

Memory descriptor for the diff of output recurrent cell state vector.

flags

Unused.