全文共字,预计学习时长4分钟
当谈及机器学习和谷歌的TensorFlow时候,相比于JavaScript和其他浏览器,大多数人会想到Python和专用硬件。本文解释了TensorFlow.js的用途,以及机器学习在浏览器中运行的意义。
TensorFlow.js是一个JavaScript库,可以在浏览器中运行,也可以通过服务器上的Node.js.运行。但是,在本文中,我们着眼的范围仅在于浏览器中的应用程序。TensorFlow.js的界面完全基于TensorFlow的高级APIKeras。Keras代码通常只能和TensorFlow.js代码区分开,大多数差异是因为在Python和JavaScript配置参数中语言结构不同而导致的。
每台GPU都有机器学习
TensorFlow.js可以让你从零开始机器学习。如果有可使用的必需数据,你可以直接在浏览器中训练或执行模型。为此,TensorFlow.js通过WebGL浏览器API,使用计算机的图形卡(GPU)。这样一来,由于WebGL浏览器需要一些技巧,才能强制执行TensorFlow.js所需的矩阵乘法,导致部分性能最终会丢失。然而,这是无法避免的,因为TensorFlow.js作为一种机器学习策略,是神经网络的主要支撑。这些损耗,可以在训练期间或预测期间,通过矩阵乘法准确反映出来。
到这里,我们已经看到了TensorFlow.js胜过TensorFlow的第一个优势:尽管TensorFlow目前只能通过CUDA支持NVIDIAGPU,但TensorFlow.js可以和任意显卡配合使用。清单1包含了使用HighLevelAPI在浏览器中创建顺序神经网络的代码。如果你了解TensorFlow的KerasAPI,那一切操作都很清楚,教程也可以在tensorflow.org上找到。
Listing1
//createasequentialmodel
constmodel=tf.sequential();
//addafullyconnectedlayerwith10units(neurons)
model.add(tf.layers.dense({units:10}));
//addaconvolutionallayertoworkonamonochrome28x28pixelimagewith8
//filterunits
model.add(tf.layers.conv2d({
inputShape:[28,28,1],
filters:8
}));
//