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.
- Aquí, para mismo y zancada 1, la salida tendría el mismo tamaño que 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.
- 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