Visible to Intel only — GUID: GUID-BC0CD076-8821-4AE6-BFB6-6A8FF3006BDA
Visible to Intel only — GUID: GUID-BC0CD076-8821-4AE6-BFB6-6A8FF3006BDA
struct dnnl::vanilla_rnn_backward::primitive_desc
Overview
Primitive descriptor for an RNN backward propagation primitive. More…
#include <dnnl.hpp> struct primitive_desc: public dnnl::rnn_primitive_desc_base { // construction primitive_desc(); primitive_desc( const engine& aengine, 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, const vanilla_rnn_forward::primitive_desc& hint_fwd_pd, const primitive_attr& attr = default_attr(), bool allow_empty = false ); primitive_desc( const engine& aengine, 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, float alpha, const vanilla_rnn_forward::primitive_desc& hint_fwd_pd, const primitive_attr& attr = default_attr(), bool allow_empty = false ); primitive_desc(dnnl_primitive_desc_t pd); // methods 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 workspace_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() const; algorithm get_cell_kind() const; prop_kind get_prop_kind() const; algorithm get_activation_kind() const; rnn_direction get_direction() const; float get_alpha() const; float get_beta() const; };
Inherited Members
public: // methods handle<T, traits>& operator = (const handle<T, traits>&); handle<T, traits>& operator = (handle<T, traits>&&); void reset(T t, bool weak = false); T get(bool allow_empty = false) const; operator T () const; operator bool () const; bool operator == (const handle<T, traits>& other) const; bool operator != (const handle& other) const; engine get_engine() const; const char* impl_info_str() const; memory::dim query_s64(query what) const; memory::dims get_strides() const; memory::dims get_dilations() const; memory::dims get_padding_l() const; memory::dims get_padding_r() const; float get_epsilon() const; template <typename T = unsigned> T get_flags() const; dnnl::algorithm get_algorithm() const; float get_alpha() const; float get_beta() const; int get_axis() const; memory::dim get_local_size() const; float get_k() const; float get_p() const; std::vector<float> get_factors() const; dnnl::algorithm get_cell_kind() const; dnnl::rnn_direction get_direction() const; dnnl::algorithm get_activation_kind() const; memory::dims get_kernel() const; memory::dim get_group_size() const; dnnl::prop_kind get_prop_kind() const; memory::desc query_md(query what, int idx = 0) const; memory::desc src_desc(int idx) const; memory::desc dst_desc(int idx) const; memory::desc weights_desc(int idx) const; memory::desc diff_src_desc(int idx) const; memory::desc diff_dst_desc(int idx) const; memory::desc diff_weights_desc(int idx) const; memory::desc src_desc() const; memory::desc dst_desc() const; memory::desc weights_desc() const; memory::desc diff_src_desc() const; memory::desc diff_dst_desc() const; memory::desc diff_weights_desc() const; memory::desc workspace_desc() const; memory::desc scratchpad_desc() const; engine scratchpad_engine() const; primitive_attr get_primitive_attr() const; dnnl::primitive::kind get_kind() const; std::vector<uint8_t> get_cache_blob_id() const; bool next_impl(); primitive_desc_base(); primitive_desc_base(dnnl_primitive_desc_t pd, dnnl::primitive::kind prim_kind); primitive_desc_base( dnnl_primitive_desc_t pd, dnnl::primitive::kind prim_kind, dnnl::prop_kind aprop_kind ); primitive_desc_base( dnnl_primitive_desc_t pd, dnnl::primitive::kind prim_kind, dnnl::prop_kind prop_kind1, dnnl::prop_kind prop_kind2 ); memory::desc src_layer_desc() const; memory::desc augru_attention_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_augru_attention_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() const; primitive_desc();
Detailed Documentation
Primitive descriptor for an RNN backward propagation primitive.
Construction
primitive_desc()
Default constructor. Produces an empty object.
primitive_desc( const engine& aengine, 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, const vanilla_rnn_forward::primitive_desc& hint_fwd_pd, const primitive_attr& attr = default_attr(), bool allow_empty = false )
Constructs a primitive 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.
Parameters:
aengine |
Engine to use. |
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. |
hint_fwd_pd |
Primitive descriptor for a vanilla RNN forward propagation primitive. It is used as a hint for deciding which memory format to use. |
attr |
Primitive attributes to use. Attributes are optional and default to empty attributes. |
allow_empty |
A flag signifying whether construction is allowed to fail without throwing an exception. In this case an empty object will be produced. This flag is optional and defaults to false. |
primitive_desc( const engine& aengine, 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, float alpha, const vanilla_rnn_forward::primitive_desc& hint_fwd_pd, const primitive_attr& attr = default_attr(), bool allow_empty = false )
Constructs a primitive descriptor for a vanilla RNN backward propagation primitive with an alpha parameter.
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.
Parameters:
aengine |
Engine to use. |
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. |
alpha |
Negative slope if activation is dnnl::algorithm::eltwise_relu. |
hint_fwd_pd |
Primitive descriptor for a vanilla RNN forward propagation primitive. It is used as a hint for deciding which memory format to use. |
attr |
Primitive attributes to use. Attributes are optional and default to empty attributes. |
allow_empty |
A flag signifying whether construction is allowed to fail without throwing an exception. In this case an empty object will be produced. This flag is optional and defaults to false. |
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a vanilla RNN backward propagation primitive from a C API primitive descriptor that must have a matching kind.
Parameters:
pd |
C API primitive descriptor for a vanilla RNN backward propagation primitive. |
Methods
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Returns:
Source layer memory descriptor.
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Returns:
Source iteration memory descriptor.
A zero memory descriptor if the primitive does not have a source iteration parameter.
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Returns:
Weights layer memory descriptor.
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Returns:
Weights iteration memory descriptor.
memory::desc bias_desc() const
Returns bias memory descriptor.
Returns:
Bias memory descriptor.
A zero memory descriptor if the primitive does not have a bias parameter.
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Returns:
Destination layer memory descriptor.
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Returns:
Destination iteration memory descriptor.
A zero memory descriptor if the primitive does not have a destination iteration parameter.
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Returns:
Workspace memory descriptor.
A zero memory descriptor if the primitive does not require workspace parameter.
memory::desc diff_src_layer_desc() const
Returns diff source layer memory descriptor.
Returns:
Diff source layer memory descriptor.
memory::desc diff_src_iter_desc() const
Returns diff source iteration memory descriptor.
Returns:
Diff source iteration memory descriptor.
A zero memory descriptor if the primitive does not have a diff source iteration parameter.
memory::desc diff_weights_layer_desc() const
Returns diff weights layer memory descriptor.
Returns:
Diff weights layer memory descriptor.
memory::desc diff_weights_iter_desc() const
Returns diff weights iteration memory descriptor.
Returns:
Diff weights iteration memory descriptor.
memory::desc diff_bias_desc() const
Returns diff bias memory descriptor.
Returns:
Diff bias memory descriptor.
A zero memory descriptor if the primitive does not have a diff bias parameter.
memory::desc diff_dst_layer_desc() const
Returns diff destination layer memory descriptor.
Returns:
Diff destination layer memory descriptor.
memory::desc diff_dst_iter_desc() const
Returns diff destination iteration memory descriptor.
Returns:
Diff destination iteration memory descriptor.
A zero memory descriptor if the primitive does not have a diff destination iteration parameter.
algorithm get_cell_kind() const
Returns an RNN cell kind parameter.
Returns:
An RNN cell kind parameter.
dnnl::algorithm::undef if the primitive does not have an RNN cell kind parameter.
prop_kind get_prop_kind() const
Returns a propagation kind.
Returns:
A propagation kind.
dnnl::prop_kind::undef if the primitive does not have a propagation parameter.
algorithm get_activation_kind() const
Returns an RNN activation kind parameter.
Returns:
An RNN activation kind parameter.
dnnl::algorithm::undef if the primitive does not have an RNN activation kind parameter.
rnn_direction get_direction() const
Returns an RNN direction parameter.
Returns:
An RNN direction parameter.
dnnl::rnn_direction::undef if the primitive does not have an RNN direction parameter.
float get_alpha() const
Returns an alpha.
Returns:
An alpha.
Zero if the primitive does not have an alpha parameter.
float get_beta() const
Returns a beta.
Returns:
A beta.
Zero if the primitive does not have a beta parameter.