国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Keras.js可以讓你使用瀏覽器在GPU上運行Keras模型

XiNGRZ / 2674人閱讀

摘要:項目可以讓你使用在驅動的你的瀏覽器上運行訓練好的模型。內核卷積本地連接噪聲備注及其限制可以與主線程分開多帶帶運行在中。所以在多帶帶的線程中運行的好處被必須運行在模式中的要求抵消了。所有的測試都會自動運行。

項目可以讓你使用 WebGL 在 GPU 驅動的、你的瀏覽器上運行訓練好的 Keras 模型。模型直接根據 Keras JSON 格式配置文件和關聯的 HDF5 權重而序列化(serialized)。

項目地址:https://github.com/transcranial/keras-js

互動演示

用于 MNIST 的基本卷積網絡

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

在 ImageNet 上訓練的 50 層的殘差網絡(Residual Network)

在 ImageNet 上訓練的 Inception V3

用于 IMDB 情緒分類的雙向 LSTM

為什么要做這個項目?

消除對后端基礎設施或 API 調用的需求

完全將計算卸載到客戶端瀏覽器

互動應用程序

使用方法

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

1. 對 Model 和 Sequential 都適用

model = Sequential()

model.add(...)

...

...

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

一旦訓練完成,保存權重和導出模型架構配置:

model.save_weights("model.hdf5")

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

f.write(model.to_json())

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

2. 在 HDF5 權重文件上運行編碼器腳本:

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

這將在同一個文件夾中產生兩個用作 HDF5 權重的文件:model_weights.buf 和 model_metadata.json

3.Keras.js 所需的三個文件:

模型文件:model.json

權重文件:model_weights.buf

權重元數據文件:model_metadata.json

4.GPU 支持由 weblas(https://github.com/waylonflinn/weblas) 驅動。將 Keras.js 和 Weblas 庫包含進去:

5. 創建新模型

實例化時,數據通過 XHR(相同域或要求 CORS)加載,層被初始化為有向無環圖。當這些步驟完成之后,類方法 ready() 返回一個解決問題的 Promise。然后,使用 perdict() 讓數據通過模型,這也會返回一個 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"]

})

})

可用的層

高級激活: LeakyReLU, PReLU, ELU, ParametricSoftplus, ThresholdedReLU, SReLU

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

內核: Dense, Activation, Dropout, SpatialDropout2D, SpatialDropout3D, Flatten, Reshape, Permute, RepeatVector, Merge, Highway, MaxoutDense

嵌入: Embedding

歸一化: BatchNormalization

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

循環: SimpleRNN, LSTM, GRU

包裝器: Bidirectional, TimeDistributed

還沒有實現的層

目前還不能直接實現 Lambda,但最終會創建一個通過 JavaScript 定義計算邏輯的機制。

內核: Lambda

卷積: Cropping1D, Cropping2D, Cropping3D

本地連接: LocallyConnected1D, LocallyConnected2D

噪聲:GaussianNoise, GaussianDropout

備注

WebWorker 及其限制

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

WebGL MAX_TEXTURE_SIZE

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

開發/測試

對于每一個實現的層都存在廣泛的測試。查看 notebooks/ 獲取為所有這些測試生成數據的 jupyter notebooks。

$ npm install

要運行所有測試,執行 npm run server 并訪問 http://localhost:3000/test/。所有的測試都會自動運行。打開你的瀏覽器的開發工具獲取額外的測試數據信息。

對于開發,請運行:

$ npm run watch

編輯 src/ 中的任意文件都會觸發 webpack 來更新 dist/keras.js。

要創建生產型的 UMD webpack 版本,輸出到 dist/keras.js,運行:

$ npm run build

證書

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

歡迎加入本站公開興趣群

商業智能與數據分析群

興趣范圍包括各種讓數據產生價值的辦法,實際應用案例分享與討論,分析工具,ETL工具,數據倉庫,數據挖掘工具,報表系統等全方位知識

QQ群:81035754

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/4410.html

相關文章

  • Keras vs PyTorch:誰是「第一」深度學習框架?

    摘要:第一個深度學習框架該怎么選對于初學者而言一直是個頭疼的問題。簡介和是頗受數據科學家歡迎的深度學習開源框架。就訓練速度而言,勝過對比總結和都是深度學習框架初學者非常棒的選擇。 「第一個深度學習框架該怎么選」對于初學者而言一直是個頭疼的問題。本文中,來自 deepsense.ai 的研究員給出了他們在高級框架上的答案。在 Keras 與 PyTorch 的對比中,作者還給出了相同神經網絡在不同框...

    _DangJin 評論0 收藏0
  • Web 前端中的增強現實(AR)開發技術

    摘要:增強現實以下簡稱浪潮正滾滾而來,瀏覽器作為人們最唾手可得的人機交互終端,正在大力發展技術。目前年底前端要想實現,都是靠的視頻透視式技術。但這兩個都是移動的,于是谷歌的團隊提供了和兩個庫,以便開發者能用技術來基于和開發,從而實現。 本文作者 GeekPlux,博客地址:http://geekplux.com/2018/01/18/augmented-reality-development...

    Jochen 評論0 收藏0
  • Keras 2發布:實現與TensorFlow的直接整合

    摘要:在年月首次推出,現在用戶數量已經突破了萬。其中有數百人為代碼庫做出了貢獻,更有數千人為社區做出了貢獻。現在我們推出,它帶有一個更易使用的新,實現了與的直接整合。類似的,正在用實現份額部分規范,如。大量的傳統度量和損失函數已被移除。 Keras 在 2015 年 3 月首次推出,現在用戶數量已經突破了 10 萬。其中有數百人為 Keras 代碼庫做出了貢獻,更有數千人為 Keras 社區做出了...

    voidking 評論0 收藏0
  • 前端開發工程師人工智能浪潮里的改變

    摘要:前言作為一名在本科期間做過前端,研究生期間研究了深度學習,目前是一名前端開發工程師的我,應該說一下我作為前端開發工程師在人工智能浪潮里該做些什么。 前言 作為一名在本科期間做過前端,研究生期間研究了深度學習,目前是一名前端開發工程師的我,應該說一下我作為前端開發工程師在人工智能浪潮里該做些什么。 如何看待人工智能 本人是深度學習方向探索過三年的研究生,在老師的洗腦下對深度學習和整個人工...

    jzzlee 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<