TensorFlow.js發(fā)布:使用JS進行機器學習并在瀏覽器中運行

TensorFlow官方團隊近日發(fā)布多個重大更新,其中包括:為python開發(fā)者提供的谦絮,可以立即評估操作并且無需額外圖形構(gòu)建步驟的eager execution题诵;可以促進機器學習模型可重用部分的發(fā)布、發(fā)現(xiàn)和使用的TensorFlow Hub挨稿;針對移動和嵌入式設備的輕量級解決方案TensorFlow Lite仇轻;Swift的TensorFlow開源;面向JavaScript開發(fā)者的新機器學習框架TensorFlow.js奶甘!

介紹

TensorFlow.js是為JavaScript開發(fā)者準備的開源庫篷店,可以使用JavaScript和高級圖層API完全在瀏覽器中定義,訓練和運行機器學習模型臭家!如果你是一名機器學習新手疲陕,那么TensorFlow.js是開始學習的好方法。

瀏覽器內(nèi)的機器學習

在瀏覽器中完全由客戶端運行的機器學習程序?qū)怄i新的機會钉赁,如交互式機器學習蹄殃!例如下方鏈接中的吃豆人游戲。

https://github.com/tensorflow/tfjs-examples

使用神經(jīng)網(wǎng)絡將你的攝像頭變成PAC-MAN的控制器

如果你想嘗試其他游戲你踩,可以使用手機上的瀏覽器玩Emoji Scavenger Hunt诅岩。

https://emojiscavengerhunt.withgoogle.com/

項目:https://github.com/google/emoji-scavenger-hunt

從用戶的角度來看,在瀏覽器中運行的ML意味著不需要安裝任何庫或驅(qū)動程序带膜。只需打開網(wǎng)頁吩谦,你的程序就可以運行了。此外膝藕,它已準備好使用GPU加速運行式廷。TensorFlow.js自動支持WebGL,并在GPU可用時會加速代碼芭挽。用戶也可以通過移動設備打開你的網(wǎng)頁滑废,在這種情況下,模型可以利用傳感器數(shù)據(jù)袜爪,例如陀螺儀或加速度傳感器蠕趁。最后,所有數(shù)據(jù)都保留在客戶端上辛馆,使得TensorFlow.js可用于低延遲推理以及隱私保護程序妻导。

你可以用TensorFlow.js做什么?

如果使用TensorFlow.js進行開發(fā)怀各,可以考慮以下三種工作流程倔韭。

你可以導入現(xiàn)有的預訓練的模型進行推理。如果你有一個現(xiàn)成的TensorFlow或Keras模型瓢对,則可以將其轉(zhuǎn)換為TensorFlow.js格式寿酌,并將其加載到瀏覽器中進行推理。

你可以導入的模型進行再訓練硕蛹。就像上面的吃豆人演示一樣醇疼,你可以使用遷移學習來增強現(xiàn)有預訓練好的離線模型(使用在瀏覽器中收集的少量數(shù)據(jù)),使用的技術(shù)稱為圖像再訓練(Image Retraining)法焰。這是只使用少量數(shù)據(jù)秧荆,快速訓練準確模型的一種方法。

直接在瀏覽器中創(chuàng)作模型埃仪。你還可以使用TensorFlow.js乙濒,完全在瀏覽器中使用Javascript和高級層API定義,訓練和運行模型卵蛉。如果你熟悉Keras颁股,那么高級層API應該也會很熟悉。

讓我們看看代碼

如果你愿意傻丝,可以直接到示例或教程開始甘有。

示例:https://github.com/tensorflow/tfjs-examples

教程:http://js.tensorflow.org/

以下內(nèi)容展示了如何在瀏覽器中導出用Python定義的模型進行推理,以及如何完全用Javascript定義和訓練模型葡缰。這是定義一個神經(jīng)網(wǎng)絡來對花朵進行分類的代碼片段亏掀,就像在TensorFlow.org的入門指南中一樣(也就是說分類鳶尾花)。在這里我使用一堆層定義一個模型泛释。

1import?*?as tffrom?‘@tensorflow/tfjs’;

2const model=?tf.sequential();

3model.add(tf.layers.dense({inputShape: [4], units:100}));

4model.add(tf.layers.dense({units:4}));

5model.compile({loss: ‘categoricalCrossentropy’, optimizer: ‘sgd’});

我們在此使用的層API支持在示例目錄中能找到的所有Keras層(包括Dense滤愕,CNN,LSTM等)胁澳。然后该互,我們可以使用與方法調(diào)用相同的 Keras-compatible API來訓練我們的模型:

1await model.fit(

2??xData, yData, {

3????batchSize: batchSize,

4????epochs: epochs

5});

這個模型現(xiàn)在可以用來做預測了:

01//?Get measurementsfor?a new flower to generate a prediction

02//?The first argumentis?the data,and?the secondis?the shape.

03const inputData=?tf.tensor2d([[4.8,3.0,1.4,0.1]], [1,4]);

04?

05//?Get the highest confidence predictionfrom?our model

06const result=?model.predict(inputData);

07const winner=?irisClasses[result.argMax().dataSync()[0]];

08?

09//?Display the winner

10console.log(winner);

TensorFlow.js還包含底層API(以前稱為deeplearn.js)并支持Eager execution。

TensorFlow.js API

TensorFlow.js如何與deeplearn.js關聯(lián)韭畸?

TensorFlow.js屬于JavaScript生態(tài)系統(tǒng)宇智,實現(xiàn)其進行機器學習的工具,繼承自deeplearn.js(即TensorFlow.js Core)胰丁。TensorFlow.js還包含一個Layers API随橘,它是使用Core構(gòu)建機器學習模型的高級庫,并且也是用于自動移植TensorFlow SavedModels和Keras hdf5模型的工具锦庸。

本文為編譯作品机蔗,轉(zhuǎn)載請注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市萝嘁,隨后出現(xiàn)的幾起案子梆掸,更是在濱河造成了極大的恐慌,老刑警劉巖牙言,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酸钦,死亡現(xiàn)場離奇詭異,居然都是意外死亡咱枉,警方通過查閱死者的電腦和手機卑硫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蚕断,“玉大人欢伏,你說我怎么就攤上這事∫谌椋” “怎么了硝拧?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長风皿。 經(jīng)常有香客問我河爹,道長,這世上最難降的妖魔是什么桐款? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任咸这,我火速辦了婚禮检眯,結(jié)果婚禮上忆矛,老公的妹妹穿的比我還像新娘。我一直安慰自己铸抑,他們只是感情好遏暴,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布侄刽。 她就那樣靜靜地躺著,像睡著了一般朋凉。 火紅的嫁衣襯著肌膚如雪州丹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天杂彭,我揣著相機與錄音墓毒,去河邊找鬼。 笑死亲怠,一個胖子當著我的面吹牛所计,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播团秽,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼主胧,長吁一口氣:“原來是場噩夢啊……” “哼叭首!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起踪栋,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤焙格,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后己英,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體间螟,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年损肛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荣瑟。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡治拿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出笆焰,到底是詐尸還是另有隱情劫谅,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布嚷掠,位于F島的核電站捏检,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏不皆。R本人自食惡果不足惜贯城,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望霹娄。 院中可真熱鬧能犯,春花似錦、人聲如沸犬耻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽枕磁。三九已至渡蜻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間计济,已是汗流浹背茸苇。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留峭咒,地道東北人税弃。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像凑队,于是被迫代替她去往敵國和親则果。 傳聞我的和親對象是個殘疾皇子幔翰,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容