成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在瀏覽器中使用TensorFlow?

譯文
人工智能 深度學習
充分利用TensorFlow.js,用JavaScript開發和訓練機器學習模型,并部署在瀏覽器中或Node.js上。

[[341102]]

【51CTO.com快譯】雖然您可以借助TensorFlow用數量較少的訓練數據來訓練簡單的神經網絡,但對于擁有龐大訓練數據集的深度神經網絡而言,確實需要使用具有CUDA功能的英偉達GPU、谷歌TPU或FPGA進行加速。就在不久前,替代方法一直是在CPU集群上訓練數周。

TensorFlow 2.0引入的創新之一是JavaScript實現:TensorFlow.js。我沒料到這會加快訓練或推理速度,但確實如此,它通過WebGL API支持所有的GPU(不僅僅支持具有CUDA功能的GPU)。

TensorFlow.js簡介

TensorFlow.js是一個庫,用于使用JavaScript開發和訓練機器學習模型,并將其部署在瀏覽器中或Node.js上。您可以使用現有模型、轉換Python TensorFlow模型、使用遷移學習用您自己的數據重新訓練現有模型以及從頭開始開發模型。

TensorFlow.js后端

TensorFlow.js支持多個后端來執行,不過每次只有一個后端處于活躍狀態。TensorFlow.js Node.js環境支持使用Python/C TensorFlow的安裝版本作為后端,TensorFlow反過來可能使用機器可用的硬件加速技術,比如CUDA。還有面向Node.js的基于JavaScript的后端,但功能有限。

在瀏覽器中,TensorFlow.js有幾個特點不一的后端。WebGL后端使用面向存儲的WebGL紋理和面向執行的WebGL著色器提供GPU支持,速度比普通CPU后端最多快100倍。 WebGL不需要CUDA,因此它可以充分利用現有的任何GPU。

瀏覽器版的WebAssembly(WASM)TensorFlow.js后端使用XNNPACK庫來優化神經網絡operator的CPU實現。WASM后端通常比JavaScript CPU后端快得多(快10倍至30倍),但除了超小模型外,通常比WebGL后端要慢。您的實際情況可能有所不同,因此請在您自己的硬件上針對自己的模型測試WASM后端和WebGL后端。

TensorFlow.js模型和層

TensorFlow.js支持用于構建神經網絡模型的兩個API。一個是Layers API,與TensorFlow 2中的Keras API實際上一樣。另一個是Core API,它實際上直接操縱張量(tensor)。

