Esegui la convoluzione quantizzata del tensore quantizzato "lhs" e del tensore quantizzato "rhs". per creare un "output" quantizzato.
Dato "lhs" quantizzato e "rhs" quantizzato, esegue il punto quantizzato su "lhs" e "rhs" per creare un "output" quantizzato.
"lhs" e "rhs" devono essere tensori dello stesso rango e soddisfare le seguenti condizioni di forma. - `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" e "rhs" devono essere quantizzati Tensore, dove il valore dei dati viene quantizzato utilizzando la formula:
quantized_data = clip(original_data / scale + zero_point, quantization_min_val, quantization_max_val)
Anche l'"output" viene quantizzato, utilizzando la stessa formula. Se "rhs" è quantizzato per tensore, anche "output" deve essere quantizzato per tensore. Classi nidificate
classe | UniformQuantizedConvolution.Options | Attributi facoltativi per UniformQuantizedConvolution |
Metodi pubblici
Uscita <U> | comeuscita () Restituisce la maniglia simbolica di un tensore. |
static UniformQuantizedConvolution.Options | batchGroupCount (batchGroupCount lungo) |
static <U, T> UniformQuantizedConvolution <U> | create ( Scope scope, Operando <T> lhs, Operando <T> rhs, Operando <Float> lhsScales, Operando <Integer> lhsZeroPoints, Operando <Float> rhsScales, Operando <Integer> rhsZeroPoints, Operando <Float> outputScales, Operando <Integer > outputZeroPoints, Class<U> Tout, String padding, Lungo lhsQuantizationMinVal, Lungo lhsQuantizationMaxVal, Lungo rhsQuantizationMinVal, Lungo rhsQuantizationMaxVal, Lungo outputQuantizationMinVal, Lungo outputQuantizationMaxVal, Opzioni... opzioni) Metodo Factory per creare una classe che racchiude una nuova operazione UniformQuantizedConvolution. |
static UniformQuantizedConvolution.Options | dimensionNumbers (Stringa dimensionNumbers) |
static UniformQuantizedConvolution.Options | esplicitoPadding (Lista<Long> esplicitoPadding) |
static UniformQuantizedConvolution.Options | featureGroupCount (funzionalitàGroupCount lunga) |
static UniformQuantizedConvolution.Options | lhsDilation (Elenco<Long> lhsDilation) |
static UniformQuantizedConvolution.Options | lhsQuantizationAxis (LhsQuantizationAxis lungo) |
Uscita <U> | produzione () Il tensore quantizzato in uscita di "Tout", stesso rango di "lhs" e "rhs". |
static UniformQuantizedConvolution.Options | outputQuantizationAxis (outputQuantizationAxis lungo) |
static UniformQuantizedConvolution.Options | rhsDilation (Lista<Lunga> rhsDilation) |
static UniformQuantizedConvolution.Options | rhsQuantizationAxis (rhsQuantizationAxis lungo) |
static UniformQuantizedConvolution.Options | windowStrides (Elenco<Long> windowStrides) |
Metodi ereditati
Metodi pubblici
Uscita pubblica <U> asOutput ()
Restituisce la maniglia simbolica di un tensore.
Gli input per le operazioni TensorFlow sono output di un'altra operazione TensorFlow. Questo metodo viene utilizzato per ottenere un handle simbolico che rappresenta il calcolo dell'input.
public static UniformQuantizedConvolution.Options batchGroupCount (Long batchGroupCount)
Parametri
batchGroupCount | Il numero di gruppi batch. Utilizzato per i filtri raggruppati. Deve essere un divisore di "output_feature". |
---|
public static UniformQuantizedConvolution <U> create ( Scope scope, Operando <T> lhs, Operando <T> rhs, Operando <Float> lhsScales, Operando <Integer> lhsZeroPoints, Operando <Float> rhsScales, Operando <Integer> rhsZeroPoints, Operando <Float > outputScales, Operando <Integer> outputZeroPoints, Class<U> Tout, String padding, Lungo lhsQuantizationMinVal, Lungo lhsQuantizationMaxVal, Lungo rhsQuantizationMinVal, Lungo rhsQuantizationMaxVal, Lungo outputQuantizationMinVal, Lungo outputQuantizationMaxVal, Opzioni... opzioni)
Metodo Factory per creare una classe che racchiude una nuova operazione UniformQuantizedConvolution.
Parametri
ambito | ambito attuale |
---|---|
sinistra | Deve essere un tensore quantizzato, di rango >= 3. |
ds | Deve essere un tensore quantizzato, stesso rango di "lhs". |
lhsScales | I valori float utilizzati come fattori di scala durante la quantizzazione dei dati originali rappresentati da "lhs". Deve essere un `Tensore` scalare (`lhs` supporta solo la quantizzazione per tensore). |
lhsZeroPoints | I valori int32 utilizzati come punti zero durante la quantizzazione dei dati originali rappresentati da "lhs". Stessa condizione di forma di "lhs_scales". |
rhsScales | I valori float utilizzati come fattori di scala durante la quantizzazione dei dati originali rappresentati da "rhs". Deve essere un "Tensore" scalare per la quantizzazione per tensore o un "Tensore" 1D di dimensione "rhs.dim_size(kernel_output_feature_dimension)" per la quantizzazione per canale. |
rhsZeroPoints | I valori int32 utilizzati come punti zero durante la quantizzazione dei dati originali rappresentati da "rhs". Stessa condizione di forma di "rhs_scales". |
outputScales | I valori float da utilizzare come fattori di scala quando si quantizzano i dati originali rappresentati da "output". Deve essere un "Tensore" scalare per la quantizzazione per tensore o un "Tensore" 1D di dimensione "rhs.dim_size(kernel_output_feature_dimension)" - che è uguale a "output.dim_size(output_feature_dimension)" per la quantizzazione per canale. Se "rhs" è quantizzato per tensore, anche l'output deve essere quantizzato per tensore. Ciò significa che se `rhs_scales` e `rhs_zero_points` sono `Tensor` scalari, anche `output_scales` e `output_zero_points` devono essere `Tensor` scalari. |
outputZeroPoints | I valori int32 utilizzati come punti zero durante la quantizzazione dei dati originali rappresentati dall'output. Stessa condizione di forma di "output_scales". |
Tutto | Il tipo di "output" "Tensore". |
imbottitura | stringa da: `"SAME"`, `"VALID"`, o `"EXPLICIT"`, che indica il tipo di algoritmo di riempimento da utilizzare. |
lhsQuantizzazioneMinVal | Il valore minimo dei dati quantizzati memorizzati in "lhs". Ad esempio, se "Tin" è "qint8", deve essere impostato su -127 se quantizzato in intervallo ristretto o su -128 in caso contrario. |
lhsQuantizzazioneMaxVal | Il valore massimo dei dati quantizzati memorizzati in "lhs". Ad esempio, se "Tin" è "qint8", questo deve essere impostato su 127. |
rhsQuantizzazioneMinVal | Il valore minimo dei dati quantizzati memorizzati in "rhs". Ad esempio, se "Tin" è "qint8", deve essere impostato su -127 se quantizzato in intervallo ristretto o su -128 in caso contrario. |
rhsQuantizzazioneMaxVal | Il valore massimo dei dati quantizzati memorizzati in "rhs". Ad esempio, se "Tin" è "qint8", questo deve essere impostato su 127. |
outputQuantizzazioneMinVal | Il valore minimo dei dati quantizzati memorizzati in "output". Ad esempio, se "Tout" è "qint8", questo deve essere impostato su -127 se quantizzato in intervallo ristretto o -128 in caso contrario. |
outputQuantizzazioneMaxVal | Il valore massimo dei dati quantizzati memorizzati in "output". Ad esempio, se "Tout" è "qint8", questo deve essere impostato su 127. |
opzioni | trasporta valori di attributi opzionali |
Ritorni
- una nuova istanza di UniformQuantizedConvolution
public static UniformQuantizedConvolution.Options dimensionNumbers (Stringa dimensionNumbers)
Parametri
dimensioneNumeri | Struttura delle informazioni sulle dimensioni per la convoluzione op. Deve essere una stringa vuota (impostazione predefinita) o una stringa serializzata del protocollo `tensorflow.UniformQuantizedConvolutionDimensionNumbersAttr`. Se una stringa vuota, il valore predefinito è `("NCHW", "OIHW", "NCHW")` (per una convoluzione 2D). |
---|
pubblico statico UniformQuantizedConvolution.Options esplicitoPadding (List<Long> esplicitoPadding)
Parametri
esplicitoPadding | Se `padding` è `"EXPLICIT"`, deve essere impostato come un elenco che indica i riempimenti espliciti all'inizio e alla fine di ciascuna dimensione spaziale `lhs`. Altrimenti, questo deve essere vuoto. (Se utilizzato) Deve essere un elenco di dimensioni "2 * (numero di dimensioni spaziali a sinistra)", dove "(explicit_padding[2 * i], esplicitamente_padding[2 * i + 1])" indica "(start_padding, end_padding) " di "dimensioni_spaziali[i]". |
---|
public static UniformQuantizedConvolution.Options featureGroupCount (Long featureGroupCount)
Parametri
funzionalitàGroupCount | Il numero di gruppi di funzionalità. Utilizzato per convoluzioni raggruppate. Deve essere un divisore sia di "lhs_feature" che di "output_feature". |
---|
public static UniformQuantizedConvolution.Options lhsDilation (List<Long> lhsDilation)
Parametri
lhsDilatazione | Il fattore di dilatazione da applicare in ciascuna dimensione spaziale di "lhs". Deve essere un elenco vuoto (predefinito) o un elenco di dimensioni (numero di dimensioni spaziali `lhs`). Se l'elenco è vuoto, la dilatazione per ciascuna dimensione spaziale "lhs" è impostata su 1. |
---|
pubblico statico UniformQuantizedConvolution.Options lhsQuantizationAxis (Long lhsQuantizationAxis)
Parametri
lhsQuantizationAxis | Indica l'indice della dimensione del tensore in cui viene applicata la quantizzazione per asse per le fette lungo quella dimensione. Se impostato su -1 (impostazione predefinita), indica la quantizzazione per tensore. Per "lhs" è supportata solo la quantizzazione per tensore. Pertanto, questo deve essere impostato su -1. Altri valori genereranno errori durante la costruzione di OpKernel. |
---|
Uscita pubblica <U> uscita ()
Il tensore quantizzato in uscita di "Tout", stesso rango di "lhs" e "rhs".
public static UniformQuantizedConvolution.Options outputQuantizationAxis (Long outputQuantizationAxis)
Parametri
outputQuantizationAxis | Indica l'indice della dimensione del tensore in cui viene applicata la quantizzazione per asse per le fette lungo quella dimensione. Se impostato su -1 (impostazione predefinita), indica la quantizzazione per tensore. Per l'"output", è supportata solo la quantizzazione per tensore o la quantizzazione per canale lungo "output_feature_dimension". Pertanto, deve essere impostato su -1 o "dimension_numbers.output_feature_dimension". Altri valori genereranno errori durante la costruzione di OpKernel. |
---|
public static UniformQuantizedConvolution.Options rhsDilation (List<Long> rhsDilation)
Parametri
destraDilatazione | Il fattore di dilatazione da applicare in ciascuna dimensione spaziale di "rhs". Deve essere un elenco vuoto (predefinito) o un elenco di dimensioni (numero di dimensioni spaziali `rhs`). Se l'elenco è vuoto, la dilatazione per ciascuna dimensione spaziale "rhs" è impostata su 1. |
---|
public static UniformQuantizedConvolution.Options rhsQuantizationAxis (Long rhsQuantizationAxis)
Parametri
rhsQuantizationAxis | Indica l'indice della dimensione del tensore in cui viene applicata la quantizzazione per asse per le fette lungo quella dimensione. Se impostato su -1 (impostazione predefinita), indica la quantizzazione per tensore. Per "rhs", è supportata solo la quantizzazione per tensore o la quantizzazione per canale lungo "kernel_output_feature_dimension". Pertanto, questo deve essere impostato su -1 o `dimension_numbers.kernel_output_feature_dimension`. Altri valori genereranno errori durante la costruzione di OpKernel. |
---|
public static UniformQuantizedConvolution.Options windowStrides (List<Long> windowStrides)
Parametri
finestraStrides | Il passo della finestra scorrevole per ciascuna dimensione spaziale di "lhs". Deve essere un elenco vuoto (impostazione predefinita) o un elenco di dimensioni (numero di dimensioni spaziali). Se viene fornito un elenco vuoto, il passo per ciascuna dimensione spaziale è impostato su 1. |
---|