Esegui la convoluzione quantizzata ibrida del tensore float "lhs" e del tensore quantizzato "rhs".
Dato il float "lhs" e il "rhs" quantizzato, esegue internamente la quantizzazione su "lhs" e quindi esegue la convoluzione quantizzata su "lhs" e "rhs" quantizzati.
La quantizzazione interna su "lhs" è una quantizzazione su "Trhs", intervallo dinamico, per batch (per asse lungo l'asse "dimension_numbers.input_batch_dimension"), asimmetrica e con intervallo non ristretto (l'intervallo è [Trhs_MIN, Trhs_MAX]) .
"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
`rhs` deve essere un tensore quantizzato, dove il valore dei dati è quantizzato utilizzando la formula: quantized_data = clip(original_data / scale + zero_point, quantization_min_val, quantization_max_val).
Classi nidificate
classe | UniformQuantizedConvolutionHybrid.Options | Attributi facoltativi per UniformQuantizedConvolutionHybrid |
Metodi pubblici
Uscita <V> | comeuscita () Restituisce la maniglia simbolica di un tensore. |
static UniformQuantizedConvolutionHybrid.Options | batchGroupCount (batchGroupCount lungo) |
static <V estende il numero, T estende il numero, U> UniformQuantizedConvolutionHybrid <V> | create ( Scope scope, Operando <T> lhs, Operando <U> rhs, Operando <Float> rhsScales, Operando <Integer> rhsZeroPoints, Class<V> Tout, String padding, Long rhsQuantizationMinVal, Long rhsQuantizationMaxVal, Opzioni... opzioni) Metodo Factory per creare una classe che racchiude una nuova operazione UniformQuantizedConvolutionHybrid. |
static UniformQuantizedConvolutionHybrid.Options | dimensionNumbers (Stringa dimensionNumbers) |
static UniformQuantizedConvolutionHybrid.Options | esplicitoPadding (Lista<Long> esplicitoPadding) |
static UniformQuantizedConvolutionHybrid.Options | featureGroupCount (funzionalitàGroupCount lunga) |
static UniformQuantizedConvolutionHybrid.Options | lhsDilation (Elenco<Long> lhsDilation) |
Uscita <V> | produzione () Il tensore di output di "Tout", stesso rango di "lhs" e "rhs". |
static UniformQuantizedConvolutionHybrid.Options | rhsDilation (Lista<Long> rhsDilation) |
static UniformQuantizedConvolutionHybrid.Options | rhsQuantizationAxis (rhsQuantizationAxis lungo) |
static UniformQuantizedConvolutionHybrid.Options | windowStrides (Elenco<Long> windowStrides) |
Metodi ereditati
Metodi pubblici
Uscita pubblica <V> 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 UniformQuantizedConvolutionHybrid.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 UniformQuantizedConvolutionHybrid <V> create ( Scope scope, Operando <T> lhs, Operando <U> rhs, Operando <Float> rhsScales, Operando <Integer> rhsZeroPoints, Class<V> Tout, String padding, Long rhsQuantizationMinVal, Long rhsQuantizationMaxVal, Opzioni... opzioni)
Metodo Factory per creare una classe che racchiude una nuova operazione UniformQuantizedConvolutionHybrid.
Parametri
scopo | ambito attuale |
---|---|
sinistra | Deve essere un tensore non quantizzato di `Tlhs`, rango >= 3. |
ds | Deve essere un tensore quantizzato di "Trhs", stesso rango di "lhs". |
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 zero_point durante la quantizzazione dei dati originali rappresentati da "rhs". Stessa condizione di forma di "rhs_scales". |
Tutto | Il tipo di tensore di uscita. |
imbottitura | stringa da: `"SAME"`, `"VALID"`, o `"EXPLICIT"`, che indica il tipo di algoritmo di riempimento da utilizzare. |
rhsQuantizzazioneMinVal | Il valore minimo dei dati quantizzati memorizzati in "rhs". Ad esempio, se "Trhs" è qint8, questo deve essere impostato su -127 se quantizzato in intervallo ristretto o -128 in caso contrario. |
rhsQuantizzazioneMaxVal | Il valore massimo dei dati quantizzati memorizzati in "rhs". Ad esempio, se "Trhs" è qint8, questo deve essere impostato su 127. |
opzioni | trasporta valori di attributi opzionali |
ritorna
- una nuova istanza di UniformQuantizedConvolutionHybrid
public static UniformQuantizedConvolutionHybrid.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 proto tensorflow.UniformQuantizedConvolutionDimensionNumbersAttr. Se una stringa vuota, il valore predefinito è `("NCHW", "OIHW", "NCHW")` (per una convoluzione 2D). |
---|
pubblico statico UniformQuantizedConvolutionHybrid.Options esplicitoPadding (List<Long> esplicitoPadding)
Parametri
esplicitoPadding | Se `padding` Attr è `"EXPLICIT"`, deve essere impostato come un elenco che indica i riempimenti espliciti all'inizio e alla fine di ciascuna dimensione spaziale sinistra. Altrimenti, questo Attr deve essere vuoto. (Se utilizzato) Deve essere un elenco di dimensione 2 * (numero di dimensioni spaziali a sinistra), dove (explicit_padding[2 * i], esplicitamente_padding[2 * i + 1]) indica dimensioni_spaziali[i] (start_padding, end_padding). |
---|
public static UniformQuantizedConvolutionHybrid.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 UniformQuantizedConvolutionHybrid.Options lhsDilation (List<Long> lhsDilation)
Parametri
lhsDilatazione | Il fattore di dilatazione da applicare in ciascuna dimensione spaziale di "lhs". Deve essere un elenco vuoto (impostazione predefinita) o un elenco di dimensioni (numero di dimensioni spaziali a sinistra). Se l'elenco è vuoto, la dilatazione per ciascuna dimensione spaziale sinistra è impostata su 1. |
---|
uscita pubblica <V> uscita ()
Il tensore di output di "Tout", stesso rango di "lhs" e "rhs". I dati di output sono i dati di output non quantizzati.
public static UniformQuantizedConvolutionHybrid.Options rhsDilation (List<Long> rhsDilation)
Parametri
destraDilatazione | Il fattore di dilatazione da applicare in ciascuna dimensione spaziale di "rhs". Deve essere un elenco vuoto (impostazione predefinita) o un elenco di dimensioni (numero di dimensioni spaziali di destra). Se l'elenco è vuoto, la dilatazione per ciascuna dimensione spaziale destra è impostata su 1. |
---|
public static UniformQuantizedConvolutionHybrid.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 attributo deve essere impostato su -1 o `dimension_numbers.kernel_output_feature_dimension`. Altri valori genereranno errori durante la costruzione di OpKernel. |
---|
public static UniformQuantizedConvolutionHybrid.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. |
---|