发布于: Jul 22, 2022

深度学习的应用程序有多种类型,包括用于整理用户照片存档、推荐书籍、检测欺诈行为以及感知自动驾驶车辆周边环境的应用程序

深度学习模型训练的工具正在不断地革新当中,深度学习已经彻底变革了我们处理和加工真实数据的方式。深度学习的应用程序有多种类型,包括用于整理用户照片存档、推荐书籍、检测欺诈行为以及感知自动驾驶车辆周边环境的应用程序。

在这篇文章中,我们将向您逐步演示如何通过 Amazon Lambda 使用自定义的训练模型,从而大规模利用简化的无服务器计算方法。在此过程中,我们将介绍一些核心 Amazon Web Services 服务,您可以使用这些服务以无服务器的方式运行推理。

我们还将了解图像分类:现在已有多种表现非常出色的开源模型可供使用。通过图像分类,我们可以使用深度学习中两种最常用的网络类型:卷积神经网络和全连接神经网络(也称为 Vanilla 神经网络)。

我们将向您演示在 Amazon Web Services 中的什么位置放置训练模型,以及以何种方式打包您的代码,以便 Amazon Lambda 通过推理命令执行这些代码。

在这篇博客文章中,我们将讨论以下 Amazon Web Services 服务:Amazon Lambda、Amazon Simple Storage Service (S3)、Amazon CloudFormation、Amazon CloudWatch 和 Amazon Identity and Access Management (IAM)。使用的语言和深度学习框架包括 Python 和 TensorFlow。此处介绍的流程也适用于任何其他深度学习框架,例如 MXNet、Caffe、PyTorch、CNTK 及其他框架。

 

Amazon Web Services 架构

从流程的角度而言,深度学习系统的开发和部署与开发和部署传统解决方案应该没有不同。

下图描述了一种可能的开发生命周期:

如您从图中可见,通常的软件开发流程经过多个阶段,从开发环境中的概念成形和建模,直到生产环境中的最终模型部署。在大部分情况下,开发阶段会有多次快速迭代,需要不断对环境进行更改。通常,这会影响在软件/模型开发期间所用资源的性质和质量。对于敏捷开发而言,能够快速构建/重建/停用环境至关重要。所构建软件的快速改变随之而来的应该是基础设施调整。敏捷开发和加速创新的先决条件之一是能够通过代码管理基础设施(称为 IaC:基础设施即代码)。

软件设计管理、构建和部署的自动化是持续集成和持续交付 (CI/CD) 的一部分。虽然本文不会深入介绍精心编排的 CI/CD 管道的细节,不过,对于任何开发运营团队来说,如果希望构建可重复的流程,以实现开发/部署敏捷性和流程自动化,就应该记住这一点。

Amazon Web Services 在社区中推出了众多服务和实践,可简化开发任务。一个环境,只要使用自动化代码构建,那么只需数分钟就可以轻松地采用和复制,例如,可以根据开发环境所用的模板构建暂存和生产系统。

此外,Amazon Web Services 使用多种计算机科学和软件工程概念,通过流式处理、批处理、队列处理、监控和报警、实时事件驱动的系统、无服务器计算等完全托管的服务,显著简化了复杂解决方案的设计。在本文中,我们将探讨用于深度学习的无服务器计算环境,它可以帮助您避免服务器预配置和管理等繁重任务。这些任务使用 Amazon Web Services 服务完成,使得数据科学家和软件开发人员避免了不必要的复杂性,例如确保有足够的计算容量、确保系统故障时的重试等。

 

相关文章