当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Tensorflow.js tf.LayersModel.evaluateDataset()用法及代码示例


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

.evaluateDataset() 函数用于通过指定的数据集对象评估指定的模型。

注意:此方法与 evaluate() 不同,因为它是异步的。

用法:

evaluateDataset(dataset, args?)


Parameters: 

  • dataset:指定的数据集对象。等待其 iterator() 方法以生成数据集迭代器对象,等待其 next() 方法生成用于评估的数据批次。此外,next() 调用的返回值必须包含一个布尔值字段和值字段。其中 value 字段可能是两个 tf.Tensors 的数组,或者是两个嵌套的 tf.Tensor 构建的数组。第一种情况适用于只有一个输入和一个输出的模型,即序列模型。后一种情况有利于模型以及多个输入和/或多个输出。在数组中的两个元素中,第一个是输入特征,第二个是输出目标。它是 tf.data.Dataset 类型。
  • args:支持基于数据集的评估的所述配置对象。它是可选的并且是对象类型。以下参数属于它:
    1. batches:在终止评估之前要从给定数据集对象中拖动的指定批次数。它是类型号。
    2. verbose:规定的详细模式。它是 ModelLoggingVerbosity 类型。

返回值:它返回 tf.Scalar 或 tf.Scalar[] 的承诺。

范例1:

Javascript


// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Defining an array x
const Array_x = [
   [1, 1, 1, 1, 1, 1, 1, 1],
   [1, 1, 1, 1, 1, 1, 1, 1],
   [1, 1, 1, 1, 1, 1, 1, 1],
   [1, 1, 1, 1, 1, 1, 1, 1],
];
  
// Defining an array y
const Array_y = [1, 1, 1, 1];
  
// Defining dataset of x
const Dataset_x = tf.data.array(Array_x);
  
// Defining dataset of y
const Dataset_y = tf.data.array(Array_y);
  
// Defining dataset of xy using zip method
const Dataset_xy = tf.data.zip({xs:Dataset_x, ys:Dataset_y})
     .batch(5)
     .shuffle(3);
  
// Defining model
const mymodel = tf.sequential({
   layers:[tf.layers.dense({units:1, inputShape:[8]})]
});
  
// Compiling model
mymodel.compile({optimizer:'sgd', loss:'meanSquaredError'});
  
// Calling evaluateDataset() method
const res = await mymodel.evaluateDataset(Dataset_xy, 
tf.ones([7, 10]), tf.ones([7, 1]), {
   batchSize:5,
});
  
// Printing output
res.print();

输出:

Tensor
    0.9196577668190002

范例2:

Javascript


// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Defining dataset of xy using zip method
const Dataset_xy = tf.data.zip({
    xs:tf.data.array([[1, 0, 1, 2, 1]]), 
    ys:tf.data.array([1, 2, 1, 3])})
    .batch(8);
  
// Defining model
const mymodel = tf.sequential({
   layers:[tf.layers.dense(
      {units:1, inputShape:[5], activation:'sigmoid'})
   ]
});
  
// Compiling model
mymodel.compile({optimizer:'sgd', loss:'meanSquaredError'});
  
// Calling evaluateDataset() method
const res = await mymodel.evaluateDataset(
    Dataset_xy, tf.truncatedNormal([7, 10]), 
        tf.randomNormal([7, 1]), 
        {batchSize:2, steps:1}
    );
  
// Printing output
console.log(JSON.stringify(res));

输出:

{"kept":false,"isDisposedInternal":false,"shape":[],"dtype":"float32",
"size":1,"strides":[],"dataId":{"id":6923},"id":4594,
"rankType":"0","scopeId":4223}

参考:https://js.tensorflow.org/api/latest/#tf.LayersModel.evaluateDataset




相关用法


注:本文由纯净天空筛选整理自nidhi1352singh大神的英文原创作品 Tensorflow.js tf.LayersModel class .evaluateDataset() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。