成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Keras.js可以讓你使用瀏覽器在GPU上運(yùn)行Keras模型

XiNGRZ / 2681人閱讀

摘要:項(xiàng)目可以讓你使用在驅(qū)動(dòng)的你的瀏覽器上運(yùn)行訓(xùn)練好的模型。內(nèi)核卷積本地連接噪聲備注及其限制可以與主線程分開多帶帶運(yùn)行在中。所以在多帶帶的線程中運(yùn)行的好處被必須運(yùn)行在模式中的要求抵消了。所有的測(cè)試都會(huì)自動(dòng)運(yùn)行。

項(xiàng)目可以讓你使用 WebGL 在 GPU 驅(qū)動(dòng)的、你的瀏覽器上運(yùn)行訓(xùn)練好的 Keras 模型。模型直接根據(jù) Keras JSON 格式配置文件和關(guān)聯(lián)的 HDF5 權(quán)重而序列化(serialized)。

項(xiàng)目地址:https://github.com/transcranial/keras-js

互動(dòng)演示

用于 MNIST 的基本卷積網(wǎng)絡(luò)

在 MNIST 上訓(xùn)練的卷積變自編碼器(Convolutional Variational Autoencoder)

在 ImageNet 上訓(xùn)練的 50 層的殘差網(wǎng)絡(luò)(Residual Network)

在 ImageNet 上訓(xùn)練的 Inception V3

用于 IMDB 情緒分類的雙向 LSTM

為什么要做這個(gè)項(xiàng)目?

消除對(duì)后端基礎(chǔ)設(shè)施或 API 調(diào)用的需求

完全將計(jì)算卸載到客戶端瀏覽器

互動(dòng)應(yīng)用程序

使用方法

查看 demos/src/ 獲取真實(shí)案例的源代碼。

1. 對(duì) Model 和 Sequential 都適用

model = Sequential()

model.add(...)

...

...

model = Model(input=..., output=...)

一旦訓(xùn)練完成,保存權(quán)重和導(dǎo)出模型架構(gòu)配置:

model.save_weights("model.hdf5")

with open("model.json", "w") as f:

f.write(model.to_json())

參見演示的 jupyter notebooks 了解詳情:demos/notebooks/

2. 在 HDF5 權(quán)重文件上運(yùn)行編碼器腳本:

$ python encoder.py /path/to/model.hdf5

這將在同一個(gè)文件夾中產(chǎn)生兩個(gè)用作 HDF5 權(quán)重的文件:model_weights.buf 和 model_metadata.json

3.Keras.js 所需的三個(gè)文件:

模型文件:model.json

權(quán)重文件:model_weights.buf

權(quán)重元數(shù)據(jù)文件:model_metadata.json

