DML_RNN_OPERATOR_DESC 结构 (directml.h)
对输入执行单层简单循环神经网络 (RNN) 函数。 此函数通常称为输入门。 此运算符在循环中多次执行此函数,由序列长度维度和 SequenceLengthsTensor 决定。
前进方向的公式
向后方向的公式
公式图例
语法
struct DML_RNN_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *WeightTensor;
const DML_TENSOR_DESC *RecurrenceTensor;
const DML_TENSOR_DESC *BiasTensor;
const DML_TENSOR_DESC *HiddenInitTensor;
const DML_TENSOR_DESC *SequenceLengthsTensor;
const DML_TENSOR_DESC *OutputSequenceTensor;
const DML_TENSOR_DESC *OutputSingleTensor;
UINT ActivationDescCount;
const DML_OPERATOR_DESC *ActivationDescs;
DML_RECURRENT_NETWORK_DIRECTION Direction;
};
成员
InputTensor
类型: const DML_TENSOR_DESC*
包含输入数据的张量 X. 打包 (,并可能将) 填充为一个大小为 的 { 1, seq_length, batch_size, input_size }
4-D 张量。 seq_length是映射到索引的维度 t。 张量不支持 DML_TENSOR_FLAG_OWNED_BY_DML 标志。
WeightTensor
类型: const DML_TENSOR_DESC*
包含权重数据的张量,如果双向) ,则W_i和W_Bi (的 W. 串联。 张量的大小为 { 1, num_directions, hidden_size, input_size }
。 张量不支持 DML_TENSOR_FLAG_OWNED_BY_DML 标志。
RecurrenceTensor
类型: const DML_TENSOR_DESC*
包含重复周期权重数据的可选张量,如果双向) ,则 R. 串联R_i和R_Bi (。 此张量的大小为 { 1, num_directions, hidden_size, hidden_size }
。 张量不支持 DML_TENSOR_FLAG_OWNED_BY_DML 标志。
BiasTensor
类型:_Maybenull_ const DML_TENSOR_DESC*
一个可选张量,其中包含输入门的偏差数据,B. 串联, { W_bi, R_bi }
如果 { W_Bbi, R_Bbi }
双向) ,则 (。 此张量的大小为 { 1, 1, num_directions, 2 * hidden_size }
。 如果未指定,则默认为 0。 张量不支持 DML_TENSOR_FLAG_OWNED_BY_DML 标志。
HiddenInitTensor
类型:_Maybenull_ const DML_TENSOR_DESC*
包含隐藏节点初始值设定项张量(H_[t-1]的第一个循环索引 t 的可选张量。 如果未指定,则默认为 0。 此张量的大小为 { 1, num_directions, batch_size, hidden_size }
。 张量不支持 DML_TENSOR_FLAG_OWNED_BY_DML 标志。
SequenceLengthsTensor
类型:_Maybenull_ const DML_TENSOR_DESC*
包含批处理中每个元素的独立seq_length的可选张量。 如果未指定,则批中的所有序列的长度seq_length。 此张量的大小为 { 1, 1, 1, batch_size }
。 张量不支持 DML_TENSOR_FLAG_OWNED_BY_DML 标志。
OutputSequenceTensor
类型:_Maybenull_ const DML_TENSOR_DESC*
一个可选的张量,用于编写隐藏节点的所有中间层输出值的串联,H_t。 此张量的大小为 { seq_length, num_directions, batch_size, hidden_size }
。 seq_length映射到循环索引 t。
OutputSingleTensor
类型:_Maybenull_ const DML_TENSOR_DESC*
一个可选的张量,用于写入隐藏节点的最终输出值,H_t。 此张量的大小为 { 1, num_directions, batch_size, hidden_size }
。
ActivationDescCount
类型: UINT
此字段确定 ActivationDescs 数组的大小。
ActivationDescs
类型:_Field_size_ (ActivationDescCount) const DML_OPERATOR_DESC*
包含激活运算符 f () 说明的 DML_OPERATOR_DESC 数组。 激活函数的数量等于方向数。 对于向前和向后方向,预期有 1 个激活函数。 对于双向,预期为 2。
Direction
类型: DML_RECURRENT_NETWORK_DIRECTION
运算符的方向:向前、向后或双向。
可用性
此运算符是在 中引入的 DML_FEATURE_LEVEL_1_0
。
张量约束
BiasTensor、HiddenInitTensor
InputTensor、OutputSequenceTensor
、OutputSingleTensor
、 RecurrenceTensor
和 WeightTensor
必须具有相同的数据类型。
Tensor 支持
张 | 种类 | 支持的维度计数 | 支持的数据类型 |
---|---|---|---|
InputTensor | 输入 | 4 | FLOAT32、FLOAT16 |
WeightTensor | 输入 | 4 | FLOAT32、FLOAT16 |
RecurrenceTensor | 输入 | 4 | FLOAT32、FLOAT16 |
BiasTensor | 可选输入 | 4 | FLOAT32、FLOAT16 |
HiddenInitTensor | 可选输入 | 4 | FLOAT32、FLOAT16 |
SequenceLengthsTensor | 可选输入 | 4 | UINT32 |
OutputSequenceTensor | 可选输出 | 4 | FLOAT32、FLOAT16 |
OutputSingleTensor | 可选输出 | 4 | FLOAT32、FLOAT16 |
要求
标头 | directml.h |