使用 Amazon SageMaker JumpStart PlatoBlockchain 数据智能构建高性能图像分类模型。 垂直搜索。 人工智能。

使用 Amazon SageMaker JumpStart 构建高性能图像分类模型

图像分类是一种基于计算机视觉的机器学习 (ML) 技术,可让您对图像进行分类。 一些著名的图像分类示例包括手写数字分类、医学图像分类和面部识别。 图像分类是一项适用于多个业务应用程序的有用技术,但构建良好的图像分类模型并非易事。

在评估 ML 模型时,有几个注意事项可以发挥作用。 除了模型准确性之外,其他潜在的重要指标是模型训练时间和推理时间。 鉴于 ML 模型开发的迭代性质,更快的训练时间使数据科学家能够快速测试各种假设。 更快的推理在实时应用程序中可能至关重要。

亚马逊SageMaker JumpStart 提供跨流行 ML 任务的各种预训练模型的一键式微调和部署,以及解决常见业务问题的端到端解决方案的选择。 这些功能消除了 ML 流程每个步骤的繁重工作,从而更容易开发高质量模型并缩短部署时间。 JumpStart API 允许您以编程方式在您自己的数据集上部署和微调大量 JumpStart 支持的预训练模型。

您可以在部署之前以增量方式训练和调整 JumpStart 中提供的 ML 模型。 在撰写本文时,JumpStart 中提供了 87 个基于深度学习的图像分类模型。

但是哪种模型会给你最好的结果呢? 在这篇文章中,我们提出了一种方法,可以轻松运行多个模型并在三个感兴趣的维度上比较它们的输出:模型准确性、训练时间和推理时间。

解决方案概述

JumpStart 允许您使用其 UI 或 API 从 JumpStart 控制台训练、调整和部署模型。 在这篇文章中,我们使用 API 路由,并展示一个带有各种帮助脚本的笔记本。 您可以运行此 notebook 并获得结果,以便轻松地将这些模型相互比较,然后选择一个在模型准确性、训练时间和推理时间方面最适合您的业务需求的模型。

公共数据集 这篇文章中使用的图像包含近 55,000 张在受控条件下收集的患病和健康植物叶子的图像,类别标签范围为 0-38。 该数据集分为训练数据集和验证数据集,约有 44,000 张训练图像和 11,000 张图像进行验证图像。 以下是一些示例图像。

在本练习中,我们从 JumpStart 提供的两个框架(PyTorch 和 TensorFlow)中选择了模型。 以下 15 种模型算法涵盖了这些框架中广泛流行的神经网络架构:

  • pytorch-ic-alexnet-FT
  • pytorch-ic-densenet121-FT
  • pytorch-ic-densenet201-FT
  • pytorch-ic-googlenet-FT
  • pytorch-ic-mobilenet-v2-FT
  • pytorch-ic-resnet152-FT
  • pytorch-ic-resnet34-FT
  • tensorflow-ic-bit-s-r101x1-ilsvrc2012-classification-1-FT
  • tensorflow-ic-imagenet-inception-resnet-v2-classification 4-FT
  • tensorflow-ic-imagenet-inception-v3-classification-4-FT
  • tensorflow-ic-imagenet-mobilenet-v2-050-224-classification-4-FT
  • tensorflow-ic-imagenet-mobilenet-v2-075-224-classification-4-FT
  • tensorflow-ic-imagenet-mobilenet-v2-140-224-classification-4-FT
  • tensorflow-ic-imagenet-resnet-v2-152-classification-4-FT
  • tensorflow-ic-tf2-preview-mobilenet-v2-classification-4-FT

我们使用模型 tensorflow-ic-imagenet-inception-v3-classification-4-FT 作为与其他模型的结果进行比较的基础。 这个基础模型是任意挑选的。

用于运行此比较的代码可在 AWS Samples GitHub存储库.

成果

在本节中,我们展示了这 15 次运行的结果。 对于所有这些运行,使用的超参数是 epochs = 5,学习率 = 0.001,批量大小 = 16。

