TensorFlow.js 在瀏覽器上也能搞定機器學習!
在機器學習快速發展的今天,各種機器學習平台層出不窮,為了滿足不同業務場景的需求,可以將機器學習的模型分別部署到Android、iOS、Web 瀏覽器,讓模型在端側能夠進行推演,從而發揮模型的潛能。其中TensorFlow.js 是 TensorFlow 的 JavaScript 版本,支援 GPU 硬體加速,可以運行在 Node.js 或瀏覽器環境中。它不但支援完全基於JavaScript 從頭開始開發、訓練和部署模型,也可以用來運行現有的 Python 版 TensorFlow 模型,或基於現有的模型進行繼續訓練。
TensorFlow.js 優勢
TensorFlow.js 可以讓使用者在瀏覽器中載入TensorFlow模型,讓使用者透過本地的CPU/GPU 資源進行機器學習推演。瀏覽器中進行機器學習,相對比與伺服器端來講,將擁有以下四大優勢:
1. 不需要安裝軟體或驅動程式(開啟瀏覽器即可使用) ;
2. 可以透過瀏覽器進行更方便的人機互動;
3. 可以透過手機瀏覽器,呼叫手機硬體的各種感測器(如:GPS、加速度感測器、相機等);
4. 使用者的資料可無需上傳至伺服器,在本機即可完成所需操作。
TensorFlow.js 架構
上面介紹了TensorFlow.js 的優勢,這裡讓我們來了解TensorFlow.js 的架構。如圖1 所示,TensorFlow.js 架構包括Core API 和 Layers API(圖的上半部)。其中Layers API 提供更高層次的接口,例如類似KerasAPI的語法結構,這些語法結構的目的是透過更高粒度的抽象讓開發人員使用JavaScript 方便地進行機器學習的開發。而CoreAPI主要包括TensorFlow.js 所提供的核心功能,例如Tensor的建立、資料的運算、記憶體管理等。同時CoreAPI 也提供了工具將Python中的機器學習模型轉換成瀏覽器能夠使用的JSON格式,方便在JavaScript中能夠重複使用現有的模型。因此,CoreAPI能夠在瀏覽器端運行,可以使用WebGL進行GPU加速,當然它也可以在Node.js 上運行,依賴特定的運行環境透過GPU、TPU進行加速。
圖1 TensorFlow.js 架構
TensorFlow.js 進行線性迴歸的案例
#前面說了TensorFlow.js 的優勢和架構,這裡為了大家能對TensorFlow.js 有更深的了解,我們舉一個簡單的線性回歸例子來看看在瀏覽器端是如何實現機器學習的訓練和推演的。
假設我們需要建構y = ax1 bx2 c 的線性模型,如圖2 所示,需要如下幾個步驟完成:
1. 下載TensorFlow.js 檔案
2. 訓練資料與測試資料
3. 建立模型
#4. 訓練模型
5.模型應用
#圖2 TensorFlow.js建立線性迴歸模型
從這5 個步驟可以看出基本流程和在Python中建立模型是一樣的,除了第一步需要下載TensorFlow.js 的檔案以外。
如圖3 所示,為了載入TensorFlow.js文件,我們需要在頁面的head 標籤中引入script,其中文件tf.min.js 已經部署到了TensorFlow 的CDN 伺服器了,我們只需要引用該文件。
圖3 引用TensorFlow.js 檔案
為了保證TensorFlow.js檔案被正確引入,如圖4所示,打開瀏覽器並開啟開發者工具,在Console中輸入tf.version 從而可以獲取TensorFlow對應的tfjs-core,tfjs-backend-cpu等信息,說明文件引入成功了。由於TensorFlow.js 檔案中包含了TensorFlow的運算庫,因此這裡需要確保該檔案被正確載入了。
圖4 確認TensorFlow.js 檔案被正確地引入
#有了對TensorFlow.js 檔案的載入之後,我們就可以在html中寫入機器學習的程式碼了。如圖5 所示,在script標籤中寫入如下程式碼,其中async 的doTraining 方法是用來對模型進行訓練的,epoch 是500 次,這裡使用async 的目的是不讓網頁的其他操作阻塞。在函數內部呼叫了model 中的fit 方法對模型進行擬合,輸入參數是xs和ys,在回調函數callbacks 中輸出擬合結果,並列印loss 的損失函數。
接下來就是來建構model了,這裡使用了tf.sequential();建構模型,為了建構y = ax1 bx2 c 模型,這裡需要建構一個神經元,這個神經元有兩個輸入和一個輸出。
所以,透過model.add 增加一個dense 層,定義units:1,也就是一個神經元,inputShape:[2],輸入是一個二維。有了模型之後,透過model.complie進行編譯模型,這裡使用了meanSquareError的損失函數以及optimizer為sgd。最後透過model的summary方法把整個神經元網路印出來。緊接著在dataset環節,我們準備了xs 、ys作為輸入,testData_x作為測試資料。最後,呼叫doTraining(model)對模型進行訓練,並使用predict方法對結果進行預測。
圖5 在瀏覽器中訓練模型
#將上述檔案儲存為html檔案以後重新打開,大約1-2秒以後就可以看到圖6 的結果。右邊是開發者工具中列印出每次epoch 獲得的loss 結果,可以看出隨著訓練的進程loss 損失函數是越來越小的。同時最終得到了Tensor的結果為 15.5082932 的預測結果。
圖6 運行結果
#TensorFlow.js 模型重複使用
有了上面簡單的例子,我們可以在瀏覽器端輕鬆地巡檢機器學習模型,但是模型的訓練本事是需要耗費資源,同時也需要較長的訓練時間。那麼,我們能否將已經訓練好的模型直接拿到瀏覽器來預測和推演呢?答案是肯定的。
模型的複用一般而言有兩種方式,第一種是使用開發者自己在Python中創建好的模型,透過TensroFlow提供的工具,將模型保存成tfjs格式並將其在瀏覽器中使用。另一種是直接呼叫TensorFlow 提供的模型。
圖7 模型重複使用
開發自己定義的模型
如圖8 所示,我們在python中進行模型建構、訓練和保存。建構模型、神經元網路、設定優化器、損失函數以及資料準備等步驟,這裡就不贅述。在模型訓練完畢之後透過save_model 方法對模型進行保存。
圖8 發展自己的模型
有了模型,接著就需要使用TensorFlow.js提供的工具將模型轉換,才能讓模型在瀏覽器中被使用。
這裡使用以下指令安裝TensorFlow.js的工具。
pip install tensorflowjs tensorflwjs_converter --input_format=keras_saved_model ./saved_model/ ./model/
這裡使用了tensorflwjs_converter 指令對模型進行轉換,input的格式是keras_saved_model,來源檔案位址是./saved_model/,目標檔案位址是./ model/,回車執行之後就可以在目標檔案位址看到轉換以後的檔案了。
在瀏覽器中只需要引用這個轉換好的模型文件,如圖9 所示,在script中的run方法直接引用了模型文件model.json使用loadLayersModel裝載模型,設定了input 之後就使用predict方法對模型進行預測了。
圖9 使用轉換後的模型
TensorFlow 提供的模型
上面我們示範了可以使用自己訓練好的機器學習模型,這裡也可以透過#https://www.php.cn/link/ff82db7535530637af7f8a96284b3459
#。
TensorFlow
提供的模型。如圖10 所示,TensorFlow 已經為一些業務場景量身打造了一些模型,例如:人像深度估計、影像分類、物件偵測、身體分割、姿勢偵測、文字惡意檢測等等。想了解如何進一步在生產場景中部署模型的同學,也可以抽空看看谷歌開發者專家對TensorFlow 部署功能的講解和常見問題的解答:#https: //www.php.cn/link/bb96ff7f5c9505fd971126ecd171bec2##圖10 TensorFlow 提供的模型##圖10 TensorFlow 提供的模型##圖10 TensorFlow 提供的模型
##圖10 TensorFlow 提供的模型
##############圖10 TensorFlow 提供的模型#### ########透過學習TensorFlow 官方線上課程,我從一個機器學習小白成長為一個經驗豐富的機器學習老手。從#############《TensorFlow入門實操課程》######################### #《TensorFlow入門課程—部署篇》#############課程中,我學會如何對機器學習模型進行保存轉換,同時還可以根據不同的應用場景將機器學習模型部署到Android、iOS、瀏覽器以及服務端。 TensorFlow 的平台就好像一個萬花筒,讓我看到了五彩繽紛的應用項目,同時也了解了機器學習建模和預測的底層邏輯。如果你也想讓機器學習的能力提高,可以一起學習#############《TensorFlow入門課程—部署篇》############ ##,並留下你對課程的評價,現在報名參與,還有機會贏得官方精美禮品哦! ##################張雲波,活躍的IT網紅講師,擁有學員31w ,國內早期開始和發布蘋果Swift、安卓Kotlin、微信小程式、區塊鏈技術的講師之一。主攻前端開發、iOS開發、Android開發、Flutter開發、區塊鏈Dapp開發,有豐富的大公司和海外工作經驗。 ###以上是TensorFlow.js 在瀏覽器上也能搞定機器學習!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

