亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

TensorFlow.js機(jī)器學(xué)習(xí)預(yù)測鳶尾花種類

 更新時(shí)間:2022年11月21日 11:59:48   作者:.Thinking.  
TensorFlow.js是一個(gè)開源的基于硬件加速的JavaScript庫,用于訓(xùn)練和部署機(jī)器學(xué)習(xí)模型。本教程將會帶大家簡單了解和使用TensorFlow.js框架實(shí)現(xiàn)預(yù)測鳶尾花種類

一、加載IRIS數(shù)據(jù)集

創(chuàng)建index.html入口文件,跳轉(zhuǎn)到script主文件。

<script src="script.js"></script>

在script.js文件夾中利用預(yù)先準(zhǔn)備好的腳本生成鳶尾花數(shù)據(jù)集,包括訓(xùn)練集和驗(yàn)證集,并打印查看。

import {getIrisData, IRIS_CLASSES} from "./data.js";
window.onload = () => {
    // 加載數(shù)據(jù)
    const [xTrain, yTrain, xTest, yTest] = getIrisData(0.2);
    // 打印查看數(shù)據(jù)集
    xTrain.print();
    yTrain.print();
    xTest.print();
    yTest.print();
    // 打印鳶尾花種類類別
    console.log(IRIS_CLASSES);
}

getIrisData(0.2):獲取數(shù)據(jù)集的時(shí)候,將20%的數(shù)據(jù)當(dāng)成測試集,剩下的80%當(dāng)成訓(xùn)練集。

xTrain:訓(xùn)練集的特征值。

yTrain:訓(xùn)練集的目標(biāo)值。

xTest:驗(yàn)證集的特征值。

yTest:驗(yàn)證集的目標(biāo)值。

可以在控制臺查看到結(jié)果:

其中特征矩陣?yán)锩娴乃膫€(gè)值分別表示:花萼的長度、花萼的寬度、花瓣的長度、花瓣的寬度。

目標(biāo)值矩陣采用one-hot編碼形式。

二、定義模型結(jié)構(gòu)

初始化一個(gè)神經(jīng)網(wǎng)絡(luò)模型,為神經(jīng)網(wǎng)絡(luò)模型添加兩層,配置模型的損失函數(shù)、激活函數(shù)、優(yōu)化器、添加準(zhǔn)確度度量。

// 定義網(wǎng)絡(luò)模型
const model = tf.sequential();
// 添加隱藏層
model.add(tf.layers.dense({
    units: 10,
    inputShape: [xTrain.shape[1]],
    activation: 'relu'
}));
// 添加輸出層 
model.add(tf.layers.dense({
    units: 3,
    activation: 'softmax'
}));
// 配置模型
model.compile({
    loss: "categoricalCrossentropy",
    optimizer: tf.train.adam(0.1),
    metrics: ['accuracy']
});

三、訓(xùn)練模型并可視化

訓(xùn)練結(jié)果需要等待,所以采用異步方式訓(xùn)練。

await model.fit(xTrain, yTrain,{
    epochs: 100,
    batchSize: 32,
    validationData: [xTest, yTest],
    callbacks: tfvis.show.fitCallbacks(
         {name: '訓(xùn)練效果'},
         ['loss', 'val_loss', 'acc', 'val_acc'],
         {callbacks: ['onEpochEnd']}
    )
}); 

訓(xùn)練結(jié)果:

四、預(yù)測

編寫前端界面輸入待預(yù)測數(shù)據(jù),使用訓(xùn)練好的模型進(jìn)行預(yù)測,將輸出的Tensor轉(zhuǎn)成普通數(shù)據(jù)并顯示。

在index.html中編寫form表單,用來輸入預(yù)測數(shù)據(jù)。

<form action="" onsubmit="predict(this); return false">
    花萼長度:<input type="text" name="a"><br>
    花萼寬度:<input type="text" name="b"><br>
    花瓣長度:<input type="text" name="c"><br>
    花瓣寬度:<input type="text" name="d"><br>
    <button type="submit">預(yù)測</button>
</form>

輸入數(shù)據(jù)的順序不能錯(cuò),因?yàn)槲覀冇?xùn)練數(shù)據(jù)的順序就是花萼長度、花萼寬度、花瓣長度、花瓣寬度。

在Script.js中編寫predict預(yù)測函數(shù)。

 window.predict = (form) => {
        // 將表單獲取的到數(shù)據(jù)轉(zhuǎn)成Tensor
        const input = tf.tensor([[
            form.a.value * 1,
            form.b.value * 1,
            form.c.value * 1,
            form.d.value * 1,
        ]]);
        // 預(yù)測
        const pred = model.predict(input);
        alert(`預(yù)測結(jié)果:${IRIS_CLASSES[pred.argMax(1).dataSync(0)]}`)
    }

預(yù)測結(jié)果:gif動圖有點(diǎn)模糊,可以自己動手試試看哦。

到此這篇關(guān)于TensorFlow.js機(jī)器學(xué)習(xí)預(yù)測鳶尾花種類的文章就介紹到這了,更多相關(guān)TensorFlow.js預(yù)測鳶尾花內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論