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


Tensorflow.js tf.Sequential.evaluateDataset()用法及代碼示例


Tensorflow.js是由Google開發的開源庫,用於在瀏覽器或節點環境中運行機器學習模型以及深度學習神經網絡。

.evaluateDataset() 函數用於通過指定的數據集對象評估指定的順序模型。

注意:此方法與 evaluate() 不同,因為它是異步的。

用法:

evaluateDataset(dataset, args?)


Parameters: 

  • dataset:指定的數據集對象。等待其 iterator() 方法以生成數據集迭代器對象,等待其 next() 方法生成用於評估的數據批次。此外,next() 調用的返回值必須包含一個布爾值done場以及value場地。其中,值字段可能是兩個 tf.Tensor 的數組,或者是兩個嵌套的 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);
  
// Training Model 
const gfg = tf.sequential();
    
// Adding layer to model  
const layer = tf.layers.dense({units:1, 
               inputShape:[8]});
   gfg.add(layer);
      
// Compiling our model 
const config = {optimizer:'sgd', 
              loss:'meanSquaredError'};
  gfg.compile(config);
  
// Calling evaluateDataset() method
const res = await gfg.evaluateDataset(Dataset_xy, 
tf.ones([7, 10]), tf.ones([7, 1]), {
   batchSize:5,
});
  
// Printing output
res.print();

輸出:

Tensor
    2.9478049278259277

範例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);
  
// Training Model 
const gfg = tf.sequential();
    
// Adding layer to model  
const layer = tf.layers.dense({units:1, 
    inputShape:[5], activation:'sigmoid'});
  
gfg.add(layer);
      
// Compiling our model 
const config = {optimizer:'sgd', 
              loss:'meanSquaredError'};
  
gfg.compile(config);
  
// Calling evaluateDataset() method
const res = await gfg.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":7097},
"id":4731,"rankType":"0","scopeId":4352}

參考: https://js.tensorflow.org/api/latest/#tf.Sequential.evaluateDataset




相關用法


注:本文由純淨天空篩選整理自nidhi1352singh大神的英文原創作品 Tensorflow.js tf.Sequential class .evaluateDataset() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。