當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。