Método Tensorflow.js tf.layers addWeight()

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 .addWeight() se usa para agregar una variable de peso a la capa indicada.

Sintaxis:

addWeight(name, shape, dtype?, initializer?, 
               regularizer?, trainable?, constraint?)

Parámetros:

  • nombre: Es el nombre indicado de la nueva variable de peso y es de tipo string.
  • forma: Es la forma indicada del peso. Es de tipo (nulo | número)[].
  • dtype: Es el tipo de datos declarado del peso. Es opcional y puede ser de tipo float32, int32, bool, complex64 o string.
  • initializer: Es la instancia del inicializador indicado. Es opcional y es de tipo tf.initializers.Initializer.
  • regularizador: Es la instancia de regularizador indicada. Es opcional y es de tipo Regularizador.
  • entrenable: establece si el peso debe ser instruido a través de backprop o no, asumiendo que la capa en sí es igualmente entrenable. Es opcional y es de tipo booleano.
  • restricción: Es un entrenable opcional y es de tipo tf.constraints.Constraint.

Valor devuelto: Devuelve LayerVariable .

Ejemplo 1:

Javascript

// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Creating a model
const model = tf.sequential();
  
// Adding a layer
model.add(tf.layers.dense({units: 2, inputShape: [1]}));
  
// Calling addWeight() method
const res = model.layers[0].addWeight('wt_var', 
        [1, 5], 'int32', tf.initializers.ones());
  
// Printing output
console.log(res);
model.layers[0].getWeights()[0].print();

Producción:

{
  "dtype": "int32",
  "shape": [
    1,
    5
  ],
  "id": 1582,
  "originalName": "wt_var",
  "name": "wt_var_2",
  "trainable_": true,
  "constraint": null,
  "val": {
    "kept": false,
    "isDisposedInternal": false,
    "shape": [
      1,
      5
    ],
    "dtype": "int32",
    "size": 5,
    "strides": [
      5
    ],
    "dataId": {
      "id": 2452
    },
    "id": 2747,
    "rankType": "2",
    "trainable": true,
    "name": "wt_var_2"
  }
}
Tensor
     [[0.139703, 0.9717236],]

Aquí, el método getWeights() se usa para imprimir los pesos de la capa especificada.

Ejemplo 2:

Javascript

// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Creating a model
const model = tf.sequential();
  
// Adding a layer
model.add(tf.layers.dense({units: 2, inputShape: [1]}));
model.add(tf.layers.dense({units: 3}));
  
// Calling addWeight() method
const res1 = model.layers[0].addWeight('w_v', 
    [1.2, 1.3], 'float32', tf.initializers.zeros(), true);
  
const res2 = model.layers[1].addWeight('wv', 
    ["a", "b"], 'int32', tf.initializers.ones(), false);
  
// Printing outputs
console.log(res1);
console.log(res2);
model.layers[0].getWeights()[0].print();
model.layers[1].getWeights()[0].print();

Producción:

{
  "dtype": "float32",
  "shape": [
    1.2,
    1.3
  ],
  "id": 7,
  "originalName": "w_v",
  "name": "w_v",
  "trainable_": true,
  "constraint": null,
  "val": {
    "kept": false,
    "isDisposedInternal": false,
    "shape": [
      1.2,
      1.3
    ],
    "dtype": "float32",
    "size": 1.56,
    "strides": [
      1.3
    ],
    "dataId": {
      "id": 4
    },
    "id": 9,
    "rankType": "2",
    "trainable": true,
    "name": "w_v"
  }
}
{
  "dtype": "int32",
  "shape": [
    "a",
    "b"
  ],
  "id": 8,
  "originalName": "wv",
  "name": "wv",
  "trainable_": true,
  "constraint": null,
  "val": {
    "kept": false,
    "isDisposedInternal": false,
    "shape": [
      "a",
      "b"
    ],
    "dtype": "int32",
    "size": null,
    "strides": [
      "b"
    ],
    "dataId": {
      "id": 5
    },
    "id": 11,
    "rankType": "2",
    "trainable": true,
    "name": "wv"
  }
}
Tensor
     [[0.835237, 0.960075],]
Tensor
    [[0.4747705 , -0.6734858, 1.1417971],
     [-0.8185477, 0.1940626 , -0.98313 ]]

Aquí, el método tf.initializers.zeros() se usa para producir tensores que se inicializan en cero y el método tf.initializers.ones() se usa para producir tensores que se inicializan en uno.

Referencia: https://js.tensorflow.org/api/latest/#tf.layers.Layer.addWeight

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 *