Tensorflow.js是Google開發的開源庫,用於在瀏覽器或節點環境中運行機器學習模型和深度學習神經網絡。
Tensorflow.jstf.Sequential 類的 .fit() 方法用於訓練模型的固定次數(數據集上的迭代)。
用法:
model.fit( x, y, args?);
參數:此方法接受以下參數:
- x:tf.Tensor 包含所有輸入數據。
- y:tf.Tensor 包含所有輸出數據。
- args:它是對象類型,它的變量如下:
- batchSize:它定義了將通過訓練傳播的樣本數量。
- epochs:它定義了訓練數據數組的迭代。
- verbose:它有助於顯示每個時期的進度。
如果值為 0 - 表示在 fit() 調用期間沒有打印消息。如果值為 1 - 這意味著在 Node-js 中,它會打印進度條。在瀏覽器中它不顯示任何操作。值 1 是默認值。 2 - 值 2 尚未實現。 - callbacks:它定義了在訓練期間要調用的回調列表。變量可以有一個或多個這些回調onTrainBegin()、onTrainEnd()、onEpochBegin()、onEpochEnd()、onBatchBegin()、onBatchEnd()、onYield()。
- validationSplit:用戶可以輕鬆地將訓練數據集拆分為訓練和驗證。
例如:如果它的值為 validation-Split = 0.5 ,則表示使用 shuffle 前最後 50% 的數據進行驗證。 - validationData:它用於在最終模型之間進行選擇時給出最終模型的估計。
- shuffle:該值定義了每個時期之前數據的洗牌。當 stepsPerEpoch 不為空時,它不起作用。
- classWeight:它用於對損失函數進行加權。告訴模型更多地關注來自 under-represented 類的樣本會很有用。
- sampleWeight:它是應用於每個樣本的模型損失的權重數組。
- initialEpoch:它是值定義開始訓練的時期。它對於恢複之前的訓練運行很有用。
- stepsPerEpoch:它在宣布一個 epoch 完成並開始下一個 epoch 之前定義了樣本的批次數。如果未確定,則等於 1。
- validationSteps:如果指定了 stepsPerEpoch,則相關。停止前要驗證的總步數。
- yieldEvery:它定義了將主線程交給其他任務的頻率的配置。它可以是自動的,這意味著屈服發生在一定的幀率下。批次,如果值是這個,它會產生每批。 epoch,如果值是這個,它產生每個紀元。任何數字,如果值為任何數字,則每毫秒產生一次。從不,如果值為這個,則永遠不會產生。
返回值:承諾<曆史>
範例1:在這個例子中,我們將在默認配置下訓練我們的模型。
Javascript
import * as tf from "@tensorflow/tfjs"
// Creating model
const model = tf.sequential( ) ;
// Adding layer to model
const config = {units:1, inputShape:[1]}
const x = tf.layers.dense(config);
model.add(x);
// Compiling the model
const config2 = {optimizer:'sgd', loss:'meanSquaredError'}
model.compile(config2);
// Tensor for training
const xs = tf.tensor2d([1, 1.2,1.65, 1.29, 1.4, 1.7], [6, 1]);
const ys = tf.tensor2d([1, 0.07,0.17, 0.29, 0.43, 1.02], [6, 1]);
// Training the model
const Tm = await model.fit(xs, ys);
// Printing the loss after training
console.log("Loss " + ":" + Tm.history.loss[0]);
輸出:
Loss after Epoch :2.8400533199310303
範例2:在這個例子中,我們將通過進行一些配置來訓練我們的模型。
Javascript
import * as tf from "@tensorflow/tfjs"
// Creating model
const Model = tf.sequential( ) ;
// Adding layer to model
const config = {units:4, inputShape:[2],
activation:"sigmoid"}
const x = tf.layers.dense(config);
Model.add(x);
const config2 = {units:3,
activation:"sigmoid"}
const y = tf.layers.dense(config2);
Model.add(y);
// Compiling the model
const sgdOpt = tf.train.sgd(0.6)
const config3 = {optimizer:'sgd', loss:'meanSquaredError'}
Model.compile(config3);
// Test Tensor
const xs = tf.tensor2d([ [0.3, 0.24],
[0.12, 0.73],
[0.9, 0.54]
]);
const ys = tf.tensor2d([ [0.43, 0.5, 0.92],
[0.1, 0.39, 0.12],
[0.76, 0.4, 0.92]
]);
// Treaining the model
for( let i = 0; i < 5; i++){
const config = { suffle:true, epoch:10 }
const Tm = await Model.fit(xs, ys, config);
// Printing the loss after training
console.log("Loss " + ":" + Tm.history.loss[0]);
}
輸出:
Loss :0.1362573206424713 Loss :0.13617873191833496 Loss :0.13610021770000458 Loss :0.13602176308631897 Loss :0.13594339787960052
參考: https://js.tensorflow.org/api/3.8.0/#tf.Sequential.fit
相關用法
- Tensorflow.js tf.LayersModel.fit()用法及代碼示例
- Tensorflow.js tf.Tensor.buffer()用法及代碼示例
- Java String repeat()用法及代碼示例
- Tensorflow.js tf.LayersModel.evaluate()用法及代碼示例
- Tensorflow.js tf.data.Dataset.batch()用法及代碼示例
注:本文由純淨天空篩選整理自satyam00so大神的英文原創作品 Tensorflow.js tf.Sequential class .fit() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。