最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

TensorFlow.js機器學習預測鳶尾花種類

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

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

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

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

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

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ù)集的時候,將20%的數(shù)據(jù)當成測試集,剩下的80%當成訓練集。

xTrain:訓練集的特征值。

yTrain:訓練集的目標值。

xTest:驗證集的特征值。

yTest:驗證集的目標值。

可以在控制臺查看到結果:

其中特征矩陣里面的四個值分別表示:花萼的長度、花萼的寬度、花瓣的長度、花瓣的寬度。

目標值矩陣采用one-hot編碼形式。

二、定義模型結構

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

// 定義網(wǎng)絡模型
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']
});

三、訓練模型并可視化

訓練結果需要等待,所以采用異步方式訓練。

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

訓練結果:

四、預測

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

在index.html中編寫form表單,用來輸入預測數(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">預測</button>
</form>

輸入數(shù)據(jù)的順序不能錯,因為我們訓練數(shù)據(jù)的順序就是花萼長度、花萼寬度、花瓣長度、花瓣寬度。

在Script.js中編寫predict預測函數(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,
        ]]);
        // 預測
        const pred = model.predict(input);
        alert(`預測結果:${IRIS_CLASSES[pred.argMax(1).dataSync(0)]}`)
    }

預測結果:gif動圖有點模糊,可以自己動手試試看哦。

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

相關文章

最新評論

若羌县| 新和县| 红安县| 丰顺县| 永宁县| 汕头市| 龙江县| 通州市| 唐海县| 越西县| 新巴尔虎右旗| 方正县| 汝南县| 子洲县| 静乐县| 富顺县| 冕宁县| 老河口市| 黔南| 偏关县| 林芝县| 黑水县| 隆安县| 红安县| 龙泉市| 唐海县| 会昌县| 乳源| 双江| 图木舒克市| 三江| 丹阳市| 乐至县| 满城县| 巴青县| 响水县| 罗田县| 丰台区| 乌兰察布市| 保定市| 历史|