Tensorflow.js tf.initializers.varianceScaling()函数
Tensorflow.js是谷歌开发的一个开源库,用于在浏览器或节点环境中运行机器学习模型和深度学习神经网络。它还可以帮助开发人员用 JavaScript 语言开发 ML 模型,并且可以直接在浏览器或 Node.js 中使用 ML。
tf.initializers.varianceScaling()函数能够将其比例调整为权重的形状。使用 distribution=NORMAL 的值,样本是从中心为 0 的截断正态分布中抽取的, stddev = sqrt(scale / n)。请注意,n 的值变化如下:
- 如果 mode 的值 = FAN_IN,则它是张量权重中的输入数。
- 如果 mode 的值 = FAN_OUT,则它是张量权重中的输出数。
- 如果 mode 的值 = FAN_AVG,则它是张量权重中输出和输入的平均值。
句法:
tf.initializers.varianceScaling(arguments)
参数:它将一个对象作为参数,其中包含下面列出的 3 个键值:
- scale:它是比例因子。它是一个正浮点值。
- 模式:输出和输入的扇形模式。
- 分布:它是 值的概率分布。
- 种子:它 是随机数生成器种子。
返回值:它返回tf.initializers.Initializer
示例 1:
Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
// Initializing the .initializers.varianceScaling()
// function
let geek = tf.initializers.varianceScaling(33)
// Printing gain value
console.log(geek);
// Printing individual gain value.
console.log('\nIndividual values:\n');
console.log(geek.scale);
console.log(geek.mode);
console.log(geek.distribution);
Javascript
// Importing the tensorflow.Js library
import * as tf from "@tensorflow/tfjs
// Defining the input value
const inputValue = tf.input({shape:[4]});
// Initializing tf.initializers.varianceScaling() function
const funcValue = tf.initializers.varianceScaling(3)
// Creating dense layer 1
const dense_layer_1 = tf.layers.dense({
units: 5,
activation: 'relu',
kernelInitialize: funcValue
});
// Creating dense layer 2
const dense_layer_2 = tf.layers.dense({
units: 9,
activation: 'softmax'
});
// Output
const outputValue = dense_layer_2.apply(
dense_layer_1.apply(inputValue)
);
// Creation the model.
const model = tf.model({
inputs: inputValue,
outputs: outputValue
});
// Predicting the output.
model.predict(tf.ones([2, 4])).print();
输出:
{
"scale": 1,
"mode": "fanIn",
"distribution": "normal"
}
Individual values:
1
fanIn
normal
示例 2:
Javascript
// Importing the tensorflow.Js library
import * as tf from "@tensorflow/tfjs
// Defining the input value
const inputValue = tf.input({shape:[4]});
// Initializing tf.initializers.varianceScaling() function
const funcValue = tf.initializers.varianceScaling(3)
// Creating dense layer 1
const dense_layer_1 = tf.layers.dense({
units: 5,
activation: 'relu',
kernelInitialize: funcValue
});
// Creating dense layer 2
const dense_layer_2 = tf.layers.dense({
units: 9,
activation: 'softmax'
});
// Output
const outputValue = dense_layer_2.apply(
dense_layer_1.apply(inputValue)
);
// Creation the model.
const model = tf.model({
inputs: inputValue,
outputs: outputValue
});
// Predicting the output.
model.predict(tf.ones([2, 4])).print();
输出:
Tensor
[[0.0687333, 0.1549079, 0.0899771, 0.084183,
0.1593787, 0.1488634, 0.0884578, 0.073244, 0.1322549],
[0.0687333, 0.1549079, 0.0899771, 0.084183,
0.1593787, 0.1488634, 0.0884578, 0.073244, 0.1322549]]
参考: https://js.tensorflow.org/api/3.6.0/#initializers.varianceScaling