基于PyTorch的机器学习项目的训练框架和工具。
项目描述
此包提供基于PyTorch的机器学习项目的训练框架和命令行界面。这是一个免费软件,在蒙特利尔计算机研究学院(CRIM)的研究人员和开发人员构建下,根据Apache软件许可证版本2.0发布。
要了解此框架的用途,请访问常见问题解答页面。有关安装说明,请参阅安装指南。有关使用说明,请参阅用户指南。自动生成的文档可通过readthedocs.io获取。
注意
开发仍在进行中——API和内部类可能在将来发生变化。
项目的结构最初是通过 cookiecutter 以及 ionelmc 的模板 生成的。
变更日志
未发布(最新版)
0.6.2 (2020/10/01)
添加了 SelectChannels 转换操作符,用于就地样本修改,可能需要它。
0.6.1 (2020/07/29)
修复了标签部署的 conda 包构建问题。
0.6.0 (2020/07/28)
重构并清理了 HDF5 数据提取/解析类。
为 BigEarthNet 和 Agri-Vis 挑战赛添加了数据集接口。
更新分类任务以允许多标签分类。
为框架内 ResNet 架构添加了激活层自定义。
更新默认的 move_tensor 行为,使其为非阻塞。
为自动编码器类型模型添加了训练器实现。
为超参数探索添加了 Orion 报告支持。
添加了 SLURM 集群实用工具(tmpdir 获取器、启动脚本)。
0.5.0 (2020/07/21)
如果在指标渲染期间提供的值为 None(如基本记录器/报告器所使用),则跳过图像保存调用。
为 thelper.train.utils.ClassifLogger 添加了 JSON 实现。
修复 concepts 以处理任何大小写变体的概念名称。
0.5.0-rc2 (2020/07/08)
在 conda-env.yml 中使用 requirements.txt 以保持依赖项同步。
修复了构建的 Docker 映像未使用通过 requirements.txt 强制执行的适当依赖项。
0.5.0-rc1 (2020/07/07)
修复了验证配置和/或检查点时版本比较检查的问题。版本现在可以有一个发布部分,之前未考虑。
修复了 thelper.data.geo.parsers.SlidingWindowDataset 中样本坐标的计算错误。
由于 __init__.py 自 4.3.5 起已包含在内,因此删除了 not_skip = __init__.py 配置选项。此外,强制使用 isort<5,因为许多导入检查突然中断(例如:使用 as 别名直接导入中断)。
0.5.0-rc0 (2020/04/25)
更新此变更日志以使用 rst 链接(在 GitHub 和 readthedocs 上渲染)。
为地理参考栅格分类添加 infer 模式。
添加 Dockerfile-geo 以使用预安装的地理包构建 thelper。
将有关地理相关的构建说明添加到 travis-ci 构建步骤。
添加自动文档化 makefile 目标和 Docker 相关目标。
0.4.7 (2019/11/20)
从 conda 构建环境删除了可选依赖项。
0.4.6 (2019/11/20)
使用分割的 conda/docker 阶段进行 Travis 部署测试。
0.4.5 (2019/11/18)
将 Travis 部署阶段分为两个阶段。
修复了 draw_segment 阈值使用和参数查找。
根据最新的池化更新修复了 FCResNet 嵌入获取器。
更新所有 matplotlib 图表以默认使用 160 dpi。
重构训练器数据/指标编写器以保存所有可视数据。
0.4.4 (2019/11/18)
添加了 viz 包,支持 t-SNE 和 UMAP 以供训练器内使用。
修复了与模拟相关的 geo 包文档构建问题。
在许多指标中修复了类型和输出格式检查。
更新所有回调读取器以依赖于新的实用函数。
清理和优化了 coordconv 实现。
将 U-Net 架构实现添加到 nn 包。
添加了 IoU 指标实现。
添加了对 SRM 内核和 SRM 卷积的支持。
更新了文档(安装、常见问题解答、维护)。
向数据包添加了固定权重采样器。
添加了大量的额外单元测试。
添加了 efficientnet 第三方模块包装器。
修复了任务类名称顺序中可能存在的潜在冲突。
0.4.3 (2019/11/06)
修复了指标单元测试中 pytest-mock 范围的使用。
0.4.2 (2019/11/06)
更新了常见的 resnet 实现,以支持分割头。
修复了损失函数自动加权中样本的使用。
在加载器工厂数据拆分器中清理了样本使用
将GDL兼容模块添加到地理包中
修复了分割任务中的默认颜色映射
清理并简化了coordconv实现
更新分割训练器以使用长类型标签图
清理并简化了增强器/ALBumentations的演示配置
0.4.1 (2019/10/15)
从部署阶段移除了master分支的travis检查
0.4.0 (2019/10/11)
添加了地理子包
添加了地理矢量/栅格解析类
添加了针对testbed15特定工具的OGC模块
添加了testbed15训练/可视化配置文件
清理了makefile目标和覆盖率使用
完全用makefile替换了tox构建系统
将第三方配置合并到setup.cfg中
更新travis以直接依赖makefile
0.3.14 (2019/09/30)
在训练器和框架工具中添加了额外的日志调用
清理了数据配置解析日志调用
当请求特定设备时跳过完整设备检查
0.3.13 (2019/09/26)
将绘图工具移动到新模块
清理了输出根目录/保存目录解析
清理了潜在的循环导入
将可选依赖项导入移动到相关函数中
通过配置支持指定根目录
更新配置加载/保存以使命名可选
0.3.12 (2019/09/13)
修复了重新实例化自定义ResNet时的潜在问题
修复了没有groundtruth的ClassifLogger预测日志
0.3.11 (2019/09/09)
添加了CLI/配置覆盖以设置任务兼容模式
0.3.10 (2019/09/05)
清理了依赖项列表、文档字符串
修复了混合整数/浮点数计算中的bbox iou
修复了分割任务中dontcare标签删除问题
清理了训练会话输出目录定位
修复了目标检测训练器中的空bbox列表
修复了使用pyyaml的指数解析
修复了使用整数坐标值时的bbox显示
0.3.9 (2019/08/20)
修复了pytorch > = 1.2的collate问题
修复了空批大小问题
清理了训练器中的params#kwargs解析
添加了支持pickle哈希参数的实用工具
添加了基于yaml的会话配置支持
添加了用于指标/消费者类的概念装饰器
清理了共享接口以解决循环依赖
添加了检测(bbox)日志类
0.3.8 (2019/08/08)
修复了nn模块构造函数参数传递
更新了类导入器以允许解析非包目录
修复了子模块(例如所有数据)的基于文件的日志记录
清理并API化了CLI入口点以供外部使用
0.3.7 (2019/07/31)
修复了长部署操作中的travis超时
添加了输出路径到训练器回调实现
添加了新的绘制和保存显示回调
添加了togray/tocolor转换操作
清理了matplotlib使用和跨绘制函数的show/block
修复了各种依赖项和日志问题
0.3.6 (2019/07/26)
修复了自定义默认collate实现中的torch版本检查
修复了objdetect中的bbox预测转发和评估问题
重构了指标/回调以清理训练器实现
将预训练选项添加到默认resnet实现中
修复了objdetect训练器显示和预测回调
0.3.5 (2019/07/23)
将指标/消费者重构为单独的接口
为所有指标/预测消费者添加了单元测试
更新了训练器回调签名以包含更多数据
更新了安装文档,包含anaconda/docker hub链接
根据回调重构清理绘图函数参数
将评估模块添加到优化器中,包括pascalvoc评估函数
0.3.4 (2019/07/12)
修复了重新加载objdet模型检查点时的问题
修复了尝试使用缺失的颜色图时的问题
清理了加载旧任务时的向后兼容问题
清理了目标检测绘图工具
0.3.3 (2019/07/09)
修复了travis conda构建依赖项和通道
0.3.2 (2019/07/05)
更新文档使用案例(模型导出)和FAQ
清理了模块基类配置备份
修复了Docker构建并自动化了travis
0.3.1 (2019/06/17)
修复了在评估期间未返回预测的RawPredictions度量问题
修复了检查点基本路径的解析
0.3.0 (2019/06/12)
添加了用于容器化构建的Dockerfile
添加了目标检测任务和训练器实现
添加了CLI模型/检查点导出支持
添加了CLI数据集拆分/HDF5支持
添加了基线超分辨率实现
添加了许多新的单元测试和文档字符串
清理了变换和显示操作
0.2.8 (2019/03/17)
清理了API中的构建工具和文档字符串
在文档构建中添加了用户指南
更新任务以允许数据集接口覆盖
清理了训练器输出日志
添加了全卷积的ResNet实现
修复了通过'resume'进行微调的相关问题
0.2.7 (2019/02/04)
更新了Python变体的conda构建配方,并支持自动上传
0.2.6 (2019/01/31)
添加了框架检查点/配置迁移实用工具
修复了配置解析的向后兼容性问题
修复了与查询和绘图工具相关的少量错误
0.2.5 (2019/01/29)
修复了travis-ci conda构建/环境路径
0.2.4 (2019/01/29)
修复了travis-ci conda频道设置
0.2.3 (2019/01/29)
修复了openssl依赖问题
0.2.2 (2019/01/29)
修复了travis-ci矩阵配置
添加了travis-ci pypi部署步骤
修复了readthedocs文档构建
更新了readme徽章和首页外观
清理了cli模块入口点
修复了travis tox检查作业的openssl依赖问题
更新了travis post-deploy以尝试修复conda打包(wip)
0.2.1 (2019/01/24)
添加了typedef模块并清理了参数检查
清理了所有绘图工具并添加了到训练器的回调支持
通过包装器添加了对albumentation管道的支持
更新了所有训练器和调度器,以依赖基于0的索引
更新了travis/rtd配置以支持自动部署和3.6支持
0.2.0 (2019/01/15)
添加了回归/分割任务和训练器
添加了pascalvoc数据集的接口
重构了数据加载器/解析器和数据包的清理
在基本训练器实现中添加了许多新的实用工具
为变换添加了新的单元测试
重构变换以使用包装器进行增强/列表
添加了支持数据集缩放的新采样器
添加了FCN32s的基线实现
添加了mae/mse度量实现
添加了训练器支持通过外部成员进行损失计算
添加了下载/验证/提取文件的实用工具
0.1.1 (2019/01/14)
对CCFB02兼容性进行了少量修复和更新
添加了RawPredictions度量以从训练器获取数据
0.1.0 (2018/11/28)
修复了readthedocs sphinx自动构建与模拟。
重构了包结构以避免环境问题。
重写了播种以允许100%可重复的会话。
清理了配置文件参数列表。
清理了会话输出变量/日志/图像。
添加了对评估时间增强的支持。
更新了变换包装器以支持多通道和列表。
添加了具有基本分割注释工具的GUI模块。
重构了任务接口以允许合并。
通过检查点简化了模型微调。
0.0.2 (2018/10/18)
完成了第一轮文档。
修复了travis/rtfd构建。
修复了设备映射/加载问题。
0.0.1 (2018/10/03)
初始版本(工作进行中)。