與Keras一樣,TensorFlow.js Layers API有兩種創建模型的方法:順序型和功能型。順序型API是層的線性堆棧,通過層列表(如下所示)或model.add()方法來實現: 

  1. const model = tf.sequential({ 
  2.  
  3. layers: [ 
  4.  
  5. tf.layers.dense({inputShape: [784], units: 32, activation: 'relu'}), 
  6.  
  7. tf.layers.dense({units: 10, activation: 'softmax'}), 
  8.  
  9.  
  10. });  

功能型API使用tf.model() API,可創建任意的有向無環圖(DAG)網絡: 

  1. // Create an arbitrary graph of layers, by connecting them 
  2.  
  3. // via the apply() method. 
  4.  
  5. const input = tf.input({shape: [784]}); 
  6.  
  7. const dense1 = tf.layers.dense({units: 32, activation: 'relu'}).apply(input); 
  8.  
  9. const dense2 = tf.layers.dense({units: 10, activation: 'softmax'}).apply(dense1); 
  10.  
  11. const model = tf.model({inputs: input, outputs: dense2});  

Core API可使用不同的代碼實現同樣的目的,但與層之間沒有簡單直觀的聯系。以下的模型貌似基本的張量操作,但它創建與前兩個公式一樣的網絡。注意下面model()函數中使用的relu()和softmax(),這兩個都是神經網絡操作。 

  1. // The weights and biases for the two dense layers. 
  2.  
  3. const w1 = tf.variable(tf.randomNormal([784, 32])); 
  4.  
  5. const b1 = tf.variable(tf.randomNormal([32])); 
  6.  
  7. const w2 = tf.variable(tf.randomNormal([32, 10])); 
  8.  
  9. const b2 = tf.variable(tf.randomNormal([10])); 
  10.  
  11. function model(x) { 
  12.  
  13. return x.matMul(w1).add(b1).relu().matMul(w2).add(b2).softmax(); 
  14.  
  15.  

預構建的TensorFlow.js模型

存儲庫中記載了十多個預構建的TensorFlow.js模型,它們托管在NPM(用于Node.js中)和unpkg(用于瀏覽器中)上。您可以使用所提供的這些模型或用于遷移學習。稍花點精力,您還可以將它們用作構建其他模型的模塊。

其中一些模型實時使用設備的攝像頭,比如手姿勢:

圖1. 手姿勢可以檢測手掌,并跟蹤手骨骼手指。

以下列表介紹了大多數預包裝的TensorFlow.js模型,便于索引。

  • 圖像分類
  • 對象檢測
  • 身體分割
  • 姿勢估計
  • 文本毒性檢測
  • 通用句子編碼器
  • 語音命令識別
  • KNN分類器
  • 簡單人臉檢測
  • 語義分割
  • 人臉標志檢測
  • 手姿勢檢測
  • 自然語言問答
  • ml5.js簡介

ml5.js是主要在紐約大學開發的一種對用戶友好的開源高級TensorFlow.js接口。ml5.js可在瀏覽器中立即訪問預訓練的模型,以檢測人體姿勢、生成文本、用另一種樣式設置圖像、創作音樂、音高檢測和常用英語單詞關系等。TensorFlow.js主要針對數據科學家和開發人員,ml5.js則旨在支持公眾更廣泛地了解機器學習。

ml5.js中的大多數示例依賴TensorFlow.js模型。它們已包裝成網頁,您可以按原樣運行或編輯它們,比如使用不同的圖像。

 

圖2. PoseNet可以在瀏覽器中根據圖像或視頻源執行實時姿勢估計。

將Python TensorFlow模型轉換成JavaScript

TensorFlow.js存儲庫的一部分含有用于所保存的TensorFlow和Keras模型的轉換器。它支持三種格式:SavedModel(TensorFlow的默認格式)、HDF5(Keras的默認格式)和TensorFlow Hub。您可以將該轉換器用于標準存儲庫中的保存模型、自己訓練的模型以及在別處找到的模型。

轉換實際上有兩個步驟。第一步是將現有模型轉換成model.json和二進制權重文件。第二步是使用API​​將模型加載到TensorFlow.js中:使用面向轉換后的TensorFlow和TensorFlow Hub模型的tf.loadGraphModel,或者使用面向轉換后的Keras模型的tf.loadLayersModel。

使用遷移學習

TensorFlow.js支持遷移學習,支持方式實際上與TensorFlow一樣。說明文檔給出了幾個示例,用于為您自己的圖像定制MobileNet,以及為您自己的聲音類定制語音命令識別模型。實際上,您在這每一個代碼實驗室中所做的就是在訓練后的模型上添加一個小小的自定義分類器,并對其進行訓練。

總體而言,TensorFlow能做的,TensorFlow.js基本上都能做。然而,鑒于TensorFlow.js的目標環境(面向游戲的普通GPU)通常比常常用于TensorFlow深度學習訓練的龐大英偉達服務器GPU擁有較少的GPU內存,您可能不得不縮減模型的大小,以便在瀏覽器中運行。轉換實用程序可以為您完成這部分工作,但是您要手動取出層,并縮減訓練的批處理大小。

原文標題:How to use TensorFlow in your browser,作者:Martin Heller

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2022-10-13 14:28:40

Brave瀏覽器畫中畫

2022-02-16 20:36:30

瀏覽器PythonJavaScript

2019-07-23 10:22:11

TensorFlow.Python機器學習

2011-05-18 09:30:40

Linux瀏覽器

2021-10-13 14:53:50

UbuntuVivaldi瀏覽器

2016-08-03 15:21:03

UbuntuLinux易用性

2022-07-07 07:22:01

瀏覽器JavaScript工具

2022-09-16 07:33:52

瀏覽器深色模式Firefox

2022-05-10 09:12:16

TypeScript裝飾器

2009-03-05 09:37:19

2021-11-29 14:38:45

FedoraLinuxBrave瀏覽器

2020-11-25 09:47:11

FedoraGoogle Chro瀏覽器

2022-11-08 11:39:34

Web瀏覽器深色模式

2017-02-16 19:09:56

Kali LinuxGoogle Chro瀏覽器

2017-02-08 14:30:08

Chrome密碼瀏覽器

2024-10-17 08:36:31

2022-05-17 08:25:10

TypeScript接口前端

2022-06-23 08:00:53

PythonDateTime模塊

2021-06-09 09:36:18

DjangoElasticSearLinux

2021-03-09 07:27:40

Kafka開源分布式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 毛片免费在线 | 日本久久黄色 | 久久婷婷国产麻豆91 | 久久亚洲国产精品日日av夜夜 | 日韩精品一区在线 | 日韩欧美三区 | 一级黄色片免费在线观看 | 国产91精品久久久久久久网曝门 | 黄色毛片网站在线观看 | 国产不卡视频 | 日本久久久久久久久 | 国产精品美女一区二区 | 欧美一区2区三区4区公司二百 | 人人干97| 99re6在线视频精品免费 | 亚洲国产精品久久久久婷婷老年 | 天堂久久网 | 91电影在线播放 | 国产成人综合一区二区三区 | 国产福利资源 | 91黄色片免费看 | 1204国产成人精品视频 | 在线观看国产三级 | 日韩中文字幕一区 | 欧美一区二区三区在线免费观看 | 欧美 日韩 国产 一区 | 欧美日韩中文字幕在线 | 涩涩导航 | 欧美精品一区二区三区在线播放 | 婷婷五月色综合香五月 | 久久免费精品视频 | 久久久九九 | 祝你幸福电影在线观看 | 亚洲成人精品免费 | 中文字幕在线看第二 | 亚洲精品国产一区 | 日韩免费在线观看视频 | 日韩高清中文字幕 | 91夜夜夜| 国产高清视频在线 | 国产精品久久久久久久久久久久冷 |