Tensorflow.js tf.Sequential 类 .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: 3, inputShape: [40]})]
});
// Compiling model
modl.compile({optimizer: 'sgd', loss: 'meanAbsoluteError'});
// Calling evaluate() and randomNormal
// method
const output = modl.evaluate(
tf.randomNormal([5, 40]),
tf.randomNormal([5, 3]),
{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: 2, inputShape: [30]})]
});
// Compiling model
modl.compile({optimizer: 'adam', loss: 'meanSquaredError'},
(metrics = ["accuracy"]));
// Calling evaluate() and truncatedNormal
// method
const output = modl.evaluate(
tf.truncatedNormal([6, 30]), tf.truncatedNormal([6, 2]),
{Sizeofbatch: 2}, {steps: 2});
// Printing output
output.print();
输出:
Tensor
1.554270625114441
这里,randomNormal() 方法用作张量输入。
示例 2:使用优化器作为“ adam ”,使用损失作为“ meanSquaredError ”和“ accuracy ”作为指标。
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: 'adam', loss: 'meanSquaredError'},
(metrics = ["accuracy"]));
// Calling evaluate() and truncatedNormal
// method
const output = modl.evaluate(
tf.truncatedNormal([6, 30]), tf.truncatedNormal([6, 2]),
{Sizeofbatch: 2}, {steps: 2});
// Printing output
output.print();
输出:
Tensor
2.7340292930603027
这里, truncatedNormal() 方法用作张量输入,还包括步长参数。
参考: https://js.tensorflow.org/api/latest/#tf.Sequential.evaluate