struct dnnl::vanilla_rnn_backward::desc

Overview

Descriptor for a vanilla RNN backward propagation primitive. More…

#include <dnnl.hpp>

struct desc
{
    // fields

    dnnl_rnn_desc_t data;

    // construction

    desc(
        prop_kind aprop_kind,
        algorithm activation,
        rnn_direction direction,
        const memory::desc& src_layer_desc,
        const memory::desc& src_iter_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& diff_src_layer_desc,
        const memory::desc& diff_src_iter_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,
        rnn_flags flags = rnn_flags::undef,
        float alpha = 0.0f,
        float beta = 0.0f
        );
};

Detailed Documentation

Descriptor for a vanilla RNN backward propagation primitive.

Construction

desc(
    prop_kind aprop_kind,
    algorithm activation,
    rnn_direction direction,
    const memory::desc& src_layer_desc,
    const memory::desc& src_iter_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& diff_src_layer_desc,
    const memory::desc& diff_src_iter_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,
    rnn_flags flags = rnn_flags::undef,
    float alpha = 0.0f,
    float beta = 0.0f
    )

Constructs a descriptor for a vanilla RNN backward propagation primitive.

The following arguments may point to a zero memory descriptor:

  • src_iter_desc together with diff_src_iter_desc,

  • bias_desc together with diff_bias_desc,

  • dst_iter_desc together with diff_dst_iter_desc.

This would then indicate that the RNN backward propagation primitive should not use the respective data and should use zero values instead.

Note

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

Parameters:

aprop_kind

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

activation

Activation kind. Possible values are dnnl::algorithm::eltwise_relu, dnnl::algorithm::eltwise_tanh, or dnnl::algorithm::eltwise_logistic.

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.

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.

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_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.

flags

Unused.

alpha

Negative slope if activation is dnnl::algorithm::eltwise_relu.

beta

Unused.