TensorFlow.js教程——开始使用ML库

643 阅读5分钟

TensorFlow是机器学习和深度学习的最受欢迎的工具之一。它被许多大型科技公司使用,如Twitter、Uber和谷歌。TensorFlow.js是一个JavaScript库,用于在浏览器中训练和部署机器学习模型。TensorFlow.js被设计为提供与传统TensorFlow相同的特性和功能,但为JavaScript生态系统。

今天,我们将深入了解TensorFlow,并讨论其优点、特点、模型等。在文章的最后,我们将对Layers API进行演练,这是用TensorFlow.js创建机器学习模型的两种方法之一。让我们开始吧!

什么是TensorFlow?

TensorFlow是一个开源的 机器学习平台。它是由谷歌的深度学习人工智能研究团队于2015年创建的。TensorFlow有一个广泛的环境,包括许多不同的工具、库和用户资源。

TensorFlow使用机器学习和深度学习算法。它使用Python作为可访问的前端API,在框架内构建应用程序,然后在C++中执行这些应用程序。通过TensorFlow,我们可以为许多不同的目的训练和运行深度神经网络,如图像分类、自然语言处理等。

众所周知,TensorFlow有一套直观的、易于学习的API。他们的目标是让你轻松学习和实现机器学习、深度学习和科学计算。2019年,他们发布了TensorFlow 2.0,增强了该平台,使其更容易操作,更有效率。他们的一个大变化是使用Keras API进行模型训练。

通过TensorFlow,我们可以创建数据流图。我们在图中看到的每个节点都代表一个数学运算,而节点之间的每条边被称为张量。一个张量是一个多维数组。

TensorFlow有很多好处,例如:

  • 可移植性:TensorFlow使我们能够轻松地训练和部署我们的模型,无论我们使用什么语言或平台。

  • 强大的功能:通过TensorFlow,我们可以使用Keras Functional API和Model Subclassing API等功能创建复杂的拓扑结构。

  • 调试:我们可以使用急迫执行来进行快速和直观的调试。

  • 社区:TensorFlow有一个庞大而活跃的社区。

  • 抽象:TensorFlow有多个抽象层次,所以我们可以根据我们的需要选择合适的抽象层次。

什么是TensorFlow.js?

TensorFlow.js(TFJS)是一个开源的机器学习库,我们可以在任何运行JavaScript的地方运行。它支持WebGL,它是OpenGL的浏览器接口。OpenGL是一个用于渲染2D和3D矢量图的API。TensorFlow.js的目标是重新创建传统的TensorFlow的体验,但为JavaScript生态系统。

TFJS允许JavaScript代码在GPU上执行。它允许我们建立深度神经网络,我们可以很容易地集成到新的或现有的网络应用中,并在很大程度上基于Keras的API。

我们可以在以下平台上使用TensorFlow.js:

  • 在Web浏览器中使用JavaScript的客户端

  • 服务器端和使用Node.js的物联网工具

  • 使用Electron的桌面和Web应用程序

  • 使用React Native的本地移动应用程序

TensorFlow.js模型

TensorFlow.js提供了预训练的、开箱即用的机器学习模型,我们可以在我们的项目中使用。这些训练好的模型和用例中的一些包括:

  • 图像分类

  • 对象检测

  • 身体分割

  • 语音命令识别

  • 简单的人脸检测

  • 转移学习

  • 以及更多

利用这些模型,JavaScript开发人员已经建立了很多非常酷的演示,例如:

  • YouTube的LipSync:这个演示使用Facemesh模型对你的对口型准确性进行评分。

  • Emoji Scavenger Hunt:在这个演示中,你用手机的摄像头在现实世界中寻找表情符号。

  • 摄像头控制器:在这个演示中,你用浏览器中训练的图像玩吃豆人。

如果你想查看这些现有模型的代码,你可以访问tensorflow/tfjs-models GitHub资源库,深入了解!要查看演示的代码,你可以访问GitHub上的tensorflow/tfjs-examples

继续学习

学习基本的机器学习技术,不需要翻阅视频或文档。Educative基于文本的学习路径易于浏览,并具有实时编码环境,使学习快速而高效。

安装TensorFlow.js

在浏览器中安装TensorFlow.js的两种最常见的方式包括:

  • 用npm安装

  • 用脚本标签安装

如果我们想用npm安装,我们可以使用npm cli或yarn。

npm cli安装

npm install @tensorflow/tfjs
yarn add @tensorflow/tfjs

如果我们想使用脚本标签进行安装,我们可以在我们的主HTML文件中添加以下标签:

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@2.0.0/dist/tf.min.js"></script>

用Layers API创建一个ML模型

在TensorFlow.js中,有两种方法可以创建一个机器学习模型。我们可以使用更高层次的Layers API来建立一个使用层的模型,或者我们可以使用Core API的低级操作。今天,我们要仔细研究一下Layers API。

使用Layers API,我们可以创建一个顺序模型或一个功能模型。顺序模型是最常见的模型类型。我们可以通过使用const ,将一个层列表传递给sequential() 函数来创建一个。让我们来看看:

const model = tf.sequential({

indent layers: [

double indent tf.layers.dense({inputShape: [692], units: 35, activation: 'relu'}),

double indent tf.layers.dense({units: 15, activation: 'softmax'}),

indent ]

});

注意:当提供inputShape ,省去了批处理的大小。作为一个例子,假设我们计划给我们的模型提供形状为[X, 692] 的张量,其中X 是任何批次大小。我们会在制作模型时将我们的inputShape 指定为[692]

总结和下一步工作

恭喜你迈出了使用TensorFlow.js的第一步!它是一个伟大的工具,可以添加到你的机器学习工作流程中。有了TensorFlow,在浏览器中训练和部署机器学习和[深度学习模型很容易。机器学习是一个广阔的领域,还有很多东西需要学习。接下来推荐的一些概念包括:

  • 用数据集进行图像处理

  • 用TensorFlow构建高级数据管道

  • Pandas和Numpy中分析和处理数据