pytorch 40 分享从0开始构建一个独立的深度学习项目

都2023年了,估计没有几个人会自己独立从0开始构建深度学习项目的了,全是依赖现有的开源库进行项目研制开发。这里回顾几年的工作经验,对构建深度学习项目进行初步梳理。
通常深度学习任务都被描述为:假设函数、损失函数和迭代函数。假设函数一般是我们的模型,损失函数(loss)是也就是训练任务的优化目标,迭代函数则是具体执行训练任务步骤(依据损失函数对模型进行迭代)。
本文以实现一个自动编码机的训练任务为例,从0开始实现一个简单的深度学习项目。

1、构建项目的主要部件

深度学习项目一般由dataloader、model、loss、trainer共4个部分组成,这与理论上的深度学习任务有所差异,因为理论上缺失了对数据的处理。dataloader用于进行数据加载(也就是理论上缺失的部分,通常还附带在线数据增强。数据增强是非常重要的一部分,但干不出论文,通常被忽略)、model用于进行模型结构实现(也就是所谓的假设函数)、loss(也就是损失函数,对于大部分任务基本上都不需要构建loss部分,因为通常都是使用框架内置的交叉熵、mse、rmse、mae等loss)、trainer(也就是迭代函数)。

额外的utils

此外,在实际工程中还有其它的部分,如utils部件(包含一些相关的工具代码),其应包含代码可用于将标注软件的输出结果(如labelme标注的数据)与dataloader所需的数据格式联系起来。
如对于图像分类任务其标注可能是文件夹名称,需要生成txt列表来描述每一个图像对应的label
如对于语义分割任务,labelme

你可能感兴趣的:(pytorch工程实践,深度学习,pytorch,人工智能)