久久精品A一国产成人免费网站-久久精品爱国产免费久久-久久精品操-久久精品成人免费看-国产一级毛片在线-国产一级免费片

 
您現在的位置:首頁 ? 知識庫 ? 軟件開發 軟件開發
如何使用JavaScript實現GPU加速神經網絡
發布日期:2018-04-08

根據 GitHub Octoverse 2017 報告,JavaScript 是過去一年中 GitHub 最流行的編程語言。根據 pull requests 的數量,JavaScript 的體量與 Python、Java 以及 Go 語言的總和相當。

JavaScript 已經征服了 Web,并在服務器、移動電話、桌面和其他平臺上取得了進展。

與此同時,GPU 加速的使用已經遠遠超出了計算機圖形學的范圍,它現在已經成為機器學習的一個組成部分。

訓練深層神經網絡是一個計算密集型過程,深度神經網絡在機器智能的許多重要領域得到了當前最優結果。

本文著眼于這些趨勢的持續融合,并概述了將 GPU 加速的神經網絡引入 JavaScript 的一些項目。

概述

本文列出的所有項目都是正被社區積極維護的,它們在 GitHub 上有著數千 stars,并且通過 NPM 或 CDN 進行分發。

它們都是通過 WebGL 在瀏覽器中實現 GPU 加速的,如果沒有合適的顯卡,則返回到 CPU 模式。

本概述不包含旨在運行現有模型(尤其是使用 Python 訓練的模型)的庫。

最后,有 4 個項目被列入清單。

盡管 deeplearn.js 的特征集是面向神經網絡的,但是它也可被看作是一個通用的機器學習框架。Propel 是一個用于科學計算的庫,提供自動微分功能。gpu.js 提供了在 GPU 上運行 JavaScript 函數的便捷方式。Brain.js 是一個較老的神經網絡庫的延續,它使用 gpu.js 來完成硬件加速。

Deeplearn.js

Deeplearn.js 是以上四個項目中最流行的,被描述為「用于機器智能的硬件加速 JavaScript 庫」。它由 Google Brain 團隊和一個超過 50 位貢獻者的社區共同支持。兩位主要作者是 Daniel Smilkov 和 Nikhil Thorat.

import * as dl from 'deeplearn'

const xs = inputXs.as4D(-1, IMAGE_HEIGHT, IMAGE_WIDTH, 1)

const conv1Weights = dl.variable(

dl.randomNormal([FILTER_HEIGHT, FILTER_WIDTH, 1, NUMBER_FILTERS], 0, 0.1) as dl.Tensor4D)

const layer1 = dl.tidy(() => {

return xs.conv2d(conv1Weights, 1, 'same')

.relu()

.maxPool([2, 2], STRIDES, PADDING)

})

deeplearn.js 中卷積層的定義

