Einführung: Tensorflow.js ist eine Open-Source-Bibliothek, die von Google entwickelt wurde, um maschinelle Lernmodelle sowie neuronale Deep-Learning-Netzwerke in der Browser- oder Nodeumgebung auszuführen.

Die Funktion .pool() wird verwendet, um eine ND-Pooling-Funktion auszuführen.

Syntax:

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

Parameter:

  • Eingabe: Der angegebene Eingabetensor, der entweder Rang 4 oder Rang 3 hat und die Form: [batch, height, width, inChannels]. Falls der Rang 3 ist, wird außerdem die Charge der Größe 1 angenommen. Es kann vom Typ tf.Tensor3D, tf.Tensor4D, TypedArray oder Array sein.
  • windowShape: Die angegebene Filtergröße: [filterHeight, filterWidth]. Es kann vom Typ [Zahl, Zahl] oder Zahl sein. Falls filterSize eine einzelne Zahl ist, dann filterHeight == filterWidth.
  • poolingType: Die angegebene Art des Poolings, es kann entweder „max“ oder „avg“ sein.
  • pad: Der angegebene Algorithmustyp zum Auffüllen. Es kann vom Typ valid, same, number oder conv_util.ExplicitPadding sein.
    1. Hier hätte für Same und Stride 1 die Ausgabe die gleiche Größe wie die Eingabe, unabhängig von der Filtergröße.
    2. Für „gültig“ muss die Ausgabe kleiner als die Eingabe sein, falls die Filtergröße größer als 1*1×1 ist.
  • Dilatationen: Die angegebenen Dilatationsraten: [dilationHeight, dilationWidth], indem die Eingabewerte sowohl über die Höhen- als auch über die Breitenabmessungen im dilatierten Pooling abgetastet werden. Der Standardwert ist [1, 1]. Falls Dilatationen eine einzelne Zahl sind, dann ist dilationHeight == dilationWidth. Und wenn es größer als 1 ist, sollten alle Werte der Schritte 1 sein. Es ist optional und vom Typ [Zahl, Zahl], Zahl.
  • Strides: Die angegebenen Strides des Poolings: [strideHeight, strideWidth]. Falls strides eine singuläre Zahl ist, dann strideHeight == strideWidth. Es ist optional und vom Typ [Zahl, Zahl] oder Zahl.

Rückgabewert: Gibt tf.Tensor3D oder tf.Tensor4D zurück.

Beispiel 1:

Javascript

// 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();

Ausgabe:

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

     [[0.4444444],
      [0.6666667]]]

Beispiel 2:

Javascript

// 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();

Ausgabe:

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

     [[3],
      [3]]]

Referenz: https://js.tensorflow.org/api/latest/#pool