1.发布时间:2022年9月
2.基本构成:分为数据处理(BaseDT)、模型训练(MMEdu、BaseML、BaseNN)和模型应用(XEduHub、BaseDeploy)三个部分。
- 数据处理部分
- BaseDT
- 模型训练
- MMEdu
- BaseML
- BaseNN
- 模型部署库
- XEduHub
- BaseDeploy
-
模型转换生成的示例代码文件由basedeploy修正为xedu-python。
-
ssd_lite载入数据集完善,配置文件完善。
- cls的sota()函数完善,无需声明。
- 对模型生成示例代码和载入onnx权重信息做了拓展和调整。
- 优化批量推理时show_result的判断逻辑,避免大量占用内存导致的内核中断。
- 合并git与飞书中的最新版本。
- 更新cls和det转换生成内容以适配最新XEdu库。
- 消除生成onnx权重大段warning。
- 类别压入生成的权重。
- train()函数返回log。
- 权重文件中保存版本号。
- pth存储信息完善。
- pth_info函数展示权重文件相关信息。
- 更新cls和det模型转换后生成的py文件内容。
- cls和det的推理和转化函数中去除了class_path这一参数,类别信息从pth中获得。
- 修复SSD_Lite类名传递不正确的问题。
- det修正infer和convert中类别数量的问题。
- det模型训练时会自动保存best_map的权重。
- det 规范化数据集文件夹名称。
- 修复SSD_Lite类名传递不正确的问题。
- cls+det同时增加可选batch_size功能。
- det补充SSD和yolov3。
- det输出格式由xywh修正为x1y1x2y2。
- det增加模型转化功能。
- cls+det更新模型转化功能,参数调整,会额外输出config文件。
cls:
-
cls检查数据集中图片shape,指出损坏图片。检查图片出现损坏时,抛出错误码
The image file xxx is damaged
。 -
数据集如缺少txt,自动生成。
case1:数据集缺少classes.txt, val.txt ,会自动生成并提示, eg,“生成val.txt”。
case2:如缺少test_set,可正常训练,但不会生成test.txt 。(不影响正常功能)
case3:如缺少val_set,可训练,但不能验证,即train函数中validate参数不能为True。(功能受损,看不到准确率,但还是可以训练出模型)。
其他:
允许数据集中出现其他类别的文件,eg,csv;
数据集中test_set可以不按照类别存放。
-
检查写权限,确定写到哪里
innolab上数据集没有读写权限,则将txt生成至项目内,文件夹名为dataset_txt,内含classes.txt,val.txt。(若有读写权限则生成至数据集路径内)
4.加入模型转换convert()函数,pth转onnx。
det:
- det增加支持PIL和np array 输入功能。图片形式可以通过PIL和np数组进行输入,PIL和数组列表也支持输入。
- 参考cls,det增加相关错误码。
支持读入pil,np格式数据。
- train和infer的
device=cuda
检查torch.cuda.is_available()
,device=cpu
当cuda可用时提示可以使用cuda加速。 - 文件夹推理LeNet无误。
fast_infer
支持LeNet。
同V0.0.9,少依赖版本。
- 检测模块训练函数支持device参数。
load_checkpoint()
参数顺序更换。将checkpoint前置(第一个),device
后置,可以只输入路径,而省略 "checkpoint=
"。- fast_infer错误反馈,补充错误情况,当
fast_infer
之前未使用load_checkpoint
载入ckpt
时会提示错误码305。 MMEdu.__ path __
可正常返回环境中包所在地址。- 修复lenet 文件夹推理问题。
同V0.0.9,少依赖版本。
-
加入错误反馈机制。
-
增加命令行字符画和简介。
-
提示目前支持的主干网络。
-
支持推理opencv、PIL读入的图片。
-
模型声明时允许读入配置文件,而不仅是模型名。
同V0.0.8,少依赖版本。
- 新增valid中三个聚类评价指标。
- 新增load_tab_data载入表格数据集功能。
- 新增valid函数用于验证评估模型性能。
- 线性回归可获得斜率和截距。
- 新增参数设定方式。
- metricplot画图标题修改。
- 与MMEdu的错误提示码风格进行了统一,并在此基础上进行了BaseML部分的补充。
- 所有库类代码应用了PEP8代码规范,使得代码结构与语句更加美观。
- 完成模型可视化和评测指标可视化两个库。目前只有4种算法支持可视化,大部分模型支持评测指标可视化,少部分不支持。
- 引入yellowbrick库,用于评测指标可视化。
- 修改了load_dataset函数,cls和reg默认split=True, 即划分为训练和测试集, 聚类和降维默认不划分。
- 加入了警告(蓝色字体)和报错(红色字体),但待与MMEdu的风格统一。
按照cls中的分类算法,给reg中的算法名进行了更改与添加,目前的回归算法有:['LinearRegression', 'CART', 'RandomForest', 'Polynomial', 'Lasso', 'Ridge', 'SVM', 'AdaBoost', 'MLP']。
把 from BaseML import Classification
调用为Classification.cls
改成了 from BaseML import Classification as cls
调用为 cls(algorithm= ...)
。
- 给每个类增加了docstring类型的注释,可以使用
cls.__doc__
查看拥有的算法以及类注释。 - 更改了
load_dataset
函数的初始默认值,默认shuffle, 不展示前5条数据,不划分数据集,不进行数据归一化。 - 添加了反归一化函数,可以将归一化后的数据转换为原数据,在
base.reverse_scale
函数中。
-
load_dataset
中设置了X和y的默认列,如果没有标明x_column
和y_column
,默认采用输入的所有列。但输入的是txt或csv格式的话,一定要标注出列号,否则报错。 -
inference()
中加了参数verbose
,默认值为True,表示会输出训练过程中的过程数据,False则不会。 -
train()
中设置了参数validate
(默认为True),表示会将输入的训练集划分为训练集和验证集,并输出验证集下的模型准确率。 -
添加了图片读取处理模块ImageLoader,具体使用方式查看文件中的注释以及demo实现。
-
对于加载数据集,添加了几个bool标记:shuffle, show, split, scale,分别表示是否打乱数据集、是否展示5条数据、是否划分数据集、是否对训练数据进行归一化。
-
每个模型的初始化增加了参数字典方法,便于更高级的模型调参。
- load_img_data函数transform方式优化。
- 模型转化生成的推理代码调整。
- 增加载入数据时num_wokers控制,增加模型转化时中间版本、算子集版本控制。
- 新增搭建残差网络功能。
- basenn模型转换生成对应的xedu-python推理代码。
- 支持basenn导出的pth文件转化为onnx。
- numpy数组推理优化。
- numpy数组推理优化。
- 训练速度优化,dataloader多线程读取设置。
- basenn层名兼容大小写,推荐全部采用小写。
- 图片文件夹、特征csv格式数据集设计并实现。
- 继续训练,特征可视化适配新的pth文件格式。
- 保存模型文件由pkl统一为pth,加入pth_info()。
- 加入RNN部分。
- 可视化特征,只有传统意义上的层才计数,relu,reshape,softmax不计数;且当输入为二维图像时,展示可视化的图像,输入为一维数据时,生成txt保存每层之后的输出。
- 加入随机数种子,确保当指定种子后,反复训练可以得到完全一致的结果。
- 可选损失函数,可选评价指标。
参数控制可视化,一整张图or一系列图。
增加提取特征,可视化特征功能。
- split_tab_dataset()新增参数column_name,可传入列表,自定义列名。
- 修正了FasterRCNN模型输入图像尺寸的问题。
- 修复BaseDT中plot模块在自定义载入时绘图通道顺序显示的错误。
- 修改plot对分类问题显示时重复出现pred_label。
- 修复plot在绘图时信息未载入而引发报错的问题。
- 修复了plot使用show时函数冲突问题。
- 增加了MMPose绘图所需的模块。
- 修复了get_img时调用了show函数导致会使用plt进行绘制的问题。
- util模块增加MMPose SIMCC格式推理前后处理的内容(之后得考虑将其迁移至data模块中)。
- 画图功能完善。
- 划分csv数据集加入归一化功能。
- 加入划分csv数据集功能。
- 取消jieba安装依赖,仅在函数内部引用。
- basedeploy相关的功能更新。
- log_plot接入train时日志导出。
- 类名导出函数重命名为get_label。
- 修复imshow_det_bboxes、map_orig_coords函数的一些漏洞。
首次上源。
删除PyQt5库。
Thonny版本调整为稳定的3.3.13。
增加xedu-hub的workflow功能。
增加新版Easy系列(easy-xedu)。
优化文件目录。
同时发布XEdu信息科技教学版1.3a版本。
添加新版Easy系列测试版本,大约70人内测。
更新BaseNN库,支持onnx模型转换。
更新BaseNN库,支持回归任务(model = nn('reg'))。
更新XEdu-python库,支持更多推理任务工作流(workflow)。
修正bug。
修正bug。
重构opencv-python库环境。
支持bug解决脚本(解决绝大多数问题)。
支持jupyter notebook中文。
升级库版本MMEdu0.1.21,BaseNN0.2.0,BaseML0.0.6、BaseDT0.1.1、BaseDeploy0.0.4。
支持openxlab下载(https://download.openxlab.org.cn/models/yikshing/bash/weight/x16)
升级库版本。
支持cmd终端一键启动。
支持jupyter notebook中文。
升级库版本。
解决BaseNN推理缓慢的问题。
升级BaseNN语法;
修复pip安装失败的问题;
优化easy系列功能。
支持模块:MMEdu0.1.13(支持cls和det),BaseNN0.0.9,BaseML0.0.6(支持cls、reg和clt)、BaseDT0.0.5(支持通用数据处理)
内置编辑器:jupyter、pyzo、三个可视化工具(EasyTrain EasyInference EasyAPI)
升级支持模型转换onnx、推理和部署语法精简,不再需要class_path。BaseML支持绘图。
支持模块:MMEdu0.1.8(支持cls和det),BaseNN0.0.9,BaseML0.0.6(支持cls、reg和clt)、BaseDT0.0.2(支持通用数据处理)
内置编辑器:jupyter、pyzo、三个可视化工具(EasyTrain EasyInference EasyAPI)
支持模块:MMEdu0.1.4(支持 cls 和 det),BaseNN0.0.5,BaseML0.0.3(支持 cls、reg 和 clt)
内置编辑器:jupyter、pyzo、三个可视化工具(EasyTrain EasyInference EasyAPI)
支持模块:MMEdu0.1.2(支持cls和det),BaseNN0.0.5,BaseML0.0.3(支持cls、reg和clt)
内置编辑器:jupyter、pyzo、三个可视化工具(EasyTrain、EasyInference和EasyAPI)
- 新增demo实例文件夹,内置lenet的onnx模型。
- 预测结果保留未润色后的形式,并可使用print_result对结果进行润色。
- utils新增可视化相似度矩阵和可视化类别概率分布功能。
- 对BaseML任务的输入数据格式提示。
- 初步加入错误码体系。
- 人脸检测新增可调参数。
- 增加文本嵌入和图像嵌入任务。
- 增加文本问答任务。
- 增加驾驶感知任务。
- 增加风格迁移任务。
- 增加图像分类任务。
- 增加人手检测任务。
- 优化ocr中show=True时的显示问题。
- 支持basenn导出的onnx模型。
- 增加人脸检测任务、ocr任务。
- 优化参数。
- 支持mmedu导出的onnx模型。
- 实现五个姿态估计任务(人体*2、手势、人脸、全身)和两个目标检测任务(人体,coco80类别)的简明工作流程。
发布时间:2022.11
版本说明:优化MMEdu、BaseML、BaseNN等模块,增加EasyAPI.bat、EasyInference.bat、EasyTrain.bat三个可视化工具,更新所有示例代码。
发布时间:2022.8
版本说明:发布内测版pip包。
发布时间:2022.6
版本说明:重构目录结构,建立MMEdu和BaseML两大模块。
发布时间:2022.6
版本说明:优化0.5版两个模块,新增自定义网络(BaseNN)模块。
发布时间:2022.4
版本说明:整合图像分类(cls)、物体检测(det)两个核心模块,内置Pyzo、Jupyter,实现一键部署。