Función Tensorflow.js tf.maxPoolWithArgmax()

Tensorflow.js es una biblioteca de código abierto desarrollada por Google para ejecutar modelos de aprendizaje automático, así como redes neuronales de aprendizaje profundo en el entorno del navegador o del Node.

La función .maxPoolWithArgmax() se utiliza para determinar la agrupación máxima 2D de una imagen junto con la lista argmax, es decir, el índice. Donde, los índices en argmax están nivelados, para que un valor pico en la posición [b, y, x, c] se convierta en índice comprimido: (y * ancho + x) * canales + c en caso de que include_batch_in_index sea falso y if include_batch_in_index es cierto entonces es ((b * alto + y) * ancho + x) * canales +c. Además, los índices devueltos están consistentemente en [0, alto) x [0, ancho) antes del aplanamiento.

Sintaxis:

tf.maxPoolWithArgmax(x, filterSize, 
    strides, pad, includeBatchInIndex?)

Parámetros:

  • x: El tensor de entrada indicado que es de rango 4 o de rango 3 y de forma: [lote, altura, ancho, canales]. Además, en caso de que el rango sea 3, se presume el lote de tamaño 1. Puede ser de tipo tf.Tensor4D, TypedArray o Array.
  • filterSize: el tamaño de filtro indicado de la forma: [filterHeight, filterWidth]. En caso de que el tamaño del filtro sea un número singular, entonces filterHeight == filterWidth. Puede ser de tipo [número, número] o número.
  • zancadas: Las zancadas indicadas del conjunto de formas: [strideHeight, strideWidth]. En caso de que zancadas sea un número singular, entonces zancadaAltura == zancadaAncho. Puede ser de tipo [número, número] o número.
  • pad: el tipo de algoritmo indicado para el relleno. Puede ser de tipo válido, igual o número.
    • Aquí, para same y stride 1, la salida tendría un tamaño idéntico al de la entrada, independientemente del tamaño del filtro.
    • Para ‘válido’, la salida será más pequeña que la entrada en caso de que el tamaño del filtro sea mayor que 1*1×1.
  • includeBatchInIndex: Es opcional y es de tipo booleano.

Valor devuelto: Devuelve {[nombre: string]: tf.Tensor}.

Ejemplo 1:

Javascript

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

Producción:    

{
  "result": {
    "kept": false,
    "isDisposedInternal": false,
    "shape": [
      2,
      1,
      1,
      1
    ],
    "dtype": "float32",
    "size": 2,
    "strides": [
      1,
      1,
      1
    ],
    "dataId": {
      "id": 20
    },
    "id": 20,
    "rankType": "4",
    "scopeId": 14
  },
  "indexes": {
    "kept": false,
    "isDisposedInternal": false,
    "shape": [
      2,
      1,
      1,
      1
    ],
    "dtype": "float32",
    "size": 2,
    "strides": [
      1,
      1,
      1
    ],
    "dataId": {
      "id": 21
    },
    "id": 21,
    "rankType": "4",
    "scopeId": 14
  }
}

Ejemplo 2:

Javascript

// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Calling maxPoolWithArgmax() method
console.log(tf.maxPoolWithArgmax(
    tf.tensor4d([1.1, 2.1, 3.1, 4.1], 
    [1, 2, 2, 1]), [1, 2], [1, 1], 
    'valid', true
));

Producción:

{
  "result": {
    "kept": false,
    "isDisposedInternal": false,
    "shape": [
      1,
      2,
      1,
      1
    ],
    "dtype": "float32",
    "size": 2,
    "strides": [
      2,
      1,
      1
    ],
    "dataId": {
      "id": 80
    },
    "id": 80,
    "rankType": "4",
    "scopeId": 54
  },
  "indexes": {
    "kept": false,
    "isDisposedInternal": false,
    "shape": [
      1,
      2,
      1,
      1
    ],
    "dtype": "float32",
    "size": 2,
    "strides": [
      2,
      1,
      1
    ],
    "dataId": {
      "id": 81
    },
    "id": 81,
    "rankType": "4",
    "scopeId": 54
  }
}

Referencia: https://js.tensorflow.org/api/latest/#maxPoolWithArgmax

Publicación traducida automáticamente

Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *