📅  最后修改于: 2023-12-03 15:20:35.146000             🧑  作者: Mango
在TensorFlow.js中,使用tf.LayersModel类的evaluate()方法可以对模型进行评估。
evaluate(
x: Tensor|Tensor[]|{[inputName: string]: Tensor},
y?: Tensor|Tensor[]|{[outputName: string]: Tensor},
config?: ModelEvaluateConfig
): Scalar|Scalar[]
参数:
x
: 输入数据张量 Tensor
或 Tensor
数组,或者是一个对象,其 inputName
属性指向其对应的输入张量。y
: 标签数据张量 Tensor
或 Tensor
数组,或者是一个对象,其 outputName
属性指向其对应的标签张量。可选项。config
: 一个包含评估配置的对象。可选项。返回值:
Scalar
,否则返回 Scalar
数组。import * as tf from '@tensorflow/tfjs';
// 定义模型
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
// 准备训练数据
const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);
// 训练模型
model.fit(xs, ys, {epochs: 10}).then(() => {
// 对模型进行评估
const xTest = tf.tensor2d([5], [1, 1]);
const yTest = tf.tensor2d([9], [1, 1]);
const result = model.evaluate(xTest, yTest);
result.print();
});
以上代码定义了一个简单的线性回归模型,并使用训练数据对其进行训练。然后使用 evaluate() 方法对模型进行评估,传入一个输入张量和一个标签张量,返回一个 Scalar
,表示该模型在输入和标签数据下的误差。
在此示例中,输出应该接近于 4.0,即为预测值与真实值的均方误差。
evaluate()
方法是一个异步方法,返回一个Promise对象。当评估操作完成时,Promise对象被解析为一个值(Scalar 或 Scalar 数组)。可以通过使用 .then()
或 await
语句处理异步返回结果。