.. index:: pair: struct; dnnl::lstm_backward::desc .. _doxid-structdnnl_1_1lstm__backward_1_1desc: struct dnnl::lstm_backward::desc ================================ .. toctree:: :hidden: Overview ~~~~~~~~ Descriptor for an LSTM backward propagation primitive. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include struct desc { // fields :ref:`dnnl_rnn_desc_t` :target:`data`; // construction :ref:`desc`( :ref:`prop_kind` aprop_kind, :ref:`rnn_direction` direction, const :ref:`memory::desc`& src_layer_desc, const :ref:`memory::desc`& src_iter_desc, const :ref:`memory::desc`& src_iter_c_desc, const :ref:`memory::desc`& weights_layer_desc, const :ref:`memory::desc`& weights_iter_desc, const :ref:`memory::desc`& weights_peephole_desc, const :ref:`memory::desc`& weights_projection_desc, const :ref:`memory::desc`& bias_desc, const :ref:`memory::desc`& dst_layer_desc, const :ref:`memory::desc`& dst_iter_desc, const :ref:`memory::desc`& dst_iter_c_desc, const :ref:`memory::desc`& diff_src_layer_desc, const :ref:`memory::desc`& diff_src_iter_desc, const :ref:`memory::desc`& diff_src_iter_c_desc, const :ref:`memory::desc`& diff_weights_layer_desc, const :ref:`memory::desc`& diff_weights_iter_desc, const :ref:`memory::desc`& diff_weights_peephole_desc, const :ref:`memory::desc`& diff_weights_projection_desc, const :ref:`memory::desc`& diff_bias_desc, const :ref:`memory::desc`& diff_dst_layer_desc, const :ref:`memory::desc`& diff_dst_iter_desc, const :ref:`memory::desc`& diff_dst_iter_c_desc, :ref:`rnn_flags` flags = :ref:`rnn_flags::undef` ); :ref:`desc`( :ref:`prop_kind` aprop_kind, :ref:`rnn_direction` direction, const :ref:`memory::desc`& src_layer_desc, const :ref:`memory::desc`& src_iter_desc, const :ref:`memory::desc`& src_iter_c_desc, const :ref:`memory::desc`& weights_layer_desc, const :ref:`memory::desc`& weights_iter_desc, const :ref:`memory::desc`& weights_peephole_desc, const :ref:`memory::desc`& bias_desc, const :ref:`memory::desc`& dst_layer_desc, const :ref:`memory::desc`& dst_iter_desc, const :ref:`memory::desc`& dst_iter_c_desc, const :ref:`memory::desc`& diff_src_layer_desc, const :ref:`memory::desc`& diff_src_iter_desc, const :ref:`memory::desc`& diff_src_iter_c_desc, const :ref:`memory::desc`& diff_weights_layer_desc, const :ref:`memory::desc`& diff_weights_iter_desc, const :ref:`memory::desc`& diff_weights_peephole_desc, const :ref:`memory::desc`& diff_bias_desc, const :ref:`memory::desc`& diff_dst_layer_desc, const :ref:`memory::desc`& diff_dst_iter_desc, const :ref:`memory::desc`& diff_dst_iter_c_desc, :ref:`rnn_flags` flags = :ref:`rnn_flags::undef` ); :ref:`desc`( :ref:`prop_kind` aprop_kind, :ref:`rnn_direction` direction, const :ref:`memory::desc`& src_layer_desc, const :ref:`memory::desc`& src_iter_desc, const :ref:`memory::desc`& src_iter_c_desc, const :ref:`memory::desc`& weights_layer_desc, const :ref:`memory::desc`& weights_iter_desc, const :ref:`memory::desc`& bias_desc, const :ref:`memory::desc`& dst_layer_desc, const :ref:`memory::desc`& dst_iter_desc, const :ref:`memory::desc`& dst_iter_c_desc, const :ref:`memory::desc`& diff_src_layer_desc, const :ref:`memory::desc`& diff_src_iter_desc, const :ref:`memory::desc`& diff_src_iter_c_desc, const :ref:`memory::desc`& diff_weights_layer_desc, const :ref:`memory::desc`& diff_weights_iter_desc, const :ref:`memory::desc`& diff_bias_desc, const :ref:`memory::desc`& diff_dst_layer_desc, const :ref:`memory::desc`& diff_dst_iter_desc, const :ref:`memory::desc`& diff_dst_iter_c_desc, :ref:`rnn_flags` flags = :ref:`rnn_flags::undef` ); }; .. _details-structdnnl_1_1lstm__backward_1_1desc: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Descriptor for an LSTM backward propagation primitive. Construction ------------ .. index:: pair: function; desc .. _doxid-structdnnl_1_1lstm__backward_1_1desc_1a39e5609147948d5aedcbe6289420ee3c: .. ref-code-block:: cpp :class: doxyrest-title-code-block desc( :ref:`prop_kind` aprop_kind, :ref:`rnn_direction` direction, const :ref:`memory::desc`& src_layer_desc, const :ref:`memory::desc`& src_iter_desc, const :ref:`memory::desc`& src_iter_c_desc, const :ref:`memory::desc`& weights_layer_desc, const :ref:`memory::desc`& weights_iter_desc, const :ref:`memory::desc`& weights_peephole_desc, const :ref:`memory::desc`& weights_projection_desc, const :ref:`memory::desc`& bias_desc, const :ref:`memory::desc`& dst_layer_desc, const :ref:`memory::desc`& dst_iter_desc, const :ref:`memory::desc`& dst_iter_c_desc, const :ref:`memory::desc`& diff_src_layer_desc, const :ref:`memory::desc`& diff_src_iter_desc, const :ref:`memory::desc`& diff_src_iter_c_desc, const :ref:`memory::desc`& diff_weights_layer_desc, const :ref:`memory::desc`& diff_weights_iter_desc, const :ref:`memory::desc`& diff_weights_peephole_desc, const :ref:`memory::desc`& diff_weights_projection_desc, const :ref:`memory::desc`& diff_bias_desc, const :ref:`memory::desc`& diff_dst_layer_desc, const :ref:`memory::desc`& diff_dst_iter_desc, const :ref:`memory::desc`& diff_dst_iter_c_desc, :ref:`rnn_flags` flags = :ref:`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 :ref:`dnnl::memory::format_tag::any ` value of ``format_tag``. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - aprop_kind - Propagation kind. Must be :ref:`dnnl::prop_kind::backward `. * - direction - RNN direction. See :ref:`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. .. index:: pair: function; desc .. _doxid-structdnnl_1_1lstm__backward_1_1desc_1aefb5f997f5ea15eab34f248320f8ff5f: .. ref-code-block:: cpp :class: doxyrest-title-code-block desc( :ref:`prop_kind` aprop_kind, :ref:`rnn_direction` direction, const :ref:`memory::desc`& src_layer_desc, const :ref:`memory::desc`& src_iter_desc, const :ref:`memory::desc`& src_iter_c_desc, const :ref:`memory::desc`& weights_layer_desc, const :ref:`memory::desc`& weights_iter_desc, const :ref:`memory::desc`& weights_peephole_desc, const :ref:`memory::desc`& bias_desc, const :ref:`memory::desc`& dst_layer_desc, const :ref:`memory::desc`& dst_iter_desc, const :ref:`memory::desc`& dst_iter_c_desc, const :ref:`memory::desc`& diff_src_layer_desc, const :ref:`memory::desc`& diff_src_iter_desc, const :ref:`memory::desc`& diff_src_iter_c_desc, const :ref:`memory::desc`& diff_weights_layer_desc, const :ref:`memory::desc`& diff_weights_iter_desc, const :ref:`memory::desc`& diff_weights_peephole_desc, const :ref:`memory::desc`& diff_bias_desc, const :ref:`memory::desc`& diff_dst_layer_desc, const :ref:`memory::desc`& diff_dst_iter_desc, const :ref:`memory::desc`& diff_dst_iter_c_desc, :ref:`rnn_flags` flags = :ref:`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 :ref:`dnnl::memory::format_tag::any ` value of ``format_tag``. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - aprop_kind - Propagation kind. Must be :ref:`dnnl::prop_kind::backward `. * - direction - RNN direction. See :ref:`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. .. index:: pair: function; desc .. _doxid-structdnnl_1_1lstm__backward_1_1desc_1a8e8a5662ef97f5ef8586e6ff8363a99e: .. ref-code-block:: cpp :class: doxyrest-title-code-block desc( :ref:`prop_kind` aprop_kind, :ref:`rnn_direction` direction, const :ref:`memory::desc`& src_layer_desc, const :ref:`memory::desc`& src_iter_desc, const :ref:`memory::desc`& src_iter_c_desc, const :ref:`memory::desc`& weights_layer_desc, const :ref:`memory::desc`& weights_iter_desc, const :ref:`memory::desc`& bias_desc, const :ref:`memory::desc`& dst_layer_desc, const :ref:`memory::desc`& dst_iter_desc, const :ref:`memory::desc`& dst_iter_c_desc, const :ref:`memory::desc`& diff_src_layer_desc, const :ref:`memory::desc`& diff_src_iter_desc, const :ref:`memory::desc`& diff_src_iter_c_desc, const :ref:`memory::desc`& diff_weights_layer_desc, const :ref:`memory::desc`& diff_weights_iter_desc, const :ref:`memory::desc`& diff_bias_desc, const :ref:`memory::desc`& diff_dst_layer_desc, const :ref:`memory::desc`& diff_dst_iter_desc, const :ref:`memory::desc`& diff_dst_iter_c_desc, :ref:`rnn_flags` flags = :ref:`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 :ref:`dnnl::memory::format_tag::any ` value of ``format_tag``. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - aprop_kind - Propagation kind. Must be :ref:`dnnl::prop_kind::backward `. * - direction - RNN direction. See :ref:`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.