4.GPU 支持由 weblas(https://github.com/waylonflinn/weblas) 驅(qū)動(dòng)。將 Keras.js 和 Weblas 庫(kù)包含進(jìn)去:

5. 創(chuàng)建新模型

實(shí)例化時(shí),數(shù)據(jù)通過(guò) XHR(相同域或要求 CORS)加載,層被初始化為有向無(wú)環(huán)圖。當(dāng)這些步驟完成之后,類方法 ready() 返回一個(gè)解決問(wèn)題的 Promise。然后,使用 perdict() 讓數(shù)據(jù)通過(guò)模型,這也會(huì)返回一個(gè) Promise。

const model = new KerasJS.Model({

filepaths: {

model: "url/path/to/model.json",

weights: "url/path/to/model_weights.buf",

metadata: "url/path/to/model_metadata.json"

}

gpu: true

})

model.ready().then(() => {

// input data object keyed by names of the input layers

// or `input` for Sequential models

// values are the flattened Float32Array data

// (input tensor shapes are specified in the model config)

const inputData = {

"input_1": new Float32Array(data)

}

// make predictions

// outputData is an object keyed by names of the output layers

// or `output` for Sequential models

model.predict(inputData).then(outputData => {

// e.g.,

// outputData["fc1000"]

})

})

可用的層

高級(jí)激活: LeakyReLU, PReLU, ELU, ParametricSoftplus, ThresholdedReLU, SReLU

卷積: Convolution1D, Convolution2D, AtrousConvolution2D, SeparableConvolution2D, Deconvolution2D, Convolution3D, UpSampling1D, UpSampling2D, UpSampling3D, ZeroPadding1D, ZeroPadding2D, ZeroPadding3D

內(nèi)核: Dense, Activation, Dropout, SpatialDropout2D, SpatialDropout3D, Flatten, Reshape, Permute, RepeatVector, Merge, Highway, MaxoutDense

嵌入: Embedding

歸一化: BatchNormalization

池化: MaxPooling1D, MaxPooling2D, MaxPooling3D, AveragePooling1D, AveragePooling2D, AveragePooling3D, GlobalMaxPooling1D, GlobalAveragePooling1D, GlobalMaxPooling2D, GlobalAveragePooling2D

循環(huán): SimpleRNN, LSTM, GRU

包裝器: Bidirectional, TimeDistributed

還沒有實(shí)現(xiàn)的層

目前還不能直接實(shí)現(xiàn) Lambda,但最終會(huì)創(chuàng)建一個(gè)通過(guò) JavaScript 定義計(jì)算邏輯的機(jī)制。

內(nèi)核: Lambda

卷積: Cropping1D, Cropping2D, Cropping3D

本地連接: LocallyConnected1D, LocallyConnected2D

噪聲:GaussianNoise, GaussianDropout

備注

WebWorker 及其限制

Keras.js 可以與主線程分開多帶帶運(yùn)行在 WebWorker 中。因?yàn)?Keras.js 會(huì)執(zhí)行大量同步計(jì)算,這可以防止該 UI 受到影響。但是,WebWorker 的較大限制之一是缺乏 訪問(wèn)(所以要用 WebGL)。所以在多帶帶的線程中運(yùn)行 Keras.js 的好處被必須運(yùn)行在 CPU 模式中的要求抵消了。換句話說(shuō),在 GPU 模式中運(yùn)行的 Keras.js 只能運(yùn)行在主線程上。

WebGL MAX_TEXTURE_SIZE

在 GPU 模式中,張量對(duì)象被編碼成了計(jì)算之前的 WebGL textures。這些張量的大小由 gl.getParameter(gl.MAX_TEXTURE_SIZE) 限定,這會(huì)根據(jù)硬件或平臺(tái)的狀況而有所不同。參考 http://webglstats.com/ 了解典型的預(yù)期值。在 im2col 之后,卷積層中可能會(huì)有一個(gè)問(wèn)題。比如在 Inception V3 網(wǎng)絡(luò)演示中,第一層卷積層中 im2col 創(chuàng)造了一個(gè) 22201 x 27 的矩陣,并在第二層和第三層卷積層中創(chuàng)造 21609 x 288 的矩陣。第一個(gè)維度上的大小超過(guò)了 MAX_TEXTURE_SIZE 的較大值 16384,所以必須被分割開。根據(jù)權(quán)重為每一個(gè)分割開的張量執(zhí)行矩陣乘法,然后再組合起來(lái)。在這個(gè)案例中,當(dāng) createWeblasTensor() 被調(diào)用時(shí),Tensor 對(duì)象上會(huì)提供一個(gè) weblasTensorsSplit 屬性。了解其使用的例子可查看 src/layers/convolutional/Convolution2D.js

開發(fā)/測(cè)試

對(duì)于每一個(gè)實(shí)現(xiàn)的層都存在廣泛的測(cè)試。查看 notebooks/ 獲取為所有這些測(cè)試生成數(shù)據(jù)的 jupyter notebooks。

$ npm install

要運(yùn)行所有測(cè)試,執(zhí)行 npm run server 并訪問(wèn) http://localhost:3000/test/。所有的測(cè)試都會(huì)自動(dòng)運(yùn)行。打開你的瀏覽器的開發(fā)工具獲取額外的測(cè)試數(shù)據(jù)信息。

對(duì)于開發(fā),請(qǐng)運(yùn)行:

$ npm run watch

編輯 src/ 中的任意文件都會(huì)觸發(fā) webpack 來(lái)更新 dist/keras.js。

