TensorFlow 模型花园提供了许多最先进的机器学习 (ML) 模型的实现,涵盖视觉和自然语言处理 (NLP),以及工作流程工具,可让您快速配置和在标准数据集上运行这些模型。无论您是想为知名模型基准测试性能,验证最近发布的研究结果,还是扩展现有模型,模型花园都可以帮助您推动您的 ML 研究和应用程序发展。
模型花园为机器学习开发人员提供了以下资源
- 官方模型 用于视觉和 NLP,由 Google 工程师维护
- 研究模型 作为 ML 研究论文的一部分发布
- 训练实验框架 用于快速、声明式地配置官方模型的训练
- 专门的 ML 操作 用于视觉和自然语言处理 (NLP)
- 模型训练循环 使用 Orbit 进行管理
这些资源旨在与 TensorFlow 核心框架一起使用,并与您现有的 TensorFlow 开发项目集成。模型花园资源也以 开源 许可证提供,因此您可以自由地扩展和分发模型和工具。
实际的 ML 模型在训练和运行时计算量很大,可能需要图形处理单元 (GPU) 和张量处理单元 (TPU) 等加速器。模型花园中的大多数模型都是在使用 TPU 的大型数据集上训练的。但是,您也可以在 GPU 和 CPU 处理器上训练和运行这些模型。
模型花园模型
模型花园中的机器学习模型包含完整的代码,因此您可以测试、训练或重新训练它们以进行研究和实验。模型花园包含两类主要模型:官方模型和研究模型。
官方模型
官方模型 存储库是一个最先进模型的集合,重点关注视觉和自然语言处理 (NLP)。这些模型使用当前的 TensorFlow 2.x 高级 API 实现。此存储库中的模型库针对快速性能进行了优化,并由 Google 工程师积极维护。官方模型包含您可以使用模型花园 训练实验框架 快速配置实验的其他元数据。
研究模型
研究模型 存储库是一个模型的集合,这些模型作为研究论文的代码资源发布。这些模型使用 TensorFlow 1.x 和 2.x 实现。研究文件夹中的模型库由代码所有者和研究社区支持。
训练实验框架
Model Garden 训练实验框架允许您使用其官方模型和标准数据集快速组装和运行训练实验。训练框架使用 Model Garden 官方模型附带的额外元数据,使您能够使用声明式编程模型快速配置模型。您可以使用 TensorFlow 模型库 中的 Python 命令定义训练实验,或使用 YAML 配置文件配置训练,例如 此示例。
训练框架使用 tfm.core.base_trainer.ExperimentConfig
作为配置对象,其中包含以下顶级配置对象
有关使用 Model Garden 训练实验框架的完整示例,请参阅 使用 Model Garden 进行图像分类 教程。有关训练实验框架的信息,请查看 TensorFlow 模型 API 文档。如果您正在寻找管理模型训练实验的训练循环的解决方案,请查看 Orbit。
专门的 ML 操作
Model Garden 包含许多专门设计用于执行在 GPU 和 TPU 上高效运行的最先进模型的视觉和 NLP 操作。查看 TensorFlow 模型视觉库 API 文档以获取专门 视觉操作 的列表。查看 TensorFlow 模型 NLP 库 API 文档以获取 NLP 操作 的列表。这些库还包括用于视觉和 NLP 数据处理、训练和模型执行的其他实用程序函数。
使用 Orbit 进行训练循环
有两种默认选项用于训练 TensorFlow 模型
- 使用高级 Keras Model.fit 函数。如果您的模型和训练过程符合 Keras 的
Model.fit
(对数据批次进行增量梯度下降)方法的假设,这将非常方便。 - 使用 keras 编写自定义训练循环,或 不使用。您可以使用低级 TensorFlow 方法(如
tf.GradientTape
或tf.function
)编写自定义训练循环。但是,这种方法需要大量样板代码,并且不会简化分布式训练。
Orbit 试图在这两种极端之间提供第三种选择。
Orbit 是一个灵活、轻量级的库,旨在简化在 TensorFlow 2.x 中编写自定义训练循环,并且与 Model Garden 训练实验框架 配合良好。Orbit 处理常见的模型训练任务,例如保存检查点、运行模型评估和设置摘要写入。它与 tf.distribute
无缝集成,并支持在不同的设备类型上运行,包括 CPU、GPU 和 TPU 硬件。Orbit 工具也是 开源的,因此您可以扩展和适应您的模型训练需求。
Orbit 指南可在此处获得 此处。