TensorFlow.js

TensorFlow.js是一個由谷歌開發的開源JavaScript庫,用於在瀏覽器和Node.js環境中進行機器學習開發。它允許開發者使用JavaScript直接構建、訓練和部署機器學習模型,無需依賴外部伺服器或外掛程式。該庫提供了靈活的API,支持從底層線性代數運算到高級神經網路層級的開發,並包含豐富的預訓練模型,適用於計算機視覺、自然語言處理、音頻識別等多種任務。TensorFlow.js支持WebGL、WebAssembly等多類硬體加速後端以提升性能,並能將已有的PythonTensorFlow模型轉換為JavaScript格式運行。其核心優勢在於實現了客戶端機器學習,保障了數據隱私,降低了部署門檻,是TensorFlow生態系統的重要組成部分。

基本介紹

  • 外文名:TensorFlow.js
研發背景,發展歷程,核心技術,核心概念:張量與運算,API分層設計,計算後端,配套工具庫,運營模式,核心團隊,重要事件,

研發背景

TensorFlow.js是由谷歌開發的開源機器學習庫,於2018年3月30日在TensorFlow開發者峰會上正式發布。
TensorFlow.js面向JavaScript開發者,旨在降低在Web和Node.js環境中進行機器學習的門檻,允許開發者在瀏覽器和Node.js環境中訓練和部署機器學習模型。

發展歷程

2018年3月30日,在TensorFlow開發者峰會上,谷歌發布了面向JavaScript開發者的全新機器學習框架TensorFlow.js。TensorFlow.js是一個開源的用於開發機器學習項目的WebGL-accelerated JavaScript庫,允許開發者在瀏覽器中訓練和部署模型。
2020年,TensorFlow.js為WebAssembly(WASM)後端引入了SIMD(單指令多數據)指令和多執行緒支持(自版本2.3.0起),利用XNNPACK庫實現了顯著的性能提升,大幅增強了網頁端機器學習的開發效率。
2022年,TensorFlow.js發布了3.0版本。此次升級帶來了多項重要特性,包括支持創建自定義模組以最佳化打包體積、主要代碼以ES2017語法的ES模組形式發布、對核心包(@tensorflow/tfjs-core)進行了精簡以支持更好的tree-shaking,以及代碼重構以簡化核心和梯度註冊機制。
此後,TensorFlow.js持續進行版本疊代與功能更新。例如,在2024年10月發布了v4.22.0版本。

核心技術

TensorFlow.js是一個開源的硬體加速JavaScript庫,用於在瀏覽器和Node.js中訓練和部署機器學習模型。

核心概念:張量與運算

TensorFlow.js中數據的中央單元為tf.Tensor,是一組形狀為一維或多維數組的值,張量是向量和矩陣向更高維度的泛化。tf.Tensor包含秩(rank)、形狀(shape)和數據類型(dtype)屬性,可以使用tf.tensor()等方法創建,並使用reshape()等方法改變形狀。張量可用於存儲數據,而運算(Operations)則用於操作該數據,由於張量是不可變的,因此運算不會改變其值,而是返回新的tf.Tensor。

API分層設計

TensorFlow.js提供高低層API以適應不同開發需求,低級的Core API為神經網路和數值計算提供靈活的基礎功能,高級的Layers API則提供類似Keras的模型構建接口以簡化開發。

計算後端

TensorFlow.js支持多種計算後端,環境會自動選擇或允許開發者手動設定。WebGL後端(‘webgl’)在瀏覽器中提供GPU加速,是適用於瀏覽器的主要後端之一。WASM後端利用SIMD指令和XNNPACK多執行緒在CPU上提供加速,適用於小型模型或低端設備。CPU後端(‘cpu’)是純JavaScript實現,兼容性廣泛但性能較低。Node.js後端通過綁定TensorFlow C++庫在Node.js環境中提供原生性能,支持CPU和CUDA GPU。此外,TensorFlow.js還支持WebGPU後端和React Native平台。

配套工具庫

TensorFlow.js生態系統包含多個關鍵工具庫,TensorFlow.js Data是用於數據載入和準備的API。TensorFlow.js Converter是用於將TensorFlow SavedModel或Keras模型轉換為TensorFlow.js格式的命令行工具和API。TensorFlow.js Vis是用於在瀏覽器中可視化模型訓練過程和行為的工具庫。TensorFlow.js AutoML是用於載入和運行AutoML Edge生成模型的API。

運營模式

TensorFlow.js是一個託管於GitHub的開源項目,接受社區貢獻。其核心庫及各功能模組主要通過NPM包管理器進行分發。項目的社區貢獻由TensorFlow.js特殊興趣小組(SIG TF.js)負責協調。
此外,項目擁有活躍的社區支持渠道,包括TensorFlow社區論壇、Stack Overflow問答板塊(使用tfjs標籤)以及僅發布公告的郵件列表等。

核心團隊

TensorFlow.js是由谷歌大腦(Google Brain)團隊開發與維護的開源項目。其主要貢獻者包括蔡善清、斯坦利·比列斯奇和埃里克·D.尼爾森等谷歌大腦團隊的軟體工程師,他們是TensorFlow.js高階API的主要開發人員。此外,該項目擁有龐大的開發者社區,在GitHub上已有超過300名貢獻者。

重要事件

2018年3月30日,谷歌在TensorFlow開發者峰會上發布了面向JavaScript開發者的全新機器學習框架TensorFlow.js,這是一個開源的用於開發機器學習項目的WebGL-accelerated JavaScript庫,能訓練並部署機器學習模型在瀏覽器中,被視為首個支持在瀏覽器中進行機器學習模型訓練和部署的主流JavaScript庫。
2020年,TensorFlow.js為WASM後端引入了SIMD指令和多執行緒支持,從版本2.3.0起實現了顯著的性能提升。
2022年,TensorFlow.js升級至3.0版本,引入了包括支持創建自定義模組以最佳化包體積、主要代碼以ES2017語法的ES模組形式提供等變化。
TensorFlow.js通過發布微信小程式外掛程式等形式擴展了其套用平台,該外掛程式支持WebGL、CPU及WASM後端,並支持模型快取。
2026年初,谷歌公布了TensorFlow.js 1.0版本,其性能得到進一步最佳化,例如為瀏覽器中的MobileNet v1推理帶來了9倍提升,並提供了更多現成模型。

相關詞條

熱門詞條

聯絡我們