要?jiǎng)?chuàng)建生產(chǎn)型的 UMD webpack 版本,輸出到 dist/keras.js,運(yùn)行:

$ npm run build

證書

MIT:https://github.com/transcranial/keras-js/blob/master/LICENSE

歡迎加入本站公開興趣群

商業(yè)智能與數(shù)據(jù)分析群

興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)

QQ群:81035754

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/4410.html

相關(guān)文章

  • Keras vs PyTorch:誰(shuí)是「第一」深度學(xué)習(xí)框架?

    摘要:第一個(gè)深度學(xué)習(xí)框架該怎么選對(duì)于初學(xué)者而言一直是個(gè)頭疼的問(wèn)題。簡(jiǎn)介和是頗受數(shù)據(jù)科學(xué)家歡迎的深度學(xué)習(xí)開源框架。就訓(xùn)練速度而言,勝過(guò)對(duì)比總結(jié)和都是深度學(xué)習(xí)框架初學(xué)者非常棒的選擇。 「第一個(gè)深度學(xué)習(xí)框架該怎么選」對(duì)于初學(xué)者而言一直是個(gè)頭疼的問(wèn)題。本文中,來(lái)自 deepsense.ai 的研究員給出了他們?cè)诟呒?jí)框架上的答案。在 Keras 與 PyTorch 的對(duì)比中,作者還給出了相同神經(jīng)網(wǎng)絡(luò)在不同框...

    _DangJin 評(píng)論0 收藏0
  • Web 前端中的增強(qiáng)現(xiàn)實(shí)(AR)開發(fā)技術(shù)

    摘要:增強(qiáng)現(xiàn)實(shí)以下簡(jiǎn)稱浪潮正滾滾而來(lái),瀏覽器作為人們最唾手可得的人機(jī)交互終端,正在大力發(fā)展技術(shù)。目前年底前端要想實(shí)現(xiàn),都是靠的視頻透視式技術(shù)。但這兩個(gè)都是移動(dòng)的,于是谷歌的團(tuán)隊(duì)提供了和兩個(gè)庫(kù),以便開發(fā)者能用技術(shù)來(lái)基于和開發(fā),從而實(shí)現(xiàn)。 本文作者 GeekPlux,博客地址:http://geekplux.com/2018/01/18/augmented-reality-development...

    Jochen 評(píng)論0 收藏0
  • Keras 2發(fā)布:實(shí)現(xiàn)與TensorFlow的直接整合

    摘要:在年月首次推出,現(xiàn)在用戶數(shù)量已經(jīng)突破了萬(wàn)。其中有數(shù)百人為代碼庫(kù)做出了貢獻(xiàn),更有數(shù)千人為社區(qū)做出了貢獻(xiàn)?,F(xiàn)在我們推出,它帶有一個(gè)更易使用的新,實(shí)現(xiàn)了與的直接整合。類似的,正在用實(shí)現(xiàn)份額部分規(guī)范,如。大量的傳統(tǒng)度量和損失函數(shù)已被移除。 Keras 在 2015 年 3 月首次推出,現(xiàn)在用戶數(shù)量已經(jīng)突破了 10 萬(wàn)。其中有數(shù)百人為 Keras 代碼庫(kù)做出了貢獻(xiàn),更有數(shù)千人為 Keras 社區(qū)做出了...

    voidking 評(píng)論0 收藏0
  • 前端開發(fā)工程師人工智能浪潮里的改變

    摘要:前言作為一名在本科期間做過(guò)前端,研究生期間研究了深度學(xué)習(xí),目前是一名前端開發(fā)工程師的我,應(yīng)該說(shuō)一下我作為前端開發(fā)工程師在人工智能浪潮里該做些什么。 前言 作為一名在本科期間做過(guò)前端,研究生期間研究了深度學(xué)習(xí),目前是一名前端開發(fā)工程師的我,應(yīng)該說(shuō)一下我作為前端開發(fā)工程師在人工智能浪潮里該做些什么。 如何看待人工智能 本人是深度學(xué)習(xí)方向探索過(guò)三年的研究生,在老師的洗腦下對(duì)深度學(xué)習(xí)和整個(gè)人工...

    jzzlee 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<