# Tensorflow.js ## Tensorflow - 一個強大的機器學習框架 - 使用深度學習的方法 - 利用類神經網路的方式進行訓練 ## WHY Tensorflow.js? - 在瀏覽器中就能執行機器學習 --> **不用再安裝任何函式庫或驅動程式** - 瀏覽器 + 機器學習 --> Tensorflow.js - 底層透過 WebGL 存取 GPU 資源,所以運算速度才可以快 - 支援GPU加速。 - TensorFlow.js會自動支援WebGL,當GPU可用的時候,它會在背景中加速您的程式。 - 可透過行動裝置開啟網頁,這樣一來您的模型就能取用手機的感測器資料,ex: 相機。 - 所有資料皆保留在客戶端上,使TensorFlow.js既適用於低延遲推算,同時保護使用者隱私。 - tensorflow.js 分成低階與高階的API - 低階的API:由deeplearn.js衍生,負責處理一些低階如線性代數的資料運算等等,來協助我們處理機器學習中的數學運算部分。 - 高階的API:包裝一些常用的機器學習演算法,同時允許我們載入訓練好的模型,像是由Keras訓練的模型等等。 # Tensorflow vs Tensorflow.js - 速度:Tensorflow > Tensorflow.js - Python can be directly compiled to machine code and directly use the CPU and GPU, whereas tfjs is a script-language which is being compiled on the client and has to use the ```<canvas>``` in the browser to access the GPU. - Tensorboard:Tensorboard用來視覺化神經網路,可以協助觀察整個training model,但是tensorflow沒有直接支援。 - 使用難易度:Tensorflow.js較易,有非常多的API把功能都先包好了,不需要很強的deep learning背景。 - CUDA(Compute Unified Device Architecture,統一計算架構,是由NVIDIA所推出的一種整合技術):tensorflow.js不需要,因為不需要GPU,Tensorflow要用GPU加速就需要下載CUDA。 :::info - [Stack Overflow](https://stackoverflow.com/questions/51797280/machine-learning-tensorflow-v-s-tensorflow-js-v-s-brain-js) - [Quora](https://www.quora.com/What-is-the-difference-between-the-TensorFlow-JS-and-TensorFlow-Python-apart-from-programming-language-Is-there-anything-that-the-TensorFlow-Python-can-do-that-the-TensorFlow-JS-cannot-or-vice-versa) ::: --- ## 補充 ### Tensor - 張量 -- 矩陣 - dispose: 呼叫這個函式會立即將該 tensor 從 GPU 記憶體中移除 - tf.tidy(fn): 如果你要執行數個運算,可以透過 tf.tidy ,將你要執行的運算包在傳遞給他的 function 當中。tidy 會在執行完畢時,將函式執行過程中建立的 tensor 從記憶體中移除,除了你回傳的 tensor 之外。 ### How to get model? - 匯入現有、預先訓練好的模型。 - 有現有的TensorFlow或Keras模型,可將其轉換為js的檔案格式,並將其載入至瀏覽器中進行推論。 - 可以重新訓練一個已匯入的模型。 - 在前面提及的小精靈遊戲範例中,您可使用遷移式學習,透過使用一種叫做「影像再訓練(Image Retraining)」的技術,運用在瀏覽器中收集到的少量數據,做到在離線狀態下也能訓練現有模型。這是一種只需少量資料也能快速訓練精確模型的方法。 - 直接在瀏覽器中建立模型。 - 您也可以用TensorFlow.js,運用Javascript和高階API,直接在瀏覽器內定義、訓練並運作模型。若您熟悉Keras,那麼這些高層API對您來說應該不陌生。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up