Tensorflow.js tf.LayersModel 类 .evaluate() 方法
Tensorflow.js 是一个由谷歌开发的开源库,用于在浏览器或节点环境中运行机器学习模型以及深度学习神经网络。
.evaluate()函数用于在测试方法中找到有利于原型的损失度量和度量值。
笔记:
- 在这里,损失值和指标是在编译时确定的,这需要在调用 evaluate() 方法之前进行。
- 这里,枚举是分组进行的。
句法:
evaluate(x, y, args?)
参数:
- x:它是指定的测试材料的 tf.Tensor,或者是一个 tf.Tensor 数组,以防原型有各种输入。它可以是 tf.Tensor 或 tf.Tensor[] 类型。
- y:它是指定的目标材料的 tf.Tensor,或者是一个 tf.Tensor 数组,以防原型有各种输入。它可以是 tf.Tensor 或 tf.Tensor[] 类型。
- args:据说ModelEvaluateArgs包含选修字段。它是一个对象。
- batchSize:它是规定的批量大小,如果未定义,则默认值为 32。它是数字类型。
- 详细:这是规定的详细模式。它是ModelLoggingVerbosity类型。
- sampleWeight:它是权重的规定张量,以便将各种实例的参与权重到损失和指标。它是 Tf.tensor 类型。
- 步骤:它是在宣布估计轮终止之前的步骤总数,即实例组。它被忽略,默认值为 unspecified。它是数字类型。
返回值:返回 tf.Scalar 或 tf.Scalar[]。
示例 1:将优化器用作“sgd”,将损失用作“meanAbsoluteError”。
Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
// Defining model
const modl = tf.sequential({
layers: [tf.layers.dense({units: 2, inputShape: [30]})]
});
// Compiling model
modl.compile({optimizer: 'sgd', loss: 'meanAbsoluteError'});
// Calling evaluate() and randomNormal
// method
const output = modl.evaluate(
tf.randomNormal([8, 30]),
tf.randomNormal([8, 2]),
{Sizeofbatch: 3}
);
// Printing output
output.print();
Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
// Defining model
const modl = tf.sequential({
layers: [tf.layers.dense({units: 1, inputShape: [20]})]
});
// Compiling model
modl.compile({optimizer: 'adam', loss: 'meanSquaredError'},
(metrics = ["accuracy"]));
// Calling evaluate() and truncatedNormal
// method
const output = modl.evaluate(
tf.truncatedNormal([8, 20]), tf.truncatedNormal([8, 1]),
{Sizeofbatch: 3}, {steps: 2});
// Printing output
output.print();
输出:这里使用randomNormal()方法作为张量输入。
Tensor
1.1059763431549072
示例 2:将优化器用作“adam”,将损失用作“meanSquaredError”,将“准确度”用作指标。
Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
// Defining model
const modl = tf.sequential({
layers: [tf.layers.dense({units: 1, inputShape: [20]})]
});
// Compiling model
modl.compile({optimizer: 'adam', loss: 'meanSquaredError'},
(metrics = ["accuracy"]));
// Calling evaluate() and truncatedNormal
// method
const output = modl.evaluate(
tf.truncatedNormal([8, 20]), tf.truncatedNormal([8, 1]),
{Sizeofbatch: 3}, {steps: 2});
// Printing output
output.print();
输出:这里使用truncatedNormal()方法作为张量输入,还包括step参数。
Tensor
1.2484867572784424
参考: https://js.tensorflow.org/api/latest/#tf.LayersModel.evaluate