想学好深度学习,没点儿趁手的工具怎么行?
我们身边有越来越多的优秀的工具的出现,它们有助于促进深度学习的复杂过程,使得其更易于访问和提高效率。
每个值得解决的问题都需要很好的支持工具。深度学习也不例外。如果一定要说有什么区别的话,那么可能是在未来的几年,好的工具会边的越来越重要。我们仍然处于深度学习超新星的早期阶段,许多深度学习工程师和爱好者都在以自己的方式进入高效流程。然而,通过观察越来越多的伟大工具,它们有助于促进深度学习的复杂过程,使其更易于访问和提高效率。随着深度学习从研究人员和专家的工作稳步扩展到希望进入该领域(可访问性)的DL爱好者的更广泛领域,以及正在寻求简化其流程并降低复杂性(效率)的不断发展的工程团队,我们汇总了一些最佳DL工具。
深入研究深度学习的生命周期
为了更好地评估可以提高深度学习的可访问性和效率的工具,让我们首先看一下流程的实际情况。
典型(监督)深度学习应用程序的生命周期包括不同的步骤,从原始数据开始,到野外预测结束。
典型的深度学习生命周期
数据来源
任何深度学习应用程序的第一步都是获取正确的数据。有时你很幸运,有历史数据可供使用。有时您需要搜索开源数据集,抓取Web,购买原始数据或使用模拟数据集。由于此步骤通常特定于手头的应用程序,因此我们没有将其包含在工具环境中。但请注意,Google的数据集搜索或Fast.ai数据集等网站可以缓解查找正确数据的问题。
数据标签
大多数受监督的深度学习应用程序处理图像、视频、文本或音频,在训练模型之前,您需要使用地面实况标签来注释这些原始数据,这可能是一项会耗费大量成本且耗时的任务。在理想的设置中,此过程与模型训练和部署交织在一起,并尽可能地利用您训练有素的深度学习模型(即使其性能尚不完美)。
数据版本控制
您的数据随着时间的推移会发展得越多(假设您设置了智能标签流程并随着数据集的增长继续重新训练模型)对数据集进行版本设置就越重要(正如您应该始终对代码和训练模型进行版本更新) 。
扩展硬件
此步骤与模型训练和部署相关:访问正确的硬件。在模型训练期间从本地开发转向大规模实验时,您的硬件需要适当扩展。在部署模型时,根据用户需求进行扩展也是如此。
模型架构
要开始训练模型,您需要选择神经网络的模型架构。
注意:如果您遇到标准问题,这通常意味着只是从开源GitHub存储库复制粘贴最新的可用最先进模型,但有时您会想要亲自动手调整模型的架构以提高性能。使用神经架构搜索(NAS)等新方法,选择正确的模型架构渐渐地归入模型训练阶段,但是对于大多数应用而言,NAS的性能的边际增加不值得增加计算成本。
这一步是人们在考虑编写深度学习应用程序时经常想到的,但正如您所看到的那样,它只是步骤的其中之一,而且往往不是最重要的。
模型训练
在模型训练期间,您将标记数据提供给神经网络,并迭代更新的模型权重,以最大限度地减少训练集的损失。一旦选择了一个指标(参见模型评估),您就可以在称为超参数调整的过程中使用许多不同的超参数集(例如,学习速率、模型架构和一组预处理步骤的组合)来训练您的模型。
模型评估
如果你无法区分好的和坏的模型,那么训练神经网络就没有意义了。在模型评估期间,您通常会选择一个指标进行优化(同时可能会观察到许多其他指标)。对于此指标,您尝试查找从训练数据到验证数据的最佳表现模型。这涉及跟踪不同的实验(可能有不同的超参数、体系结构和数据集)及其性能指标,可视化训练模型的输出,并将实验相互比较。如果没有合适的工具,这可能会很快变得混乱和复杂,尤其是在与同一个深度学习管道上的多个工程师协作时。
模型版本控制
最终模型评估和模型部署之间的一小步(但仍值得一提):使用不同版本标记模型。当您发现最新的型号版本达不到您的期望时,这使您可以轻松回滚到运行良好的型号版本。
模型部署
如果您有一个您希望投入生产的模型版本,则需要以您的用户(可以是人员或其他应用程序)可以与您的模型通信的方式进行部署:使用数据发送请求并返回模型的预测。理想情况下,您的模型部署工具支持在不同模型版本之间逐步切换,以便您可以预测在生产中使用新模型的效果。
监测预测
部署完模型后,您需要密切关注它在现实世界中的预测,并在用户敲门抱怨您的服务之前,收到有关数据分布变化和性能下降的警报。
注意:该流程图已经暗示了典型深度学习工作流程的循环性质。实际上,在深度学习工作流程中将部署模型和新标签之间的反馈循环视为一流公民,这可能是许多应用程序最重要的成功因素之一。在现实生活中的深度学习工作中,事情通常比流程图所暗示的更复杂。您将发现自己跳过步骤(例如,当您使用预先标记的数据集时),返回几个步骤(模型性能不够准确,您需要获取更多数据)或在疯狂循环中来回(架构=>训练=>评估=>训练=>评估=>架构)。
我们最喜爱的深度学习工具
在Luminovo,我们努力创造工具,使我们的工程师更高效,并利用那里出色的深度学习人员创建的强大工具。伟大的代码意味着共享,因此下面的图表概述了目前市场上最有前途的深度学习工具。来自DL工程师的DL工程师和所有热衷于了解更多关于创建令人敬畏的深度学习应用程序的人。
详细内容可以点击了解:https://drive.google.com/file/d/1XhngKISDpQgwGlvU-hjXWZb_qfyIYjqN/view