Tensorflow.js tf.LayersModel 类 .trainOnBatch() 方法
Tensorflow.js 是由谷歌开发的开源库,用于在浏览器或节点环境中运行机器学习模型以及深度学习神经网络。
.trainOnBatch()函数用于对特定批次的数据运行单独的梯度更新。
注意:此方法与fit () 以及fitDataset () 有以下不同:
- 这种方法绝对适用于一批数据。
- 此方法仅返回损失和度量值,而不是逐批返回损失和度量值。
- 此方法不支持详细程度和回调等细粒度选项。
句法:
trainOnBatch(x, y)
参数:
- x:规定的输入数据。它可以是 tf.Tensor、tf.Tensor[] 或 {[inputName: 字符串]: tf.Tensor} 类型。它可以是以下任何一种:
- 一个声明的 tf.Tensor,或者如果声明的模型拥有多个输入,则为一个 tf.Tensor 数组。
- 一个对象将输入名称绘制到匹配的 tf.Tensor,以防所述模型拥有命名输入。
- y:规定的目标数据。它可以是 tf.Tensor、tf.Tensor[] 或 {[inputName: 字符串]: tf.Tensor} 类型。它对于x必须是常数。
返回值:返回数字或数字[]的承诺。
示例 1:
Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
// Training Model
const mymodel = tf.sequential(
{layers: [tf.layers.dense({units: 2, inputShape: [2]})]});
// Compiling our model
const config = {optimizer:'sgd',
loss:'meanSquaredError'};
mymodel.compile(config);
// Test tensor and target tensor
const xs = tf.ones([3,2]);
const ys = tf.ones([3,2]);
// Calling trainOneBatch() method
const result = await mymodel.trainOnBatch(xs, ys);
// Printing output
console.log(result);
Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
async function run() {
// Training Model
const mymodel = tf.sequential(
{layers: [tf.layers.dense({units: 2, inputShape: [2],
activation: 'sigmoid'})]});
// Compiling our model
const config = {optimizer:'sgd',
loss:'meanSquaredError'};
mymodel.compile(config);
// Test tensor and target tensor
const xs = tf.truncatedNormal([3,2]);
const ys = tf.randomNormal([3,2]);
// Calling trainOneBatch() method
const result = await mymodel.trainOnBatch(xs, ys);
// Printing output
console.log(JSON.stringify(+result));
}
// Function call
await run();
输出:
2.0696773529052734
示例 2:
Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
async function run() {
// Training Model
const mymodel = tf.sequential(
{layers: [tf.layers.dense({units: 2, inputShape: [2],
activation: 'sigmoid'})]});
// Compiling our model
const config = {optimizer:'sgd',
loss:'meanSquaredError'};
mymodel.compile(config);
// Test tensor and target tensor
const xs = tf.truncatedNormal([3,2]);
const ys = tf.randomNormal([3,2]);
// Calling trainOneBatch() method
const result = await mymodel.trainOnBatch(xs, ys);
// Printing output
console.log(JSON.stringify(+result));
}
// Function call
await run();
输出:
0.5935208797454834
参考: https://js.tensorflow.org/api/latest/#tf.LayersModel.trainOnBatch