Realice una convolución cuantificada del tensor cuantificado `lhs` y del tensor cuantificado `rhs`. para generar una "salida" cuantificada.
Dados "lhs" y "rhs" cuantificados, realiza un punto cuantificado en "lhs" y "rhs" para generar una "salida" cuantificada.
`lhs` y `rhs` deben ser tensores del mismo rango y cumplir las siguientes condiciones de 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` y `rhs` deben ser tensores cuantificados, donde el valor de los datos se cuantifica mediante la fórmula:
quantized_data = clip(original_data / scale + zero_point, quantization_min_val, quantization_max_val)
La "salida" también se cuantifica, utilizando la misma fórmula. Si "rhs" está cuantificado por tensor, "output" también debe estar cuantificado por tensor. Clases anidadas
clase | Opciones de convolución cuantificada uniforme | Atributos opcionales para UniformQuantizedConvolution |
Métodos públicos
Salida <U> | como salida () Devuelve el identificador simbólico de un tensor. |
Estático UniformQuantizedConvolution.Options | BatchGroupCount (BatchGroupCount largo) |
estática <U, T> UniformQuantizedConvolution <U> | crear ( Alcance alcance, Operando <T> lhs, Operando <T> rhs, Operando <Float> lhsScales, Operando <Entero> lhsZeroPoints, Operando <Float> rhsScales, Operando <Entero> rhsZeroPoints, Operando <Float> escalas de salida, Operando <Entero > salidaZeroPoints, Class<U> Tout, relleno de cadena, Long lhsQuantizationMinVal, Long lhsQuantizationMaxVal, Long rhsQuantizationMinVal, Long rhsQuantizationMaxVal, Long OutputQuantizationMinVal, Long OutputQuantizationMaxVal, Opciones... opciones) Método de fábrica para crear una clase que envuelve una nueva operación UniformQuantizedConvolution. |
Estático UniformQuantizedConvolution.Options | dimensionNumbers (Dimensión de cadenaNumbers) |
Estático UniformQuantizedConvolution.Options | explícitoPadding (Lista<Long> explícitoPadding) |
Estático UniformQuantizedConvolution.Options | featureGroupCount (cuenta de grupo de características larga) |
Estático UniformQuantizedConvolution.Options | lhsDilation (Lista<Long> lhsDilation) |
Estático UniformQuantizedConvolution.Options | lhsQuantizationAxis (largo lhsQuantizationAxis) |
Salida <U> | producción () El tensor cuantificado de salida de "Tout", el mismo rango que "lhs" y "rhs". |
Estático UniformQuantizedConvolution.Options | OutputQuantizationAxis (eje de cuantificación de salida largo) |
Estático UniformQuantizedConvolution.Options | rhsDilation (Lista<Long> rhsDilation) |
Estático UniformQuantizedConvolution.Options | rhsQuantizationAxis (rhsQuantizationAxis largo) |
Estático UniformQuantizedConvolution.Options | windowStrides (Lista<Largo> windowStrides) |
Métodos heredados
Métodos públicos
Salida pública <U> como Salida ()
Devuelve el identificador simbólico de un tensor.
Las entradas a las operaciones de TensorFlow son salidas de otra operación de TensorFlow. Este método se utiliza para obtener un identificador simbólico que representa el cálculo de la entrada.
UniformQuantizedConvolution.Options estático público BatchGroupCount (Long BatchGroupCount)
Parámetros
loteGrupoRecuento | El número de grupos de lotes. Se utiliza para filtros agrupados. Debe ser un divisor de `output_feature`. |
---|
public static UniformQuantizedConvolution <U> create ( Alcance alcance, Operando <T> lhs, Operando <T> rhs, Operando <Float> lhsScales, Operando <Integer> lhsZeroPoints, Operando <Float> rhsScales, Operando <Integer> rhsZeroPoints, Operando <Float > escalas de salida, operando <entero> salidaCeropuntos, clase<U> Tout, relleno de cadena, lhsQuantizationMinVal largo, lhsQuantizationMaxVal largo, rhsQuantizationMinVal largo, rhsQuantizationMaxVal largo, QuantizationMinVal de salida largo, QuantizationMaxVal de salida largo, Opciones... opciones)
Método de fábrica para crear una clase que envuelve una nueva operación UniformQuantizedConvolution.
Parámetros
alcance | alcance actual |
---|---|
lhs | Debe ser un tensor cuantificado, rango >= 3. |
derecho | Debe ser un tensor cuantificado, del mismo rango que "lhs". |
lhsEscalas | Los valores flotantes utilizados como factores de escala al cuantificar los datos originales que representa "lhs". Debe ser un `Tensor` escalar (`lhs` solo admite cuantificación por tensor). |
lhsCeroPuntos | Los valores int32 utilizados como puntos cero al cuantificar los datos originales que representa "lhs". Misma condición de forma que `lhs_scales`. |
rhsEscalas | Los valores flotantes utilizados como factores de escala al cuantificar los datos originales que representa "rhs". Debe ser un `Tensor` escalar para la cuantización por tensor, o un `Tensor` 1D de tamaño `rhs.dim_size(kernel_output_feature_dimension)`, para la cuantización por canal. |
rhsCeroPuntos | Los valores int32 utilizados como puntos cero al cuantificar los datos originales que representa "rhs". Misma condición de forma que `rhs_scales`. |
escalas de salida | Los valores flotantes que se utilizarán como factores de escala al cuantificar los datos originales que representa la "salida". Debe ser un `Tensor` escalar para la cuantización por tensor, o un `Tensor` 1D de tamaño `rhs.dim_size(kernel_output_feature_dimension)`, que es igual a `output.dim_size(output_feature_dimension)`, para la cuantización por canal. Si "rhs" está cuantificado por tensor, la salida también debe estar cuantificada por tensor. Esto significa que si `rhs_scales` y `rhs_zero_points` son `tensores` escalares, `output_scales` y `output_zero_points` también deben ser `tensores` escalares. |
salidaCeroPuntos | Los valores int32 utilizados como puntos cero al cuantificar los datos originales que representa la salida. Misma condición de forma que `output_scales`. |
Revendedor | El tipo de `salida` `Tensor`. |
relleno | cadena de: `"SAME"`, `"VALID"` o `"EXPLICIT"`, que indica el tipo de algoritmo de relleno a utilizar. |
lhsCuantizaciónMinVal | El valor mínimo de los datos cuantificados almacenados en "lhs". Por ejemplo, si `Tin` es `qint8`, debe establecerse en -127 si se cuantifica un rango estrecho o -128 en caso contrario. |
lhsCuantizaciónMaxVal | El valor máximo de los datos cuantificados almacenados en `lhs`. Por ejemplo, si "Tin" es "qint8", debe establecerse en 127. |
rhsCuantizaciónMinVal | El valor mínimo de los datos cuantificados almacenados en "rhs". Por ejemplo, si `Tin` es `qint8`, debe establecerse en -127 si se cuantifica un rango estrecho o -128 en caso contrario. |
rhsQuantizationMaxVal | El valor máximo de los datos cuantificados almacenados en "rhs". Por ejemplo, si "Tin" es "qint8", debe establecerse en 127. |
salidaCuantizaciónMinVal | El valor mínimo de los datos cuantificados almacenados en "salida". Por ejemplo, si `Tout` es `qint8`, debe establecerse en -127 si se cuantifica un rango estrecho o -128 en caso contrario. |
salidaQuantizationMaxVal | El valor máximo de los datos cuantificados almacenados en "salida". Por ejemplo, si "Tout" es "qint8", debe establecerse en 127. |
opciones | lleva valores de atributos opcionales |
Devoluciones
- una nueva instancia de UniformQuantizedConvolution
público estático UniformQuantizedConvolution.Options dimensionNumbers (String dimensionNumbers)
Parámetros
dimensiónNúmeros | Estructura de la información de dimensiones para la operación de convolución. Debe ser una cadena vacía (predeterminada) o una cadena serializada del proto `tensorflow.UniformQuantizedConvolutionDimensionNumbersAttr`. Si la cadena está vacía, el valor predeterminado es `("NCHW", "OIHW", "NCHW")` (para una convolución 2D). |
---|
UniformQuantizedConvolution.Options estático público explícitoPadding (List<Long> explícitoPadding)
Parámetros
explícitoRelleno | Si `padding` es `"EXPLICIT"`, debe establecerse como una lista que indique los rellenos explícitos al inicio y al final de cada dimensión espacial `lhs`. De lo contrario, debe estar vacío. (Si se usa,) Debe ser una lista de tamaño `2 * (número de dimensiones espaciales izquierdas)`, donde `(explicit_padding[2 * i], explicit_padding[2 * i + 1])` indica `(start_padding, end_padding) ` de `dimensiones_espaciales[i]`. |
---|
Public Static UniformQuantizedConvolution.Options featureGroupCount (Long featureGroupCount)
Parámetros
característicaGrupoRecuento | El número de grupos de características. Se utiliza para convoluciones agrupadas. Debe ser un divisor tanto de `lhs_feature` como de `output_feature`. |
---|
UniformQuantizedConvolution.Options estático público lhsDilation (List<Long> lhsDilation)
Parámetros
lhsDilatación | El factor de dilatación a aplicar en cada dimensión espacial de `lhs`. Debe ser una lista vacía (predeterminada) o una lista de tamaño (número de dimensiones espaciales `lhs`). Si la lista está vacía, la dilatación de cada dimensión espacial "lhs" se establece en 1. |
---|
UniformQuantizedConvolution.Options estático público lhsQuantizationAxis (Long lhsQuantizationAxis)
Parámetros
lhsCuantizaciónEje | Indica el índice de dimensión del tensor donde se aplica la cuantificación por eje para los cortes a lo largo de esa dimensión. Si se establece en -1 (predeterminado), esto indica cuantización por tensor. Para `lhs`, solo se admite la cuantificación por tensor. Por lo tanto, debe establecerse en -1. Otros valores generarán errores en la construcción de OpKernel. |
---|
Salida pública <U> salida ()
El tensor cuantificado de salida de "Tout", el mismo rango que "lhs" y "rhs".
público estático UniformQuantizedConvolution.Options salidaQuantizationAxis (salida largaQuantizationAxis)
Parámetros
salidaCuantizaciónEje | Indica el índice de dimensión del tensor donde se aplica la cuantificación por eje para los cortes a lo largo de esa dimensión. Si se establece en -1 (predeterminado), esto indica cuantización por tensor. Para la "salida", solo se admite la cuantificación por tensor o por canal a lo largo de "output_feature_dimension". Por lo tanto, esto debe establecerse en -1 o `dimension_numbers.output_feature_dimension`. Otros valores generarán errores en la construcción de OpKernel. |
---|
pública estática UniformQuantizedConvolution.Options rhsDilation (List<Long> rhsDilation)
Parámetros
rhsDilatación | El factor de dilatación a aplicar en cada dimensión espacial de `rhs`. Debe ser una lista vacía (predeterminada) o una lista de tamaño (número de dimensiones espaciales "rhs"). Si la lista está vacía, la dilatación de cada dimensión espacial "rhs" se establece en 1. |
---|
Public Static UniformQuantizedConvolution.Options rhsQuantizationAxis (Largo rhsQuantizationAxis)
Parámetros
rhsQuantizationAxis | Indica el índice de dimensión del tensor donde se aplica la cuantificación por eje para los cortes a lo largo de esa dimensión. Si se establece en -1 (predeterminado), esto indica cuantización por tensor. Para `rhs`, solo se admite la cuantificación por tensor o por canal a lo largo de `kernel_output_feature_dimension`. Por lo tanto, esto debe establecerse en -1 o `dimension_numbers.kernel_output_feature_dimension`. Otros valores generarán errores en la construcción de OpKernel. |
---|
Public Static UniformQuantizedConvolution.Options windowStrides (List<Long> windowStrides)
Parámetros
ventanazancadas | El paso de la ventana corredera para cada dimensión espacial de `lhs`. Debe ser una lista vacía (predeterminada) o una lista de tamaño (número de dimensiones espaciales). Si se proporciona una lista vacía, el paso para cada dimensión espacial se establece en 1. |
---|