模型精度、训练时间和模型推理时间 tensorflow-ic-imagenet-inception-v3-classification-4-FT 被作为基础,所有其他模型的结果都是相对于这个基础模型呈现的。 我们在这里的目的不是展示哪种模型最好,而是展示如何通过 JumpStart API 比较各种模型的结果,然后选择最适合您的用例的模型。

以下屏幕截图突出显示了与所有其他模型进行比较的基本模型。

使用 Amazon SageMaker JumpStart PlatoBlockchain 数据智能构建高性能图像分类模型。 垂直搜索。 人工智能。

下图显示了相对准确度与相对训练时间的详细视图。 PyTorch 模型颜色编码为红色,TensorFlow 模型颜色编码为蓝色。

使用 Amazon SageMaker JumpStart PlatoBlockchain 数据智能构建高性能图像分类模型。 垂直搜索。 人工智能。

上图中用绿色椭圆突出显示的模型似乎具有相对准确性和相对训练时间短的良好组合。 下表提供了这三种模型的更多详细信息。

型号名称 相对精度 相对训练时间
tensorflow-ic-imagenet-mobilenet-v2-050-224-分类-4-FT 1.01 0.74
tensorflow-ic-imagenet-mobilenet-v2-140-224-分类-4-FT 1.02 0.74
tensorflow-ic-bit-s-r101x1-ilsvrc2012-分类-1-FT 1.04 1.16

下图比较了相对准确度与相对推理时间。 PyTorch 模型颜色编码为红色,TensorFlow 模型颜色编码为蓝色。

使用 Amazon SageMaker JumpStart PlatoBlockchain 数据智能构建高性能图像分类模型。 垂直搜索。 人工智能。

下表提供了绿色椭圆中三个模型的详细信息。

型号名称 相对精度 相对推理时间
tensorflow-ic-imagenet-mobilenet-v2-050-224-分类-4-FT 1.01 0.94
tensorflow-ic-imagenet-mobilenet-v2-140-224-分类-4-FT 1.02 0.90
tensorflow-ic-bit-s-r101x1-ilsvrc2012-分类-1-FT 1.04 1.43

这两个图清楚地表明某些模型算法在所选的三个维度上比其他模型算法表现更好。 通过此练习提供的灵活性可以帮助您选择正确的算法,并且通过使用提供的笔记本,您可以轻松地在 87 个可用模型中的任何一个上运行此类实验。

结论

在本文中,我们展示了如何使用 JumpStart 在多个感兴趣的维度上构建高性能图像分类模型,例如模型准确性、训练时间和推理延迟。 我们还提供了在您自己的数据集上运行此练习的代码; 您可以从 JumpStart 模型中心目前可用于图像分类的 87 个模型中选择任何感兴趣的模型。 我们鼓励您今天尝试一下。

有关 JumpStart 的更多详细信息,请参阅 SageMaker 快速启动.


作者简介

使用 Amazon SageMaker JumpStart PlatoBlockchain 数据智能构建高性能图像分类模型。 垂直搜索。 人工智能。Raju Penmatcha 博士 是 AWS AI 平台的 AI/ML 专家解决方案架构师。 他在斯坦福大学获得博士学位。 他与 SageMaker 中的低代码/无代码服务套件密切合作,帮助客户轻松构建和部署机器学习模型和解决方案。 在不帮助客户时,他喜欢去新的地方旅行。

使用 Amazon SageMaker JumpStart PlatoBlockchain 数据智能构建高性能图像分类模型。 垂直搜索。 人工智能。Ashish Khetan 博士 是 Amazon SageMaker 内置算法的高级应用科学家,帮助开发机器学习算法。 他在伊利诺伊大学香槟分校获得博士学位。 他是机器学习和统计推理领域的活跃研究者,在 NeurIPS、ICML、ICLR、JMLR、ACL 和 EMNLP 会议上发表了多篇论文。

时间戳记:

更多来自 AWS机器学习