Tensorflow.js tf.layers.separableConv2d() Función

Tensorflow.js es una biblioteca de código abierto desarrollada por Google para ejecutar modelos de aprendizaje automático y redes neuronales de aprendizaje profundo en el entorno del navegador o del Node. También ayuda a los desarrolladores a desarrollar modelos ML en lenguaje JavaScript y puede usar ML directamente en el navegador o en Node.js.

La función tf.layers.separableCov2d() es una convolución separable, que es una forma de factorizar un kernel de convolución en dos kernels más pequeños. La convolución separable consiste en una convolución en profundidad y una convolución en punto que mezcla los canales de salida resultantes. El argumento depthMultiplier controla cuántos canales de salida se generan por canal de entrada en el paso de profundidad. separableCov2d es una convolución 2D separable en profundidad. 

Sintaxis: 

tf.layers.separableCov2d( args )

Parámetros:

  • args: Acepta objetos como parámetros con los siguientes campos:
    • depthMultiplier: Es el número de canales de salida de convolución en profundidad para cada canal de entrada. Es igual a filterIn * depthMultiplier. 
    • depthwiseInitializer: es el inicializador de la array del núcleo de profundidad.
    • pointwiseInitializer: es el inicializador de la array de kernel pointwise.
    • depthwiseRegularizer: es una función de regularización aplicada a la array del núcleo de profundidad.
    • pointwiseRegularizer: Es una función regularizadora aplicada a la array del kernel pointwise.
    • depthwiseConstraint: Es una función de restricción aplicada a la array del núcleo en profundidad.
    • pointwiseConstraint: Es una función de restricción aplicada a la array de kernel pointwise.
    • filtros: Es la dimensionalidad del espacio de salida.
    • kernelSize: Es una dimensión que tendrá la ventana de convolución.
    • zancadas: Son zancadas de la capa de convolución en cada dimensión. 
    • relleno: debe ser ‘válido’, ‘igual’ y ‘causal’. Define el modo de relleno. 
    • dataFormat: Define el formato de los datos, lo que indica el orden de las dimensiones en las entradas.
    • dilationRate: la tasa de dilatación a la que debe dilatarse la capa de convolución en cada dimensión.
    • activación: Es la función de Activación de la capa. Si no especifica la activación, no se aplica ninguna.
    • useBias: Define si la capa utiliza un vector de sesgo. El valor predeterminado es verdadero.
    • kernelInitializer: es el inicializador de la array de peso del kernel de convolución.
    • biasIntializer: Es el inicializador para el vector de polarización. 
    • kernelConstraint: Es una restricción para los pesos del kernel de convolución.
    • biasConstraint: Es una restricción para el vector de sesgo.
    • kernelRegularizer: Es una función regularizadora aplicada a la array de peso del kernel.
    • biasRegularizer: Es una función regularizadora aplicada al vector bias.
    • activityRegularizer: Es una función regularizadora aplicada a la activación.
    • inputShape: debe ser una array de números. Este campo se usa para crear una capa de entrada que se usa para insertarse antes de esta capa.
    • batchInputShape: debe ser una array de números. Este campo se usará si inputShape y este campo se proporcionan como un parámetro para crear la capa de entrada que se usa para insertar antes de esta capa.
    • tamaño del lote: debe ser un número. En ausencia de batchInputShape, este campo se usa para crear batchInputShape con inputShape. batchInputShape : [ tamaño del lote , … forma de entrada ].
    • dtype: si esta capa se usa como capa de entrada, este campo se usa como el tipo de datos para esta capa.
    • nombre: Debe ser un tipo de string. este campo define el nombre de esta capa.
    • entrenable: debe ser booleano. Este campo define si los pesos de esta capa se pueden entrenar con ajuste o no.
    • pesos: Este debería ser un tensor que defina el valor de peso inicial para esta capa.
    • inputDType: este es un tipo de datos que se utiliza para el soporte heredado.

Devoluciones: Devuelve SeparableConv2D.

Ejemplo 1:

Javascript

import * as tf from "@tensorflow/tfjs";
  
// InputShape and Input layer for convLstm2dCell layer
const InputShape = [ 4,  5, 2];
const input = tf.input({ shape: InputShape });
  
// Creating ConvLstm2dCell 
const separableConv2d = tf.layers.separableConv2d(
    { filters: 3, kernelSize: 2, batchInputShape: [ 4, 5, 3]});
const output = separableConv2d.apply(input);
  
// Printing summary of layers
const model = tf.model({ inputs: input, outputs: output });
model.summary();

Producción:

__________________________________________________________________________________________
Layer (type)                Input Shape               Output shape              Param #   
==========================================================================================
input12 (InputLayer)        [[null,4,5,2]]            [null,4,5,2]              0         
__________________________________________________________________________________________
separable_conv2d_SeparableC [[null,4,5,2]]            [null,3,4,3]              17        
==========================================================================================
Total params: 17
Trainable params: 17
Non-trainable params: 0
__________________________________________________________________________________________

Ejemplo 2:

Javascript

// Import the header file
import * as tf from "@tensorflow/tfjs"
  
// Creating seprableConv2d layer
const seprableConv2d = tf.layers.separableConv2d({ 
    filters : 2, 
    kernelSize: 3,
    batchInputShape: [2, 3, 5, 5]
});
  
// Create an input with 2 time steps.
const input = tf.input({shape: [3, 4, 5]});
const output = seprableConv2d.apply(input);
  
// Printing the Shape of file
console.log(JSON.stringify(output.shape));

Producción:

[null,1,2,2]

Referencia: https://js.tensorflow.org/api/latest/#layers.separableConv2d

Publicación traducida automáticamente

Artículo escrito por satyam00so 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 *