Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Выполняет одноуровневую функцию простой рекуррентной нейронной сети (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 }
. seq_length — это измерение, сопоставленное с индексом, t. Тензор не поддерживает флаг DML_TENSOR_FLAG_OWNED_BY_DML .
WeightTensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий весовые данные W. Concatenation W_i и W_Bi (если они двунаправленные). Тензор имеет размеры { 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. Concatenation { 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*
Массив DML_OPERATOR_DESC , содержащий описания операторов активации f(). Число функций активации равно количеству направлений. Для направления вперед и назад ожидается 1 функция активации. Для двунаправленных ожидается значение 2.
Direction
Тип: DML_RECURRENT_NETWORK_DIRECTION
Направление оператора: вперед, назад или двунаправленное.
Доступность
Этот оператор появился в DML_FEATURE_LEVEL_1_0
.
Ограничения тензоров
BiasTensor, HiddenInitTensor
, InputTensor, OutputSequenceTensor
, OutputSingleTensor
, RecurrenceTensor
, и должны иметь один и WeightTensor
тот же тип DataType.
Поддержка тензоров
Тензор | Kind | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
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 |