安裝步驟:1、下載和安裝Miniconda,依照作業系統選擇適合的Miniconda版本,並依照官方指南進行安裝;2、使用「conda create -n tensorflow_env python=3.7」指令建立一個新的Conda環境;3、啟動Conda環境;4、使用「conda install tensorflow」指令安裝最新版的TensorFlow;5、驗證安裝即可。

在本文中,我們將使用TensorFlow和Keras建立一個影像分類器,可以區分貓和狗的影像。為了做到這一點,我們將使用TensorFlow資料集中的cats_vs_dogs資料集。該資料集由25000張打過標籤的貓狗的圖像組成,其中80%的圖像用於訓練,10%用於驗證,10%用於測試。載入資料我們從使用TensorFlowDatasets載入資料集開始。將資料集拆分為訓練集、驗證集和測試集,分別佔資料的80%、10%和10%,並定義一個函數來顯示資料集中的一些樣本影像。 importtenso

安裝步驟:1、確保已經安裝了Python和pip;2、開啟命令提示字元或終端機窗口,輸入「pip install tensorflow」指令安裝TensorFlow;3、若想安裝CPU版本的TensorFlow,可以使用「pip install tensorflow- cpu」指令;4、安裝完成後,即可在Python中使用TensorFlow。

在機器學習快速發展的今天,各種機器學習平台層出不窮,為了滿足不同業務場景的需求,可以將機器學習的模型分別部署到Android、iOS、Web 瀏覽器,讓模型在端側能夠進行推演,從而發揮模型的潛能。其中TensorFlow.js 是 TensorFlow 的 JavaScript 版本,支援 GPU 硬體加速,可以運行在 Node.js 或瀏覽器環境中。它不但支援完全基於JavaScript 從頭開始開發、訓練和部署模型,也可以用來運行現有的 Python 版 TensorFlow 模型,或基於現

