Tensorflow.js es un conjunto de herramientas de código abierto desarrollado por Google para ejecutar modelos de aprendizaje automático y redes neuronales de aprendizaje profundo en el navegador o en la plataforma del Node. También permite a los desarrolladores crear modelos de aprendizaje automático en JavaScript y utilizarlos directamente en el navegador o con Node.js.
La función tf.layers.averagePooling2d() se usa para aplicar la operación de agrupación promedio para datos espaciales. Si su campo dataFormat se establece en CHANNEL_LAST, toma el tensor como entrada con forma 4d [tamaño de lote, filas, columnas, canales] y genera el tensor con forma 4d: [tamaño de lote, poolsRows, pooledCols, canales]. Su archivo de formato de datos se establece en CHANNEL_FIRST, toma el tensor como entrada con forma 4d: [tamaño de lote, canales, filas, columnas] y genera el tensor con forma: [tamaño de lote, canales, poolsRows, pooledCols].
Sintaxis:
tf.layers.averagePooling2d( args )
Parámetros:
- args: Es un objeto con las siguientes propiedades:
- poolSize: se utiliza para reducir los factores de escala en cada dimensión, es decir, [vectical, horizonatal]. Es un número entero o se espera una array de dos números enteros.
- zancadas: en cada dimensión de la ventana de agrupación, el tamaño de la zancada. Es un número entero o se requiere una array de dos números enteros.
- relleno: el tipo de relleno que se utilizará para la capa de agrupación.
- dataFormat: el formato de datos que se utilizará para la capa de agrupación.
- inputShape: si se especifica entonces, se utilizará para construir una capa de entrada que se insertará antes de esta capa.
- batchInputShape: si se especifica, se utilizará para crear una capa de entrada que se insertará antes de esta capa.
- batchSize: Admite inputShape para construir el batchInputShape.
- dtype: Es el tipo de tipo de datos para esta capa. Este parámetro se aplica exclusivamente a las capas de entrada.
- nombre: Es de tipo string. Es el nombre de esta capa.
- entrenable: si se establece en verdadero, solo los pesos de esta capa cambiarán por ajuste.
- pesos: Los valores de peso iniciales de la capa.
Devoluciones: Devuelve AveragePooling2D
Ejemplo 1:
Javascript
import * as tf from "@tensorflow.js/tfjs" const model = tf.sequential(); // First layer must have a defined input shape model.add(tf.layers.averagePooling2d({ poolSize: 2, strides: 3, padding: 'valid', inputShape: [2, 3, 2] })); // Afterwards, TF.js does automatic shape inference. model.add(tf.layers.dense({units: 3})); model.add(tf.layers.averagePooling2d({ poolSize: 2, strides: 3, padding: 'valid' })); // Inspect the inferred shape of the model's output. model.summary();
Producción:
__________________________________________________________________________________________ Layer (type) Input Shape Output shape Param # ========================================================================================== average_pooling2d_AveragePo [[null,2,3,2]] [null,1,1,2] 0 __________________________________________________________________________________________ dense_Dense4 (Dense) [[null,1,1,2]] [null,1,1,3] 9 __________________________________________________________________________________________ average_pooling2d_AveragePo [[null,1,1,3]] [null,0,0,3] 0 ========================================================================================== Total params: 9 Trainable params: 9 Non-trainable params: 0 __________________________________________________________________________________________
Ejemplo 2:
Javascript
import * as tf from "@tensorflow/tfjs"; const Input = tf.input({ shape: [2, 3, 5] }); const averagePooling2DLayer = tf.layers.averagePooling2d( { dataFormat: 'channelsLast' } ); const Output = averagePooling2DLayer.apply(Input); const Data = tf.ones([2, 2, 3, 5]); const model = tf.model({ inputs: Input, outputs: Output }); model.predict(Data).print();
Producción:
Tensor [ [ [[1, 1, 1, 1, 1],]], [ [[1, 1, 1, 1, 1],]]]
Referencia: https://js.tensorflow.org/api/latest/#layers.averagePooling2d
Publicación traducida automáticamente
Artículo escrito por satyam00so y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA