📜  Tensorflow.js tf.Sequential 类 .trainOnBatch() 方法

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

Tensorflow.js tf.Sequential 类 .trainOnBatch() 方法

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

.trainOnBatch()函数用于对特定批次的数据运行单独的梯度更新。

笔记:

该方法与fit () 和fitDataset () 有以下不同:

  • 这种方法绝对适用于一批数据。
  • 此方法仅返回损失和度量值,而不是逐批返回损失和度量值。
  • 此方法不支持详细程度和回调等细粒度选项。

句法:

trainOnBatch(x, y)

参数:

  • x:规定的输入数据。它可以是 tf.Tensor、tf.Tensor[] 或 {[inputName: 字符串]: tf.Tensor} 类型。它可以是以下任何一种:
    1. 一个声明的 tf.Tensor,或者如果声明的模型拥有多个输入,则为一个 tf.Tensor 数组。
    2. 一个对象将输入名称绘制到匹配的 tf.Tensor,以防所述模型拥有命名输入。
  • y:规定的目标数据。它可以是 tf.Tensor、tf.Tensor[] 或 {[inputName: 字符串]: tf.Tensor} 类型。它必须是关于 x 的常数。

返回值:返回 number 或 number[] 的 promise。

示例 1:

Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Training Model 
const gfg = tf.sequential();
    
// Adding layer to model  
const layer = tf.layers.dense({units:3, 
               inputShape : [5]});
   gfg.add(layer);
      
// Compiling our model 
const config = {optimizer:'sgd', 
              loss:'meanSquaredError'};
  gfg.compile(config);
  
// Test tensor and target tensor
const xs = tf.ones([3, 5]);
const ys = tf.ones([3, 3]);
      
// Calling trainOneBatch() method
const result = await gfg.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 gfg = tf.sequential();
    
  // Adding layer to model  
  const layer = tf.layers.dense({units:2, 
               inputShape : [2]});
  gfg.add(layer);
      
  // Compiling our model 
  const config = {optimizer:'sgd', 
              loss:'meanSquaredError'};
  gfg.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 gfg.trainOnBatch(xs, ys);
  
  // Printing output
  console.log(JSON.stringify(+result));
}
    
// Function call
await run();


输出:

0.3589147925376892

示例 2:

Javascript

// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
async function run() {
  
  // Training Model 
  const gfg = tf.sequential();
    
  // Adding layer to model  
  const layer = tf.layers.dense({units:2, 
               inputShape : [2]});
  gfg.add(layer);
      
  // Compiling our model 
  const config = {optimizer:'sgd', 
              loss:'meanSquaredError'};
  gfg.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 gfg.trainOnBatch(xs, ys);
  
  // Printing output
  console.log(JSON.stringify(+result));
}
    
// Function call
await run();

输出:

1.6889342069625854

参考: https://js.tensorflow.org/api/latest/#tf.Sequential.trainOnBatch