安裝步驟:1、開啟PyCharm並開啟你的專案;2、轉到"File"_「Settings」;3、選擇"Project"_「Python Interpreter」;4、在右上角的設定視窗中,點擊"+ "符號新增新的庫;5、在搜尋框中輸入"tensorflow",選擇最新版本的TensorFlow;6、點擊"Install Package"按鈕,等待安裝完成即可。

隨著人工智慧和機器學習的日益發展,越來越多的開發者開始探索使用不同的技術來建立機器學習演算法和應用程式。而PHP作為一門通用性語言,也逐漸應用於人工智慧領域。本文將介紹如何使用PHP和TensorFlow創建機器學習模型和神經網路應用程序,幫助開發者更好的掌握這項技術。 PHP、TensorFlow簡介PHP是一門腳本語言,適用於Web開發,可用於伺服器端腳本,也

譯者 | 朱先忠審校 | 墨色深度學習每天都在以各種形式影響著我們的生活。無論是基於用戶語音命令的Siri、Alexa、手機上的即時翻譯應用程序,還是支援智慧拖拉機、倉庫機器人和自動駕駛汽車的電腦視覺技術,每個月似乎都會迎來新的進展。幾乎所有這些深度學習應用程式的編寫都來自於這三種框架:TensorFlow、PyTorch或JAX。那麼,你到底該使用哪些深度學習框架呢?在本文中,我們將對TensorFlow、PyTorch和JAX進行進階比較。我們的目標是讓你了解發揮優勢的應用程式類型,

在當今的時代,深度學習和人工智慧已經成為了許多行業中不可或缺的一部分。而在實現這些技術的過程中,PHP的角色也越來越受到了重視。本文將介紹如何將PHP和TensorFlow整合起來,以實現深度學習和人工智慧處理。一、什麼是TensorFlowTensorFlow是Google開源的人工智慧系統,它可以幫助開發者創建並訓練深度神經網路模型
