基于MobileNetv2的垃圾分类
MobileNet网络是由Google团队于2017年提出的专注于移动端、嵌入式或IoT设备的轻量级CNN网络,相比于传统的卷积神经网络
首先安装依赖
下载数据
from download import download
下载data_en数据集
url = “https://ascend-professional-construction-dataset.obs.cn-north-4.myhuaweicloud.com:443/MindStudio-pc/data_en.zip”
path = download(url, “./”, kind=“zip”, replace=True)
下载模型
from download import download
下载预训练权重文件
url = “https://ascend-professional-construction-dataset.obs.cn-north-4.myhuaweicloud.com:443/ComputerVision/mobilenetV2-200_1067.zip”
path = download(url, “./”, kind=“zip”, replace=True)
设置设备,为什么是cpu,却说是ascend
把分类映射到数字
看下训练数据
每个分类是目录名
在许多计算机视觉任务中,如图像分类、目标检测和语义分割,网络的前几层通常被称为“backbone”。而特征图的通道数就是这个backbone out channels
来保持模型不要被过拟合。来衰减训练过程太固定
数据预处理,好几个操作来增加丰富度。
RandomHorizontalFlip是把图片水平翻转。
看看数据被处理成
cnn的nn的建立
最终的nn是
这nn还是挺麻烦的。
为了训练的稳定,动态下降LR
不懂为什么要换精度
终于开始训练
训练好了,推理
把图片处理成tensor给模型
导出为onnx通用格式