如何规范化的建立一个pytorch项目

一个好的Pytorch项目应包含如下规范:

定义PyTorch项目的软件工程规范,包含:

  • 训练测试的代码目录/文件规范;
  • 配置规范;

训练测试的代码目录/文件规范

每一个符合deepvac规范的PyTorch模型训练项目,都包含下面这些目录和文件:

目录/文件说明是否必须
README.md项目的说明、git分支数量及其介绍、原始数据的存放路径说明
train.py模型训练和验证文件,继承DeepvacTrain类的扩展实现
test.py模型测试文件, 继承Deepvac类的扩展实现
config.py项目整体配置文件
modules/model.py模型定义文件,PyTorch Module类的扩展实现单个模型的情况下,是
modules/model_{name}.py同上,有多个model的时候,使用suffix区分多个模型的情况下,是
modules/loss.pyloss实现。如果该实现比较轻量的话,可以直接放在modules/model.py中
modules/utils.py工具类/方法的定义文件
modules/utils_{name}.py同上,有多个工具类/函数文件的时候,使用suffix区分
synthesis/synthesis.py数据合成或清洗代码
synthesis/config.pysynthesis.py的配置文件
data/dataloader.pydataset类的自定义实现
data/train.txt训练集清单文件
data/val.txt验证集清单文件
aug/aug.py数据增强的代码。如果该实现比较轻量的话,可以直接放在dataset类的文件中
aug/config.pyaug.py的配置文件
log/*.log日志输出目录
output/model__*.pth输出或输入的模型文件默认Deepvac输出
output/checkpoint__*.pth输出或输入的checkpoint文件默认Deepvac输出

这些文件覆盖了一个PyTorch模型训练的整个生命周期:

  • 原始数据,在README.md中描述;
  • 数据清洗/合成,在synthesis/synthesis.py中定义;
  • 数据增强,在aug/aug.py中定义(轻量实现的话在dataset类中定义);
  • 数据输入,在data/dataloader.py中定义;
  • 模型训练,在train.py中定义;
  • 模型验证,在train.py中定义;
  • 模型测试,在test.py中定义;
  • 模型输出,在output目录中存放;
  • 日志输出,在log目录中存放;

配置规范

  • config.py是规范中的一等公民;
  • 用户接口层面的配置均在config.py中;
  • 内部开发定义的配置均在类的auditConfig方法中,且可以被config.py中的值覆盖;
  • 开启分布式训练时,由于–rank和–gpu参数为进程级别,由argparse.ArgumentParser模块来传递,用户需要在命令行指定;
  • 类的构造函数的入参一般为config实例;
  • 再重复一遍,config.py在规范中为一等公民。

摘自:DeepVac

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值