Introdução: Tensorflow.js é uma biblioteca de código aberto desenvolvida pelo Google para executar modelos de aprendizado de máquina, bem como redes neurais de aprendizado profundo no navegador ou ambiente de nó.

A função .pool() é usada para executar o funcionamento de um pool de ND.

Sintaxe:

tf.pool(input, windowShape, poolingType, pad, dilations?, strides?)

Parâmetros:

  • entrada: O tensor de entrada declarado que é de classificação 4 ou então de classificação 3 e de formato: [lote, altura, largura, inChannels]. Além disso, caso a classificação seja 3, o lote de tamanho 1 é presumido. Pode ser do tipo tf.Tensor3D, tf.Tensor4D, TypedArray ou Array.
  • windowShape: O tamanho do filtro declarado: [filterHeight, filterWidth]. Pode ser do tipo [número, número] ou número. Nesse caso, filterSize é um número único, então filterHeight == filterWidth.
  • poolingType: o tipo de pool declarado, pode ser 'max' ou 'avg'.
  • pad: O tipo de algoritmo declarado para preenchimento. Pode ser do tipo valid, same, number ou conv_util.ExplicitPadding.
    1. Aqui, para o mesmo e passo 1, a saída teria tamanho idêntico como entrada, independentemente do tamanho do filtro.
    2. Para, 'válido', a saída deve ser menor do que a entrada, no caso, o tamanho do filtro é maior do que 1 * 1 × 1.
  • dilatações: As taxas de dilatação declaradas: [dilationHeight, dilationWidth] em que os valores de entrada são amostrados sobre as dimensões de altura e largura no pool dilatado. O valor padrão é [1, 1]. Além disso, no caso de dilatações ser um único número, dilationHeight == dilationWidth. E se for maior que 1, todos os valores das passadas devem ser 1. É opcional e é do tipo [número, número], número.
  • strides: Os strides declarados da piscina: [strideHeight, strideWidth]. No caso, strides é um número singular, então strideHeight == strideWidth. É opcional e é do tipo [número, número] ou número.

Valor de retorno: ele retorna tf.Tensor3D ou tf.Tensor4D.

Exemplo 1:

// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Defining input tensor
const x = tf.tensor3d([1, 2, 3, 4], [2, 2, 1]);
  
// Calling pool() method
const result = tf.pool(x, 3, 'avg', 'same', [1, 2], 1);
   
// Printing output
result.print();

Saída:

Tensor
    [[[0.4444444],
      [0.6666667]],

     [[0.4444444],
      [0.6666667]]]

Exemplo 2:

// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Calling pool() method
tf.tensor3d([1.2, 2.1, 3.0, -4], [2, 2, 1]).pool(3,
                    'conv_util.ExplicitPadding', 1, 1).print();

Saída:

Tensor
    [[[3],
      [3]],

     [[3],
      [3]]]

Referência: https://js.tensorflow.org/api/latest/#pool