宁夏网站建设品牌公司,服装市场调网站建设的目的,楼盘网,目前做哪些网站能致富深度学习模型的训练涉及几个方面 1、模型结构#xff1a;模型有几层、每层多少通道数等 2、数据#xff1a;数据集划分、数据文件路径、批大小、数据增强策略等 3、训练优化 #xff1a;梯度下降算法、学习率参数、训练总轮次、学习率变化策略等 4、运行时#xff1a;GPU、…深度学习模型的训练涉及几个方面 1、模型结构模型有几层、每层多少通道数等 2、数据数据集划分、数据文件路径、批大小、数据增强策略等 3、训练优化 梯度下降算法、学习率参数、训练总轮次、学习率变化策略等 4、运行时GPU、分布式环境配置等 5、辅助功能如打印日志、定时保存 checkpoint等
mmpretrain的文件结构
-configs 配置文件
-data 数据集存储路径
-demo 入门案例
-docs 中英文文档教程
-mmpretrain 模块化代码-apis: 顶层 api 接口支持各类推理任务-datasets:支持了各类数据集数据变换等-engine:支持各类钩子优化器等训练相关组件-evaluation:各类评测相关函数和指标计算-models:各类算法模型的定义-backbones 一般为图像的特征提取器各类主千网络的定义-necks 则为承接 backbone 和 head 之间的其它计算 (例如高维特征解码多尺度特征融合等)-heads 则主要为相关loss 计算和推理结果的预测-classifierselfsupmultimodal 则为模型高阶抽象定义-structures: DataSample 数据结构的定义-utils: 相关工具-visualization:可视化的支持
-project 工程实例
-resources 图片、视频等静态资源
-tests 组件维度测试脚本
-tools 训练、测试、可视化等工具集
-work_dirs 运行代码产生的文件存放地现有数据集现有模型
python tools/train.py configs/resnet/resnet18_8xb16_cifar10.py
python tools/test.py configs/resnet/resnet18_8xb16_cifar10.py work_dirs/resnet18_8xb16_cifar10/epoch_200.pth自定义模型现有数据集 方案一 1、使用pytorch实现完整的前向传播并测试好维度 2、按照mmpretrain的约定将进行代码转换以及配置文件的改写
python tools/train.py work_dirs/test_8xb16_cifar10/resnet18_8xb16_cifar10.py
python tools/test.py work_dirs/test_8xb16_cifar10/resnet18_8xb16_cifar10.py work_dirs/resnet18_8xb16_cifar10/epoch_20.pth方案二 1、通过断点调试以及可视化的方式理解官方代码维度的变换 2、在理解的基础上直接按照约定改写官方代码
自定义模型心得 1、虽然模型被拆分成了不同分组件但组件之间并不能任意组合 2、各个组件的输出并不一定是Tensor,也有可能是Tuple 3、并不是每个组件都是必须的例如可以没有neck 4、loss是和head绑定的拆散模型时候要注意
自定义数据集现有模型 1、数据集下载 Fruits Dataset(Images)
https://www.kaggle.com/datasets/shreyapmaher/fruits-dataset-imagespython tools/train.py configs/efficientnet/efficientnet-b0_8xb32_in1k.py出现报错但是没有影响只是需要拿到efficientnet-b0_8xb32_in1k.py,随后修改这个配置 修改 1type‘ImageNet’–》type‘CustomDataset’ 4个地方 cp efficientnet-b0_8xb32_in1k.py efficientnet-b0_8xb32_fruits.py2efficientnet-b0_8xb32_in1k.py–》efficientnet-b0_8xb32_fruits.py 3work_dir ‘./work_dirs\efficientnet-b0_8xb32_in1k’–》work_dir ‘./work_dirs/efficientnet-b0_8xb32_fruits’ 4数据集路径 data_root‘data/imagenet’–》data_root‘data/Fruits Dataset/images’ 5num_classes1000–》num_classes9 6split‘train’、splitval’注释掉 7适当的修改num_workers、epochs、batch_size、lr等 如下
python tools/train.py work_dirs/efficientnet-b0_8xb32_fruits.py --work-dir work_dirs/efficientnet-b0_8xb32_fruits
python tools/test.py work_dirs/efficientnet-b0_8xb32_fruits.py work_dirs/efficientnet-b0_8xb32_fruits/epoch_50.pthresnet18_8xb32_in1k.py 名称resnet 层数18 8×b16:8张卡每张卡batch_size为16 in1k数据集名称
python tools/train.py configs/resnet/resnet18_8xb32_in1k.pymy_resnet18_8xb32_in1k.py 完整的配置文件
2、训练结果测试与验证 单张测试
python demo/image_demo.py demo/test.jpg configs/resnet/my_resnet18_8xb32_in1k_method3.py --checkpoint D:/Project_python/mmpretrain/work_dirs/my_resnet18_8xb32_in1k_method3/epoch_50.pth --show --show-dir demo --device cuda:0批量测试 1测试 测试可以看详细文档教程自定义评估指标
val_evaluator [dict(topk(1, 5,), typeAccuracy),dict(typeSingleLabelMetric, items[precision, recall]),]python tools/test.py configs/resnet/my_resnet18_8xb32_in1k_method3.py work_dirs/my_resnet18_8xb32_in1k_method3/epoch_50.pth --work-dir work_dirs/my_resnet18_8xb32_in1k_method3/val --out-item metrics --show-dir work_dirs/my_resnet18_8xb32_in1k_method3/val_result 2可视化模块展示 tools/visualization browse_dataset.py 显示在进入模型之前类似数据增强操作经历了什么
python tools/visualization/browse_dataset.py configs/resnet/my_resnet18_8xb32_in1k_method3.py --output-dir work_dirs/my_resnet18_8xb32_in1k_method3/browse_dataset --phase train --show-number 2 --mode original transformed concat pipelinevis_cam.py热力图 主要关注区域
python tools/visualization/vis_cam.py demo/roses.jpg configs/resnet/my_resnet18_8xb32_in1k_method3.py work_dirs/my_resnet18_8xb32_in1k_method3/epoch_50.pth --preview-modeldata_preprocessor
backbone
.......
backbone.layer4
backbone.layer4.0
backbone.layer4.0.conv1
.......
backbone.layer4.1
backbone.layer4.1.conv1
backbone.layer4.1.bn1
backbone.layer4.1.conv2
backbone.layer4.1.bn2
backbone.layer4.1.relu
backbone.layer4.1.drop_path
neck
.......
head.fcpython tools/visualization/vis_cam.py demo/roses.jpg configs/resnet/my_resnet18_8xb32_in1k_method3.py work_dirs/my_resnet18_8xb32_in1k_method3/epoch_50.pth --target-category 2 --target-layers backbone.layer4.1.conv2 --method GradCAM/GradCAM/......3分析工具 tools/analysis_tools 计算参数量
python tools/analysis_tools/get_flops.py configs/resnet/my_resnet18_8xb32_in1k_method3.py --shape 224 224日志分析
python tools/analysis_tools/analyze_logs.py plot_curve work_dirs/my_resnet18_8xb32_in1k_method3/20230929_151247/vis_data/20230929_151247.json --keys loss accuracy/top1python tools/analysis_tools/analyze_logs.py cal_train_time work_dirs/my_resnet18_8xb32_in1k_method3/20230929_151247/vis_data/20230929_151247.json生成pkl文件
python tools/test.py configs/resnet/my_resnet18_8xb32_in1k_method3.py work_dirs/my_resnet18_8xb32_in1k_method3/epoch_50.pth --out work_dirs/my_resnet18_8xb32_in1k_method3/result.pkl验证预测失败和成功的图
python tools/analysis_tools/analyze_results.py configs/resnet/my_resnet18_8xb32_in1k_method3.py work_dirs/my_resnet18_8xb32_in1k_method3/result.pkl --out-dir work_dirs/my_resnet18_8xb32_in1k_method3/analyze 画混淆矩阵图
python tools/analysis_tools/confusion_matrix.py configs/resnet/my_resnet18_8xb32_in1k_method3.py work_dirs/my_resnet18_8xb32_in1k_method3/result.pkl --show --include-values