Función Tensorflow.js tf. depthwiseConv2d()

Introducción: 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 . depthwiseConv2d() se utiliza para determinar la convolución 2D de Depthwise. 

Además, para una array de entrada 4D dada, así como una array de filtro de forma: [filterHeight, filterWidth, inChannels, channelMultiplier] que comprende filtros convolucionales inChannels de profundidad 1, este método opera un filtro distinto para todo el canal de entrada (expandiéndose de 1 canal a canalMultiplicador de canales para cada uno), luego concatena los resultados conjuntamente. Sin embargo, la salida tiene canales inChannels * channelMultiplier.

Sintaxis:

tf.depthwiseConv2d(x, filter, strides, pad, dataFormat?, 
dilations?, dimRoundingMode?)

Parámetros:

  • x: El tensor de entrada indicado que es de rango 3 o de rango 4 y de forma: [lote, altura, ancho, canales]. Además, en caso de que el rango sea 3, entonces se presume el lote de tamaño 1. Puede ser del tipo tf.Tensor3D, tf.Tensor4D, TypedArray o Array.
  • filter: El tensor de filtro indicado de rango 4 y forma: [filterHeight, filterWidth, inChannels, channelMultiplier]. Puede ser de tipo tf.Tensor4D, TypedArray o Array.
  • zancadas: Las zancadas indicadas de la circunvolución: [strideHeight, strideWidth]. En caso de que los pasos indicados sean un solo número, entonces strideHeight == strideWidth. 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, mismo, número o ExplicitPadding.
    1. Aquí, para mismo y zancada 1, la salida tendría el mismo tamaño que la entrada, independientemente del tamaño del filtro.
    2. 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.
  • dataFormat: la string opcional de «NHWC» o «NCHW». Especifica el formato de datos de la entrada indicada, así como los datos de salida. El valor predeterminado es ‘NHWC’. Además, los datos aquí se almacenan en el orden de: [lote, alto, ancho, canales]. Es opcional y puede ser del tipo ‘NHWC’ o ‘NCHW’, pero actualmente solo se prefiere ‘NHWC’.
  • dilataciones: las tasas de dilatación indicadas: [dilationHeight, dilatationWidth] en el sentido de que los valores de entrada se muestrean sobre las dimensiones de altura y anchura a favor de la convolución atrosa. El valor predeterminado es [1, 1]. Además, en caso de que la tasa sea un solo número, entonces dilatationHeight == dilatationWidth. Y si es mayor que 1, entonces todos los valores de los pasos deben ser 1. Es opcional y es de tipo [número, número], número.
  • dimRoundingMode: la string establecida de ‘techo’, ‘redondo’ o ‘piso’. En caso de que no se indique nada, el valor predeterminado es truncar. Es opcional y puede ser de tipo suelo, redondo o techo.

Valor devuelto: Devuelve tf.Tensor3D o tf.Tensor4D.

Ejemplo 1:

Javascript

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

Producción:

Tensor
    [ [ [[4, 2, 8 , 8 ],]],


      [ [[6, 3, 16, 16],]]]

Ejemplo 2:

Javascript

// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Calling depthwiseConv2d() method
tf.tensor4d([2.1, 2.2, 3.4, 4.1], [2, 1, 1, 2]).depthwiseConv2d(
 tf.tensor4d([2.1, 1.2, 4.2, 1.3], [1, 1, 2, 2]), 1, 1,
'NHWC', [1, 1], 'round').print();

Producción:

Tensor
    [[[[0        , 0        , 0         , 0        ],
       [0        , 0        , 0         , 0        ],
       [0        , 0        , 0         , 0        ]],

      [[0        , 0        , 0         , 0        ],
       [4.4099994, 2.52     , 9.2399998 , 2.8599999],
       [0        , 0        , 0         , 0        ]],

      [[0        , 0        , 0         , 0        ],
       [0        , 0        , 0         , 0        ],
       [0        , 0        , 0         , 0        ]]],


     [[[0        , 0        , 0         , 0        ],
       [0        , 0        , 0         , 0        ],
       [0        , 0        , 0         , 0        ]],

      [[0        , 0        , 0         , 0        ],
       [7.1399999, 4.0800004, 17.2199993, 5.3299994],
       [0        , 0        , 0         , 0        ]],

      [[0        , 0        , 0         , 0        ],
       [0        , 0        , 0         , 0        ],
       [0        , 0        , 0         , 0        ]]]]

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

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 *