原标题:如何在浏览器中使用TensorFlow?
虽然您可以借助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