- 從機(jī)器學(xué)習(xí)到無(wú)人駕駛
- 宋哲賢
- 706字
- 2020-11-23 15:03:24
2.6 擴(kuò)展:使用tensorflow.js進(jìn)行機(jī)器學(xué)習(xí)
tensorflow.js是一個(gè)機(jī)器學(xué)習(xí)的前端框架,Google也在GitHub開源了相關(guān)代碼。GitHub地址:https://github.com/tensorflow/tfjs。在實(shí)現(xiàn)方面,TensorFlow團(tuán)隊(duì)使用了WebGL庫(kù)對(duì)運(yùn)算過(guò)程進(jìn)行優(yōu)化,使得tensorflow.js在學(xué)習(xí)尤其是網(wǎng)絡(luò)擴(kuò)大的時(shí)候能夠有更好的性能表現(xiàn)。在API設(shè)計(jì)方面,框架更多地考量到了開發(fā)人員的易用性,在較為底層的API方面使用了TensorFlow Python的許多概念,而在高級(jí)抽象API方面則更多地與Keras框架保持一致。
接下來(lái)我們通過(guò)一個(gè)簡(jiǎn)單的例子了解一下tensorflow.js的魅力。
1. 類庫(kù)引入
(1)script標(biāo)簽引入
標(biāo)簽的引入是最為直接的方式,引入的地址為https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.9.0。下面給大家提供一個(gè)簡(jiǎn)單的開發(fā)模板:

(2)npm引入
如果你使用了Node進(jìn)行前端架構(gòu)的開發(fā),就需要包管理工具npm來(lái)引入。
npm install @tensorflow/tfj
下面給大家提供一個(gè)簡(jiǎn)單的開發(fā)模板(ES 6):
import * as tf from '@tensorflow/tfjs'; // 在下面寫機(jī)器學(xué)習(xí)業(yè)務(wù)代碼
2. hello tfjs — 一個(gè)簡(jiǎn)單的示例
(1)代碼編寫
// 定義模型:線性回歸模型 const model = tf.sequential(); model.add(tf.layers.dense({units: 1, inputShape: [1]})); // 定義模型損失函數(shù)和梯度下降算法 model.compile({loss: 'meanSquaredError', optimizer: 'sgd'}); // 準(zhǔn)備學(xué)習(xí)數(shù)據(jù) const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]); const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]); //模型學(xué)習(xí) model.fit(xs, ys).then(() => { // 使用訓(xùn)練完成的模型進(jìn)行預(yù)測(cè) model.predict(tf.tensor2d([5], [1, 1])).print(); });
(2)代碼分析
代碼中具體做的事情是線性回歸分析,步驟總結(jié)為:模型定義→模型學(xué)習(xí)→模型使用。如果大家想要深入了解線性回歸分析的內(nèi)容,可以參考筆者的免費(fèi)課程,課程鏈接:https://www.imooc.com/learn/972。
(3)運(yùn)行結(jié)果
在瀏覽器上運(yùn)行,在命令行中就能看到想要的輸出,如圖2.21所示。

圖2.21 代碼運(yùn)行結(jié)果
近年來(lái),隨著前端框架(React、Vue、Angular)的崛起和微信小程序的發(fā)力,前端從業(yè)人員的開發(fā)能力得到了長(zhǎng)足的進(jìn)步,人工智能時(shí)代不但給予后臺(tái)通關(guān)前后臺(tái)的能力,而且也給了前端業(yè)務(wù)更多的想象力,tensorflow.js就是在這樣的環(huán)境下應(yīng)運(yùn)而生的產(chǎn)物。我們通過(guò)上述的入門例子對(duì)tensorflow.js有了直觀的感受,如果你學(xué)習(xí)了TensorFlow的核心知識(shí),那么上手tensorflow.js將會(huì)非常容易。
- 數(shù)據(jù)展現(xiàn)的藝術(shù)
- Mastering Hadoop 3
- Getting Started with Clickteam Fusion
- 計(jì)算機(jī)控制技術(shù)
- 來(lái)吧!帶你玩轉(zhuǎn)Excel VBA
- 快學(xué)Flash動(dòng)畫百例
- 大數(shù)據(jù)技術(shù)入門(第2版)
- Learning Azure Cosmos DB
- 水下無(wú)線傳感器網(wǎng)絡(luò)的通信與決策技術(shù)
- 貫通Java Web開發(fā)三劍客
- Microsoft System Center Confi guration Manager
- 多媒體制作與應(yīng)用
- 格蠹匯編
- The DevOps 2.1 Toolkit:Docker Swarm
- SQL Server數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)(第2版)