# one-torch **Repository Path**: onewayforever/one-torch ## Basic Information - **Project Name**: one-torch - **Description**: A ML scaffold based on pytorch lightning - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-06-24 - **Last Updated**: 2022-08-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # one-torch #### 介绍 one-torch是基于pytorch lightning的快速开发脚手架,目标是在PL的基础上再尽可能复用代码。使得精力更聚焦于模型算法的实现上 one-torch可以实现 1. 所有可复用选项都通过配置文件来设置,和模型代码解耦 * 通过配置文件配置optimizer * 通过配置文件配置lr_scheduler * 通过配置文件配置early stopping 2. 自动实现对接mlops平台记录日志(目前只支持neptune.ai) 3. 自动实现保存checkpoint 4. 自动实现多GPU加速 5. 提供互动框架,方便为模型提供各种数据输入形式 #### 软件架构 #### 安装教程 1. python setup.py build 2. python setup.py install #### 使用说明 ##### 配置文件 * project.yml * data.yml * models.yml * train.yml ##### 代码开发 * 实现数据类 * 继承LightningDataModule来实现数据类, 方法与PL保持一致 * 实现pytorch的Dataset * 在data.yml中设置参数 * 使用create_dataloader_by_config_file根据data.yml配置文件的参数建立dataloader * 实现模型类 * 继承LightningModule来实现算法模型类,方法与PL保持一致 * 在models.yml中设置模型相关超参数 * 在train.yml中设置训练相关超参数 * 在PL的configure_optimizerscon方法中,通过figure_optimizers_by_config_file来实现根据train.yml定义的方式来自动生成optimizer,lr_scheduler,ealy_stopping配置 * 在配置文件project.yml中注册定义好的类 ``` modules: data_module: path.to.file.MyDataModule module: path.to.file.MyModule ``` ##### 训练 执行ot_train, 自动根据配置文件里的内容进行训练 * ot_train -d debug模式,跑一个batch检查代码是否工作正常,不记录log和checkpoint * ot_train 训练模式,会根据配置文件中的所有参数进行训练 ##### 测试 使用ot_test进入交互模式测试模型,-l用于加载训练好的模型 ot_test -l xxx.ckpt 进入交互模式后,可以看到infer_xxx命令 infer_xxx为已注册的为模型提供数据的入口,在模块文件中自定义 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)