Effectuez une convolution quantifiée du Tensor quantifié « lhs » et du Tenseur quantifié « rhs ». pour créer une « sortie » quantifiée.
Étant donné « lhs » quantifié et « rhs » quantifiés, effectue un point quantifié sur « lhs » et « rhs » pour créer une « sortie » quantifiée.
`lhs` et `rhs` doivent être des tenseurs du même rang et répondre aux conditions de forme suivantes. - `lhs_feature` % `feature_group_count` == 0 - `lhs_feature` % `rhs_input_feature` == 0 - `lhs_feature` / `feature_group_count` == `rhs_input_feature` - `rhs_output_feature` % `feature_group_count` == 0 - `lhs_batch` % `batch_group_count` == 0 - `rhs_output_feature` % `batch_group_count` == 0
`lhs` et `rhs` doivent être quantifiés Tensor, où la valeur des données est quantifiée à l'aide de la formule :
quantized_data = clip(original_data / scale + zero_point, quantization_min_val, quantization_max_val)
La « sortie » est également quantifiée, en utilisant la même formule. Si `rhs` est quantifié par tenseur, `output` doit également être quantifié par tenseur. Classes imbriquées
classe | UniformQuantizedConvolution.Options | Attributs facultatifs pour UniformQuantizedConvolution |
Méthodes publiques
Sortie <U> | comme Sortie () Renvoie le handle symbolique d'un tenseur. |
statique UniformQuantizedConvolution.Options | batchGroupCount (Long batchGroupCount) |
statique <U, T> UniformQuantizedConvolution <U> | créer ( Scope scope, Opérande <T> lhs, Opérande <T> rhs, Opérande <Float> lhsScales, Opérande <Integer> lhsZeroPoints, Opérande <Float> rhsScales, Opérande <Integer> rhsZeroPoints, Opérande <Float> outputScales, Opérande <Integer > outputZeroPoints, Class<U> Tout, String padding, Long lhsQuantizationMinVal, Long lhsQuantizationMaxVal, Long rhsQuantizationMinVal, Long rhsQuantizationMaxVal, Long outputQuantizationMinVal, Long outputQuantizationMaxVal, Options... options) Méthode d'usine pour créer une classe encapsulant une nouvelle opération UniformQuantizedConvolution. |
statique UniformQuantizedConvolution.Options | dimensionNumbers (chaîne dimensionNumbers) |
statique UniformQuantizedConvolution.Options | explicitPadding (List<Long> explicitPadding) |
statique UniformQuantizedConvolution.Options | featureGroupCount (Long featureGroupCount) |
statique UniformQuantizedConvolution.Options | lhsDilation (Liste<Long> lhsDilation) |
statique UniformQuantizedConvolution.Options | lhsQuantizationAxis (Long lhsQuantizationAxis) |
Sortie <U> | sortir () Le tenseur quantifié de sortie de `Tout`, même rang que `lhs` et `rhs`. |
statique UniformQuantizedConvolution.Options | outputQuantizationAxis (sortieQuantizationAxis longue) |
statique UniformQuantizedConvolution.Options | rhsDilation (Liste<Long> rhsDilation) |
statique UniformQuantizedConvolution.Options | rhsQuantizationAxis (rhsQuantizationAxis long) |
statique UniformQuantizedConvolution.Options | windowStrides (Liste<Long> windowStrides) |
Méthodes héritées
Méthodes publiques
sortie publique <U> asOutput ()
Renvoie le handle symbolique d'un tenseur.
Les entrées des opérations TensorFlow sont les sorties d'une autre opération TensorFlow. Cette méthode est utilisée pour obtenir un handle symbolique qui représente le calcul de l’entrée.
public statique UniformQuantizedConvolution.Options batchGroupCount (Long batchGroupCount)
Paramètres
batchGroupCount | Le nombre de groupes de lots. Utilisé pour les filtres groupés. Doit être un diviseur de `output_feature`. |
---|
public static UniformQuantizedConvolution <U> créer ( Scope scope, Operand <T> lhs, Operand <T> rhs, Operand <Float> lhsScales, Operand <Integer> lhsZeroPoints, Operand <Float> rhsScales, Operand <Integer> rhsZeroPoints, Operand <Float > outputScales, Opérande <Integer> outputZeroPoints, Class<U> Tout, Remplissage de chaîne, Long lhsQuantizationMinVal, Long lhsQuantizationMaxVal, Long rhsQuantizationMinVal, Long rhsQuantizationMaxVal, Long outputQuantizationMinVal, Long outputQuantizationMaxVal, Options... options)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération UniformQuantizedConvolution.
Paramètres
portée | portée actuelle |
---|---|
lhs | Doit être un tenseur quantifié, de rang >= 3. |
rhs | Doit être un tenseur quantifié, du même rang que « lhs ». |
lhsÉchelles | La ou les valeurs flottantes utilisées comme facteurs d'échelle lors de la quantification des données d'origine représentées par « lhs ». Doit être un « Tensor » scalaire (« lhs » ne prend en charge que la quantification par tenseur). |
lhsZéroPoints | La ou les valeurs int32 utilisées comme points zéro lors de la quantification des données originales représentées par « lhs ». Même condition de forme que `lhs_scales`. |
échelles rhs | La ou les valeurs flottantes utilisées comme facteurs d'échelle lors de la quantification des données d'origine représentées par « rhs ». Doit être un « Tensor » scalaire pour la quantification par tenseur, ou un « Tensor » 1D de taille « rhs.dim_size(kernel_output_feature_dimension) », pour la quantification par canal. |
rhsZéroPoints | La ou les valeurs int32 utilisées comme points zéro lors de la quantification des données originales représentées par « rhs ». Même condition de forme que `rhs_scales`. |
échelles de sortie | La ou les valeurs flottantes à utiliser comme facteurs d'échelle lors de la quantification des données originales représentées par « sortie ». Doit être un « Tensor » scalaire pour la quantification par tenseur, ou un « Tensor » 1D de taille « rhs.dim_size(kernel_output_feature_dimension) » - qui est égal à « output.dim_size(output_feature_dimension) », pour la quantification par canal. Si `rhs` est quantifié par tenseur, la sortie doit également être quantifiée par tenseur. Cela signifie que si `rhs_scales` et `rhs_zero_points` sont des `Tensor` scalaires, `output_scales` et `output_zero_points` doivent également être des `Tensor` scalaires. |
sortieZéroPoints | La ou les valeurs int32 utilisées comme points zéro lors de la quantification des données originales représentées par la sortie. Même condition de forme que `output_scales`. |
Tout | Le type de « sortie » « Tenseur ». |
rembourrage | chaîne de : `"SAME"`, `"VALID"` ou `"EXPLICIT"`, indiquant le type d'algorithme de remplissage à utiliser. |
lhsQuantizationMinVal | La valeur minimale des données quantifiées stockées dans `lhs`. Par exemple, si « Tin » est « qint8 », cela doit être réglé sur -127 si la plage étroite est quantifiée ou sur -128 sinon. |
lhsQuantizationMaxVal | La valeur maximale des données quantifiées stockées dans `lhs`. Par exemple, si « Tin » est « qint8 », cela doit être défini sur 127. |
rhsQuantizationMinVal | La valeur minimale des données quantifiées stockées dans « rhs ». Par exemple, si « Tin » est « qint8 », cela doit être réglé sur -127 si la plage étroite est quantifiée ou sur -128 sinon. |
rhsQuantizationMaxVal | La valeur maximale des données quantifiées stockées dans `rhs`. Par exemple, si « Tin » est « qint8 », cela doit être défini sur 127. |
sortieQuantizationMinVal | La valeur minimale des données quantifiées stockées dans « sortie ». Par exemple, si « Tout » est « qint8 », cela doit être réglé sur -127 si la plage étroite est quantifiée ou sur -128 sinon. |
sortieQuantizationMaxVal | La valeur maximale des données quantifiées stockées dans « sortie ». Par exemple, si « Tout » est « qint8 », cela doit être défini sur 127. |
choix | porte des valeurs d'attributs facultatifs |
Retours
- une nouvelle instance de UniformQuantizedConvolution
public static UniformQuantizedConvolution.Options dimensionNumbers (String dimensionNumbers)
Paramètres
DimensionsNuméros | Structure des informations de dimension pour l'opération de convolution. Doit être une chaîne vide (par défaut) ou une chaîne sérialisée du proto `tensorflow.UniformQuantizedConvolutionDimensionNumbersAttr`. Si chaîne vide, la valeur par défaut est `("NCHW", "OIHW", "NCHW")` (pour une convolution 2D). |
---|
public static UniformQuantizedConvolution.Options explicitPadding (List<Long> explicitPadding)
Paramètres
remplissage explicite | Si `padding` est `"EXPLICIT"`, doit être défini sous forme de liste indiquant les remplissages explicites au début et à la fin de chaque dimension spatiale `lhs`. Sinon, celui-ci doit être vide. (Si utilisé,) Doit être une liste de taille `2 * (nombre de dimensions spatiales gauche)`, où `(explicit_padding[2 * i], explicit_padding[2 * i + 1])` indique `(start_padding, end_padding) ` de `spatial_dimensions[i]`. |
---|
public statique UniformQuantizedConvolution.Options featureGroupCount (Long featureGroupCount)
Paramètres
featureGroupCount | Le nombre de groupes de fonctionnalités. Utilisé pour les circonvolutions groupées. Doit être un diviseur à la fois de « lhs_feature » et de « output_feature ». |
---|
public static UniformQuantizedConvolution.Options lhsDilation (List<Long> lhsDilation)
Paramètres
lhsDilatation | Le facteur de dilatation à appliquer dans chaque dimension spatiale de « lhs ». Doit être une liste vide (par défaut) ou une liste de taille (nombre de dimensions spatiales `lhs`). Si liste vide, la dilatation pour chaque dimension spatiale `lhs` est fixée à 1. |
---|
public statique UniformQuantizedConvolution.Options lhsQuantizationAxis (Long lhsQuantizationAxis)
Paramètres
lhsQuantizationAxis | Indique l'indice de dimension du tenseur où la quantification par axe est appliquée pour les tranches le long de cette dimension. S'il est défini sur -1 (par défaut), cela indique une quantification par tenseur. Pour le « lhs », seule la quantification par tenseur est prise en charge. Il doit donc être réglé sur -1. D'autres valeurs généreront une erreur lors de la construction d'OpKernel. |
---|
Sortie publique Sortie <U> ()
Le tenseur quantifié de sortie de `Tout`, même rang que `lhs` et `rhs`.
public statique UniformQuantizedConvolution.Options outputQuantizationAxis (Long outputQuantizationAxis)
Paramètres
sortieQuantizationAxis | Indique l'indice de dimension du tenseur où la quantification par axe est appliquée pour les tranches le long de cette dimension. S'il est défini sur -1 (par défaut), cela indique une quantification par tenseur. Pour la « sortie », seule la quantification par tenseur ou par canal le long de « output_feature_dimension » est prise en charge. Ainsi, cela doit être défini sur -1 ou `dimension_numbers.output_feature_dimension`. D'autres valeurs généreront une erreur lors de la construction d'OpKernel. |
---|
public static UniformQuantizedConvolution.Options rhsDilation (List<Long> rhsDilation)
Paramètres
rhsDilatation | Le facteur de dilatation à appliquer dans chaque dimension spatiale de « rhs ». Doit être une liste vide (par défaut) ou une liste de taille (nombre de dimensions spatiales « rhs ). Si liste vide, la dilatation pour chaque dimension spatiale `rhs` est fixée à 1. |
---|
public statique UniformQuantizedConvolution.Options rhsQuantizationAxis (Long rhsQuantizationAxis)
Paramètres
rhsQuantizationAxis | Indique l'indice de dimension du tenseur où la quantification par axe est appliquée pour les tranches le long de cette dimension. S'il est défini sur -1 (par défaut), cela indique une quantification par tenseur. Pour le `rhs`, seule la quantification par tenseur ou par canal le long de `kernel_output_feature_dimension` est prise en charge. Ainsi, cela doit être défini sur -1 ou `dimension_numbers.kernel_output_feature_dimension`. D'autres valeurs généreront une erreur lors de la construction d'OpKernel. |
---|
public static UniformQuantizedConvolution.Options windowStrides (List<Long> windowStrides)
Paramètres
fenêtreStrides | La foulée de la fenêtre glissante pour chaque dimension spatiale de « lhs ». Doit être une liste vide (par défaut) ou une liste de taille (nombre de dimensions spatiales). Si une liste vide est fournie, la foulée pour chaque dimension spatiale est définie sur 1. |
---|