deeplearn.js 是仿照 TensorFlow 用 TypeScript 寫成的。deeplearn.js 支持由 Google Brain 主要開源項目提供的一個功能子集。API 基本上擁有 3 個部分(API http://www.deeplearnjs.org/docs/api/index.html)。

第一部分包括用來創建、初始化以及變換張量的函數(http://www.deeplearnjs.org/docs/api/index.html#Tensors-Creation),用類似數組的結構來保存數據。

第二部分提供了在張量上執行的操作(http://www.deeplearnjs.org/docs/api/index.html#Operations-Arithmetic),包括基本的數學運算、規約(reduction)、正則化以及卷積。對循環神經網絡的支持目前還處于初級階段,但是已包括 LSTM 單元的堆疊(http://www.deeplearnjs.org/docs/api/index.html#dl.multiRNNCell)。

API 的第三部分圍繞模型訓練展開。所有流行優化器,從隨機梯度下降到 Adam 都包含在其中。不過,目前 reference 中提及的損失函數只有交叉熵損失函數。

API 其他部分用來進行環境設置和資源管理。

可以通過 headless-gl(https://github.com/stackgl/headless-gl0)在 node.js 中實現 GPU 加速的實驗(參見 issue #49,https://github.com/PAIR-code/deeplearnjs/issues/49)。

項目網站有很多優秀的 demo(http://www.deeplearnjs.org/index.html#demos),包括使用循環神經網絡進行鋼琴演奏、用來構建模型的可視化界面,以及基于 SqueezeNet(一個使用較少參數的圖像分類器)的 webcam 應用。

PropelJS

PropelJS 被描述為「可微分編程的 JavaScript」。這份工作由主要作者 Ryan Dahl 和 Bert Belder 以及其他 11 位貢獻者完成。

import * as pr from "propel"

export async function train(maxSteps = 0) {

const ds = pr.dataset("mnist/train").batch(128).repeat(100)

const exp = await pr.experiment("exp001")

for (const batchPromise of ds) {

const { images, labels } = await batchPromise

exp.sgd({ lr: 0.01 }, (params) =>

images.rescale([0, 255], [-1, 1])

.linear("L1", params, 200).relu()

.linear("L2", params, 100).relu()

.linear("L3", params, 10)

.softmaxLoss(labels))

if (maxSteps && exp.step >= maxSteps) break

}

}

在 MNIST 數據集上使用 Propel 訓練一個三層的前饋神經網絡。

自動微分(AD)是這個項目的核心,它使得我們無需手動指定導數。給定一個由支持的張量運算定義的函數 f(x),它的梯度函數可以使用 grad(http://propelml.org/docs/#grad)得到。多變量的情況可以使用 multigrad 完成(http://propelml.org/docs/#multigrad)。

除了自動微分之外,目前尚不清楚該項目的方向。雖然網站上提到其目標是成為「類似 numpy 的基礎架構」,但該項目目前仍在開發中,并且包含與神經網絡(http://propelml.org/docs/#conv2d)和計算機視覺(http://propelml.org/docs/#imread)相關的功能。npy 文件的內容可以通過 load 函數(http://propelml.org/docs/#load)進行解析,并作為張量使用。

在瀏覽器環境中,PropelJS 利用了 deeplearn.js 中的 WebGL 功能。對于節點中的 GPU 加速,該項目則使用了 TensorFlow 的 C API。

gpu.js

雖然我的大部分經驗是使用 CUDA 而不是 WebGL,但我可以證明 GPU 編程的耗時性。因此,當我遇到 gpu.js 時,我感到非常意外。該項目在 GitHub 上擁有約 5700 個 stars,在知名度方面與 deeplearn .js 相當,共有 18 位貢獻者。Robert Plummer 是主要作者。

import GPU from 'gpu.js'

const gpu = new GPU()

const multiplyMatrix = gpu.createKernel(function(a, b) {

var sum = 0;

for (var i = 0; i < 512; i++) {

sum += a[this.thread.y][i] * b[i][this.thread.x];

}

return sum;

}).setOutput([512, 512])

使用 gpu.js 進行矩陣乘法運算,相當于 GPU 編程中的 Hello World!

在當前語境中,內核是在 GPU 而不是 CPU 上執行的函數。使用 gpu.js,內核可以用 JavaScript 的子集(https://github.com/gpujs/gpu.js#creating-and-running-functions)編寫。然后編譯代碼并在 GPU 上運行。幾周前,gpu.js 支持基于 OpenCL 的 Node.JS(https://github.com/mikeseven/node-opencl/issues/55)。

數字和最多具有三維的數組被用作輸入和輸出。除了基本的數學運算之外,gpu.js 還支持局部變量、循環和 if/else 語句。

為了實現代碼重用并允許更多模塊化設計,你們可以注冊自定義函數 ( https://github.com/gpujs/gpu.js#adding-custom-functions #),然后從內核代碼中使用。

在內核的 JavaScript 定義中,this 對象提供線程標識符,并存儲在實際內核里是常量、在外部是動態變量的值。

該項目專門研究加速 JavaScript 函數,并不試圖提供神經網絡框架。為此,我們可以求助一個依賴 gpu.js 的庫。

Brain.js

Brain.js 繼承自 harthur/brain(https://github.com/harthur/brain),一個可以回溯至 2010 年的 repo。

import brain from 'brain.js'

const network = new brain.recurrent.RNN()

const data = [

{input: [0, 0], output: [0]},

{input: [0, 1], output: [1]},

{input: [1, 0], output: [1]},

{input: [1, 1], output: [0]}

]

network.train(data)

共有近 30 人對這兩個 repo 做出了貢獻。

對 GPU 加速神經網絡的支持基于 GPU.js,這可以算得上該項目近期最重要的進展了。

除了前饋網絡之外,Brain.js 還包括三種重要 RNN 類型的實現(https://github.com/BrainJS/brain.js#neural-network-types):經典 Elman 網絡、LSTM,以及具備門控循環單元的近期網絡。

該 repo 包含的 demo 處于早期階段。源代碼中還有另外兩個演示 ( https://github.com/BrainJS/brain.js/tree/develop/examples),其中一個 demo 涉及檢測用 ASCII 碼繪制的字符。

針對機器學習的加速 JavaScript 庫有很多有趣的應用。

在線課程可以將與機器學習或 GPU 計算相關的練習直接集成到 web 應用程序中。學生不必跨不同的操作系統和軟件版本去設置單獨的開發環境。

許多基于神經網絡的 demo 可以更容易地部署,并且不再需要服務器端 API。

對機器學習感興趣的 JavaScript 開發者可以充分利用他們的專業技能,在集成問題上花費更少的時間。

此外,客戶端上的可用計算資源應該被更好地利用。畢竟,并非所有的顯卡都一直用于虛擬現實和挖礦。

需要說清楚,我現在并不主張將本文中提到的庫用于任務關鍵型神經網絡。Python 生態系統仍然是大多數應用程序的首選。

然而,過去 12 個月取得的進展確實令人鼓舞。一年前既沒有 deeplearn.js,也沒有 Propel。彼時 gpu.js repo 中的活動水平相對較低,Brain.js 也不支持 GPU 加速。

隨著時間的推移,這些項目將在某些方面與已建立的框架發生競爭,并催生出 JavaScript 完美適合的全新應用。

https://towardsdatascience.com/gpu-accelerated-neural-networks-in-javascript-195d6f8e69ef

  • 1.公司登記注冊于2003年1月27日,清遠市桑達電子網絡媒體有限公司
    2.公司2006年起成為清遠市政府定點協議供貨商,電子采購供貨商
    3.公司2007年被清遠市相關政府部門評為安防行業狀元
    4.公司2007年起成為長城電腦清遠如意服務站(SP368)
    5.公司2007年承建清遠市橫河路口電子警察工程,開創清遠電子警察先河。
  • 6.公司2007年起成為IBM合作伙伴、公司2010年底成為金蝶軟件清遠金牌代理(伙伴編號:30030013)
    7.公司組團隊參加南方都市報組織的創富評選,獲廣東80強。公司申請多項軟件著作權、專利權
    8.2016年起公司成為粵東西北地區為數不多的雙軟企業,確立“讓軟件驅動世界,讓智能改變生活!"企業理想
    9.2016-01-29更名為廣東互動電子網絡媒體有限公司
    10.2021-01-13更名為廣東互動電子有限公司
  • 投資合作咨詢熱線電話:0763-3391888 3323588
  • 做一個負責任的百年企業! 天行健,君子以自強不息;地勢坤,君子以厚德載物;
    為用戶創造價值! 讓軟件驅動世界; 讓智能改變生活; 超越顧客期望,幫助顧客成功;
    對客戶負責,對員工負責,對企業命運負責!幫助支持公司的客戶成功;幫助忠誠于公司的員工成功!
  • 聯系電話:0763-3391888 3323588 3318977
    服務熱線:18023314222 QQ:529623964
  • 工作QQ:2501204690 商務QQ: 602045550
    投資及業務投訴QQ: 529623964
    微信:小米哥 微信號:qysed3391888
    騰訊微博:桑達網絡-基石與起點
  • E-MAIL:222#QYSED.CN ok3391888#163.com (請用@替換#)
在線客服
  • 系統集成咨詢
    點擊這里給我發消息
  • 網站\微信\軟件咨詢
    點擊這里給我發消息
  • 售后服務
    點擊這里給我發消息
  • 投資合作
    點擊這里給我發消息
欧美猛少妇色XXXXⅩBBBB| 高清色惰WWW日本午夜色视频| 邻居少妇张开腿让我爽了在线观看| 亚洲国产精品VA在线观看麻豆| 国产亚洲精品无码专区| 无码性午夜视频在线观看| 国产精品福利一区二区| 亭亭玉立国色天香四月天| 国产成人精品高清在线观看99 | 亚洲人77777在线观看| 精品人伦一区二区三区蜜桃| 亚洲精品无码不卡在线播放HE | 国产农村妇女毛片精品久久| 无码精品人妻一区二区三区涩爱| 国产精品成人免费视频网站| 无码国产色欲XXXXX视频| 国产精品毛片无遮挡高清| 无线乱码A区B区C区D| 潮喷失禁大喷水AⅤ无码| 人人爽人人澡人人人妻百度| 变态另类AV手机版天堂| 日韩精品乱码AV一区二区| 顶级欧美熟妇高潮XXXXX| 十八女人毛片A级毛片水真多| 国产爆乳美女娇喘呻吟| 无码熟妇人妻AV在线影片| 国产又粗又猛又黄又爽无遮挡| 亚洲AV狠狠爱一区二区三区| 护士猛少妇色ⅩⅩXXX猛叫| 亚洲乱码中文论理电影| 久久久久久成人毛片免费看| 一个上面一个下面嘴巴| 免费无码又爽又高潮视频| 97人妻碰碰碰久久久久| 人妻丰满熟妇av无码区免费蜜臀| 成人性生交大片免费看中文| 天天躁夜夜躁很很躁| 粉嫩Av网站在线观看| 玩弄漂亮少妇高潮大叫| 国产中文欧美日韩在线| 亚洲色欲色欲大片WWW无码| 乱码精品一区二区三区| AVTT天堂网久久精品| 日韩精品一区二区三区中文无码 | 国模少妇一区二区三区| 亚洲五月丁香综合视频| 免费免费视频片在线观看| FREEHDXXXX学生妹| 日文中文字幕乱码一二三区别| 国产成人精品亚洲精品| 亚洲AV一宅男色影视| 巨大黑人XXXXX高潮| 一本无码字幕在钱少妇人妻| 女人ASS人体下部PICS| 波多野结衣456| 无码人妻AV一二区二区三区 | 免费一本色道久久一区| 宝贝乖女你的奶真大水真多| 婷婷97狠狠色综合| 精东天美麻豆果冻传媒MV| 真人新婚之夜破苞第一次视频| 强壮公弄得我次次高潮小说| 国产精品55夜色66夜色| 亚洲欧美色中文字幕在线| 男配每天都在体内成结节| 丁香五月婷婷色人阁TP精品| 亚洲AⅤ无码乱码在线观看性色| 久久精品国产精品青草| FREE性中国熟女HD交换| 婷婷色丁香五月激情综合| 精品人亚洲成A人片在线观看无码专区| 中文字幕丰满乱子伦无码专区| 日本熟妇毛茸茸XXXX| 国产亚洲欧美日韩在线一区二区三 | 一边做一边说国语对白| 欧美一卡二卡三卡四卡视| 国产精华精华液一二三区别| 亚洲午夜福利精品久久| 秋霞国产午夜伦午夜无码灬| 国产农村一国产农村无码毛片| 一区二区三区熟女少妇小牛| 日韩VA中文字幕无码电影| 国内精品自线在拍大学生| 自慰喷水高清毛片AV片| 少妇无码AV无码专区线Y| 久久97久久97精品免视看秋霞| XXXX性XX另类Ⅹ中国HD| 性色AV一区二区三区咪爱四虎| 乱码精品一区二区三区| 国产98色在线 | 国| 亚洲一区二区三区 无码| 人妻熟妇av又粗又爽| 好姐妹高清在线韩国电影观看| 97久久人人超碰国产精品| 无码精品人妻一区二区三区中 | 巴西大肥熟女毛茸茸| 上面一边亲下一边面膜使用方法| 禁止18点击进入在线观看尤物| FREEⅩXX性欧美HD丝袜| 亚洲AV成人片色在线高潮| 女教师办公室被强在线播放| 国产精品国产三级国产专不| 中国熟妇人妻性XXXXX在线看 | 国产亚洲精品在AV| 99久9在线 | 免费| 新X8X8拨牐拨牐永久免费AP| 欧美XXXX做受欧美88| 国产无套护士在线观看| 99久久精品免费观看国产| 性XXXX18免费观看视频| 欧美粗大无套GAY| 国语第一次处破女| YSL千人千色T9T9T9T9| 亚洲精品国偷自产在线99正片| 人人妻人人澡人人爽人人蜜臀| 精品人妻少妇一区二区三区夜夜嗨 | 免费视频玩乳吃奶不遮挡网站 | 精品日产卡一卡二卡927| 成 人免费 在线手机版视| 亚洲无线码高清在线观看| 四虎国产精品永久免费网址| 美女内射毛片在线看免费人动物| 国产精品亚洲片在线观看不卡| 97国产精华最好的产品亚洲| 亚洲HAIRY多毛PICS大全| 美女露内裤扒开腿让男人桶无遮挡 | 国产乱人伦真实精品视频| 97无码免费人妻超级碰碰夜夜| 亚洲AV无码专区国产乱码4SE | 亚洲国产精品VA在线看黑人 | 久久综合九色综合欧美狠狠 | av资源在线观看少妇| 亚洲精品无码久久久久不卡| 少妇特殊按摩高潮爽翻天| 妺妺窝人体色7777777| 黑人处破女免费播放| 绯色AV永久无码一区二区蜜臀| 中国高清WINDOWS视频软件| 亚洲AV无码乱码忘忧草亚洲人| 日韩人妻中文字幕| 免费无码又爽又刺激聊天APP | 欧美人与ZOZOXXXX视频| 久久国产精品久久久久久| 国产精品久久久久9999无码| XXX激情影院亚洲AV| 又大又大粗又长又硬又爽| 亚洲AV片不卡无码一| 少妇人妻好深好紧精品无码| 欧美精品一区二区| 久久人人爽人人爽人人AV| 国产一区二区三区不卡AV| 粉嫩少妇内射浓精VIDEOS| 97无码免费人妻超级碰碰夜夜 | 成人小说亚洲一区二区三区| 97一期涩涩97片久久久久久久| 亚洲欧美综合精品AⅤ一区二区| 无码人妻精品一区二区蜜桃网站| 人妻无码久久中文字幕专区 | JAPANESE 大战黑人| 永久黄网站色视频免费直播 | 日本熟妇XXⅩ浓密黑毛HD| 免费午夜爽爽爽WWW视频十八禁| 久本草在线中文字幕| 国产香港明星裸体XXXX视频| 国产50岁老熟女网站| YW尤物爆乳网站点击进入| 中文日产幕无限码一区有限公司 | 妺妺窝人体色聚窝窝www毛片| 久久99久久99精品免视看动漫 | Y1111111少妇影院| 综合激情丁香久久狠狠| 亚洲中文无码成人片在线观看| 亚洲AV无码专区国产乱码不卡| 无码精品人妻一区二区三区中| 色窝窝AV资源网| 日本水蜜桃身体乳的美白效果 | 无码人妻精品丰满熟妇区| 色欲色香天天天综合无码WWW| 人妻少妇aB又紧又爽精品视频| 妞干网在线视频免费观看| 麻豆精产国品一二三产区区| 久久国内精品自在自线400部| 黑人巨大精品欧美| 国产嫖妓一区二区三区无码| 国产护士在线视频XXXX免费| 粉嫩粉嫩的18在线免免费观看| 菠萝菠萝蜜在线观看| 爱丫爱丫影院在线观看视频| ASS鲜嫩鲜嫩PICS| 99久E在线精品视频在线| 2020久久天天躁狠狠躁夜夜| 在线高清理伦片A| 用各种刑具调教吹潮的视频| 野花日本免费完整版高清版| 亚洲色无码中文字幕手机在线 | 八戒八戒手机在线高清观看WWW| FREE国产粉嫩熟妇XXXHD| CHINESE玩弄老年熟女| A级毛片毛片免费观的看久 | 国产成人亚洲精品另类动态图|