Tensorflow.js tf.layers.dropout()函数
Tensorflow.js 是谷歌开发的一个开源库,用于在浏览器或节点环境中运行机器学习模型和深度学习神经网络。
tf.layers.dropout()函数是Tensorflow.js库的内置函数。此函数用于通过在训练期间的每次更新时将输入单元的分数率随机设置为 0 来防止模型中的过度拟合。
句法:
tf.layers.dropout( {rate} )
参数:
- args:给定对象作为参数。
- rate:指定要丢弃的输入单元的比例。它的值介于 0 和 1 之间。
- noiseShape:表示将与输入相乘的 dropout 形状的整数列表。它是一个可选参数。
- 种子:指定随机种子。它是一个可选参数。
- inputShape:如果定义了这个参数,它将创建另一个输入层插入到该层之前。
- batchInputShape:如果定义了这个参数,它将创建另一个输入层插入到该层之前。
- batchSize:如果尚未指定,则用于构造 batchInputShape。
- dtype:指定该层的数据类型。此参数的默认值为“float32”。
- name:指定该层的名称。
- trainable:指定该层的权重是否通过fit更新。
- weights:指定层的初始权重值。
- inputDType:用于表示inputDType,它的值可以是'float32'或'int32'或'bool'或'complex64'或' 字符串'。
返回值:返回Dropout。
示例 1:我们将创建一个新模型并为其添加 dropout 层。
Javascript
// Importing the tensorflow.js library
const tf = require("@tensorflow/tfjs");
// Define the model
const model = tf.sequential({
layers: [tf.layers.dense({
units: 1, inputShape: [10]
})],
});
// Add dropout to model
model.add(tf.layers.dropout({ rate: 0.25 }));
// Compile the model
model.compile(
{ optimizer: "sgd", loss: "meanAbsoluteError" },
(metrics = ["accuracy"])
);
// Evaluate the model
const result = model.evaluate(
tf.ones([8, 10]), tf.ones([8, 1]), {
batchSize: 4,
});
// Print the resulting tensor
result.print();
Javascript
// Importing the tensorflow.js library
const tf = require("@tensorflow/tfjs");
// Define the model
const model = tf.sequential({
layers: [tf.layers.dense({
units: 1, inputShape: [10]
})],
});
// Add dropout to model
model.add(tf.layers.dropout({ rate: 0.5 }));
// Compile the model
model.compile({ optimizer: "adam",
loss: "meanSquaredError" });
// Evaluate the model
const result = model.evaluate(
tf.ones([8, 10]), tf.ones([8, 1]), {
batchSize: 2,
});
// Print the result
result.print();
输出:
Tensor
1.608272910118103
示例 2:
Javascript
// Importing the tensorflow.js library
const tf = require("@tensorflow/tfjs");
// Define the model
const model = tf.sequential({
layers: [tf.layers.dense({
units: 1, inputShape: [10]
})],
});
// Add dropout to model
model.add(tf.layers.dropout({ rate: 0.5 }));
// Compile the model
model.compile({ optimizer: "adam",
loss: "meanSquaredError" });
// Evaluate the model
const result = model.evaluate(
tf.ones([8, 10]), tf.ones([8, 1]), {
batchSize: 2,
});
// Print the result
result.print();
输出:
Tensor
0.9941154718399048
参考: https://js.tensorflow.org/api/latest/#layers.dropout