📜  Tensorflow.js tf.layers dispose() 方法

📅  最后修改于: 2022-05-13 01:56:21.609000             🧑  作者: Mango

Tensorflow.js tf.layers dispose() 方法

Tensorflow.js 是由谷歌开发的开源库,用于在浏览器或节点环境中运行机器学习模型以及深度学习神经网络。

dispose()函数用于处理所述层的权重。此外,它通过一个减少了所述层对象的引用计数。

笔记:

  • 这里,一个层被引用计数。其中,第一次调用其apply()方法以及通过调用 tf.SymbolicTensor 上的apply()方法成为新节点的一个段时,它的引用号会被提高。
  • 在这里,当一个层的参考编号变为零时,它的每一个权重都将被释放,并且基本内存,即在WebGL中分配的纹理也将被清除。
  • 当层的引用计数在扣除后大于零时,将不会处理层权重。
  • 最后,当一个 Layer 被释放时,它不能再在apply()getWeights()setWeights()等调用中使用。

句法:

dispose()

参数:

此方法没有参数。

返回值:它返回DisposeResult

示例 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: 1, inputShape: [3]}));
  
// Calling dispose method
const val = model.layers[0].dispose();
  
// Printing output
console.log(val);


Javascript
// Importing the tensorflow.js library
//import * as tf from "@tensorflow/tfjs"
  
// Creating a model
const model = tf.sequential();
  
// Adding layers
model.add(tf.layers.dense({units: 1, inputShape: [5, 1]}));
model.add(tf.layers.dense({units: 4}));
model.add(tf.layers.dense({units: 2, inputShape: [6], batchSize: 5}));
  
// Calling dispose() method
const val1 = model.layers[0].dispose();
const val2 = model.layers[1].dispose();
const val3 = model.layers[2].dispose();
  
// Printing output
console.log(val1);
console.log(val2);
console.log(val3);


输出:

{
  "refCountAfterDispose": 0,
  "numDisposedVariables": 2
}

示例 2:

Javascript

// Importing the tensorflow.js library
//import * as tf from "@tensorflow/tfjs"
  
// Creating a model
const model = tf.sequential();
  
// Adding layers
model.add(tf.layers.dense({units: 1, inputShape: [5, 1]}));
model.add(tf.layers.dense({units: 4}));
model.add(tf.layers.dense({units: 2, inputShape: [6], batchSize: 5}));
  
// Calling dispose() method
const val1 = model.layers[0].dispose();
const val2 = model.layers[1].dispose();
const val3 = model.layers[2].dispose();
  
// Printing output
console.log(val1);
console.log(val2);
console.log(val3);

输出:

{
  "refCountAfterDispose": 0,
  "numDisposedVariables": 2
}
{
  "refCountAfterDispose": 0,
  "numDisposedVariables": 2
}
{
  "refCountAfterDispose": 0,
  "numDisposedVariables": 2
}

参考: https://js.tensorflow.org/api/latest/#tf.layers.Layer.dispose