Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Provede násobení matice na celočíselná vstupní data tensoru a vytvoří výstup s plovoucí desetinnou čárkou.
Tento operátor vyžaduje násobení vstupních tenzorů matice 4D, které jsou formátovány jako { BatchCount, ChannelCount, Height, Width }. Operátor násobení matice provede BatchCount * ChannelCount počet nezávislých násobení matice.
Pokud má například ATensorvelikost{ BatchCount, ChannelCount, M, K }a BTensor má velikosti a OutputTensor má { BatchCount, ChannelCount, K, N }{ BatchCount, ChannelCount, M, N }, operátor násobení matice provede batchCount * ChannelCount nezávislé násobení matice násobení dimenzí {M,K} x {K,N} = {M,N}.
Důležité
Toto rozhraní API je k dispozici jako součást samostatného distribuovatelného balíčku DirectML (viz Microsoft.AI.DirectML verze 1.13 a novější). Podívejte se také na historii verzí DirectML.
Syntaxe
struct DML_MATRIX_MULTIPLY_INTEGER_TO_FLOAT_OPERATOR_DESC
{
const DML_TENSOR_DESC* ATensor;
const DML_TENSOR_DESC* AScaleTensor;
_Maybenull_ const DML_TENSOR_DESC* AZeroPointTensor;
const DML_TENSOR_DESC* BTensor;
const DML_TENSOR_DESC* BScaleTensor;
_Maybenull_ const DML_TENSOR_DESC* BZeroPointTensor;
_Maybenull_ const DML_TENSOR_DESC* BiasTensor;
const DML_TENSOR_DESC* OutputTensor;
};
Členové
ATensor
Typ: const DML_TENSOR_DESC*
Tensor obsahující data A . Rozměry tohoto tensoru by měly být { BatchCount, ChannelCount, M, K }.
AScaleTensor
Typ: const DML_TENSOR_DESC*
Tensor obsahující data škálování ATensoru Očekávané dimenze AScaleTensoru jsou { 1, 1, 1, 1 } v případě, že se vyžaduje kvantování podle tensoru, nebo { 1, 1, M, 1 } pokud je vyžadováno kvantování podle řádku. Tyto hodnoty škálování se používají k dequantizaci hodnot ATensoru .
AZeroPointTensor
Typ: _Maybenull_ const DML_TENSOR_DESC*
Volitelný tensor obsahující data nulového bodu ATensoru . Očekávané dimenze AZeroPointTensor jsou { 1, 1, 1, 1 } v případě, že se vyžaduje kvantování podle tensoru, nebo { 1, 1, M, 1 } pokud je vyžadováno kvantování podle řádku. Tyto nulové hodnoty bodu se používají k dequantizaci hodnot ATensor .
BTensor
Typ: const DML_TENSOR_DESC*
Tensor obsahující data B . Rozměry tohoto tensoru by měly být { BatchCount, ChannelCount, K, N }.
BScaleTensor
Typ: const DML_TENSOR_DESC*
Tensor obsahující data měřítka BTensoru . Očekávané dimenze BScaleTensoru jsou { 1, 1, 1, 1 } v případě, že se vyžaduje kvantování podle tensoru, nebo { 1, 1, 1, N } pokud se vyžaduje kvantování podle sloupce. Tyto hodnoty škálování se používají k dequantizaci hodnot BTensor .
BZeroPointTensor
Typ: _Maybenull_ const DML_TENSOR_DESC*
Volitelný tensor obsahující data nulového bodu BTensoru . Očekávané dimenze BZeroPointTensor jsou { 1, 1, 1, 1 } v případě, že se vyžaduje kvantování podle tensoru, nebo { 1, 1, 1, N } pokud je požadováno kvantování podle sloupce. Tyto nulové hodnoty bodu se používají k dequantizaci hodnot BTensor .
OutputScaleTensor
Typ: const DML_TENSOR_DESC*
Tensor obsahující data škálování outputtensoru Očekávané dimenze OutputScaleTensoru jsou { 1, 1, 1, 1 } v případě, že se vyžaduje kvantování podle tensoru nebo { 1, 1, M, 1 } pokud je požadováno kvantování podle řádku. Tato hodnota škálování se používá k dequantizaci hodnot OutputTensor .
OutputZeroPointTensor
Typ: _Maybenull_ const DML_TENSOR_DESC*
Volitelný tensor obsahující data nulového bodu OutputTensoru . Očekávané dimenze outputZeroPointTensor jsou { 1, 1, 1, 1 } v případě, že se vyžaduje kvantování podle tensoru, nebo { 1, 1, M, 1 } pokud je vyžadováno kvantování podle řádku. Tato nulová hodnota bodu se používá k dequantizaci hodnot OutputTensor .
BiasTensor
Typ: _Maybenull_ const DML_TENSOR_DESC*
Volitelný tensor obsahující data předsudků. V případě potřeby by velikost tohoto tensoru měla odpovídat velikosti { BatchCount, ChannelCount, M, N }výstupu .
OutputTensor
Typ: const DML_TENSOR_DESC*
Tenzor, se kterým chcete napsat výsledky. Rozměry tohoto tensoru jsou { BatchCount, ChannelCount, M, N }.
Dostupnost
Tento operátor byl zaveden v DML_FEATURE_LEVEL_6_2.
Omezení Tensoru
- AScaleTensor, AZeroPointTensor, BScaleTensor a BZeroPointTensor musí mít stejné dimenze.
- ATensor, BiasTensor, BTensor a OutputTensor musí mít stejný Počet dimenzí.
- Funkce BiasTensor a OutputTensor musí mít stejné velikosti.
- ATensor, AZeroPointTensor, BTensor a BZeroPointTensor musí mít stejný datový typ.
- AScaleTensor, BiasTensor, BScaleTensor a OutputTensor musí mít stejný datový typ.
Podpora tensoru
| Tenzor | Laskavý | Dimenze | Podporované počty dimenzí | Podporované datové typy |
|---|---|---|---|---|
| ATensor | Vstup | { [BatchCount], [ChannelCount], M, K } | 2 až 4 | INT32, INT16, INT8, UINT32, UINT16, UINT8 |
| AScaleTensor | Vstup | { AScaleDimensions[] } | 1 až 4 | FLOAT32, FLOAT16 |
| AZeroPointTensor | Volitelný vstup | { [1], [1], AZeroPointCount, [1] } | 1 až 4 | INT32, INT16, INT8, UINT32, UINT16, UINT8 |
| BTensor | Vstup | { [BatchCount], [ChannelCount], K, N } | 2 až 4 | INT32, INT16, INT8, UINT32, UINT16, UINT8 |
| BScaleTensor | Vstup | { BScaleDimensions[] } | 1 až 4 | FLOAT32, FLOAT16 |
| BZeroPointTensor | Volitelný vstup | { [1], [1], [1], BZeroPointCount } | 1 až 4 | INT32, INT16, INT8, UINT32, UINT16, UINT8 |
| OdchylkaTensor | Volitelný vstup | { [BatchCount], [ChannelCount], M, N } | 2 až 4 | FLOAT32, FLOAT16 |
| Výstupnítensor | Výstup | { [BatchCount], [ChannelCount], M, N } | 2 až 4 | FLOAT32, FLOAT16 |
Požadavky
| Záhlaví | directml.h |