预制模型是指已经针对特定目的进行训练的模型。您可以立即使用 TensorFlow.js 使用各种经过训练的开源模型来完成许多机器学习任务。本主题提供有关如何查找和选择适合您用例的预制模型的指南。
使用预制模型的好处
TensorFlow.js 拥有广泛的预制模型,这些模型可以在任何项目中开箱即用,并为您提供以下重大优势
- 节省时间和资源:避免收集、准备和标记数据,然后训练、评估和改进模型的耗时过程。能够快速原型化您的想法。
- 利用现有研究和文档:开发预制模型中使用的最先进研究使您能够快速部署它们,同时了解它们在不同现实世界场景中的表现。
- 启用迁移学习:预制模型允许您将模型为一项任务学习到的信息用于另一个类似的用例。这种迁移学习过程将使您能够在自定义数据上快速训练现有模型。
查找模型
查找适合您用例的现有 TensorFlow.js 模型取决于您要完成的任务。例如,您的应用程序需要在客户端还是服务器端运行?隐私、速度和准确性等因素有多重要?等等。
以下是一些推荐的发现可用于 TensorFlow.js 的模型的方法
通过示例:使用 TensorFlow.js 查找和开始使用模型的最快方法是浏览TensorFlow.js 演示部分,以查找执行与您的用例类似任务的演示。此目录提供了有趣的示例用例,并提供指向代码的链接,这些链接将帮助您入门。
通过数据输入类型:除了查看与您的用例类似的示例之外,另一种发现适合您自己使用的模型的方法是考虑您要处理的数据类型,例如音频、文本或图像。机器学习模型通常设计用于与这些数据类型之一一起使用,因此查找处理您要使用的数据类型的模型可以帮助您缩小要考虑的模型范围。您可以根据TensorFlow.js 模型部分中的通用用例开始浏览 TensorFlow.js 模型,或者在TensorFlow Hub上浏览更多模型。在 TensorFlow Hub 上,您可以使用问题域过滤器查看模型数据类型并缩小您的列表。
以下列表链接到TensorFlow Hub上的 TensorFlow.js 模型,用于常见用例
在类似模型之间进行选择
如果您的应用程序遵循常见的用例,例如图像分类或目标检测,您可能会发现多个适合您需求的 TensorFlow.js 模型。找到一些适用于您的用例的模型后,您需要确定能够提供最佳解决方案的模型。为此,请考虑每个模型的以下方面
- 推理速度
- 文件大小
- 运行时 RAM 使用量
- 模型功能/能力
在多个模型之间进行决策时,您可以首先根据最具限制性的约束条件(例如模型大小、数据大小、推理速度或准确性等)缩小选择范围。
如果您不确定最具限制性的约束条件是什么,请假设它是模型大小,并选择最小的可用模型。选择小型模型可以为您在成功部署和运行模型的位置方面提供最大的灵活性。小型模型通常也会产生更快的推理,而更快的预测通常会带来更好的最终用户体验。但是,小型模型通常具有较低的准确率,因此如果您最关心预测准确率,则可能需要选择较大的模型。
模型来源
TensorFlow.js 中的预制模型通常以两种形式提供。官方模型封装在 JavaScript 类中,使其易于部署到您的应用程序中。其他模型则以原始形式提供,可能需要额外的代码来预处理和后处理输入和输出数据。
使用 TensorFlow.js 模型 作为您查找和选择用于 TensorFlow.js 的模型的首选目的地。这些是 TensorFlow.js 团队提供的官方模型,它们已经拥有 JavaScript 包装器,使其易于集成到您的代码中。 TensorFlow Hub 网站提供了更多模型。请注意,Hub 中的模型可能以原始形式提供,需要您额外的工作才能集成。
TensorFlow 模型
可以 转换 常规 TensorFlow 模型为 TensorFlow.js 格式。有关转换模型的更多信息,请参阅 模型转换 主题。您可以在 TensorFlow Hub 和 TensorFlow 模型花园 中找到 TensorFlow 模型。
进一步阅读
- 现在您已经知道在哪里可以找到可供使用的模型,请参阅 React Native 教程,了解如何在 Web 应用程序中使用此类模型。