示例 1 訓練
訓練函式
async function trainModel(model, inputs, labels, surface) {
const batchSize = 25;
const epochs = 100;
const callbacks = tfvis.show.fitCallbacks(surface, ['loss'], {callbacks:['onEpochEnd']})
return await model.fit(inputs, labels,
{batchSize, epochs, shuffle:true, callbacks:callbacks}
);
}
epochs 定義模型將進行多少次迭代(迴圈)。
model.fit 是執行迴圈的函式。
callbacks 定義了當模型需要重繪圖形時要呼叫的回撥函式。
測試模型
訓練好模型後,對其進行測試和評估非常重要。
我們透過檢查模型對一系列不同輸入的預測來實現這一點。
但是,在此之前,我們必須對資料進行反歸一化。
反歸一化
let unX = tf.linspace(0, 1, 100);
let unY = model.predict(unX.reshape([100, 1]));
const unNormunX = unX.mul(inputMax.sub(inputMin)).add(inputMin);
const unNormunY = unY.mul(labelMax.sub(labelMin)).add(labelMin);
unX = unNormunX.dataSync();
unY = unNormunY.dataSync();
然後我們可以檢視結果。
繪製結果
const predicted = Array.from(unX).map((val, i) =>
{return {x: val, y: unY[i]}}
});
// 繪製結果
tfPlot([values, predicted], surface1)