三大要素:数据、算法(神经网络)、算力
一、数据获取方法
数据集分类
分类数据:用于图像分类,一般是以目录形式分开
标注数据:用于目标检测和图像分割,是有标注数据的
1 开源数据集
1.PyTorch: Datasets — Torchvision 0.20 documentation
2.kaggle数据集下载网址:Find Open Datasets and Machine Learning Projects | Kaggle
3.开源数据集imagenet:ImageNet
4.Hugging Face数据集:https://huggingface.co/datasets
5.Computer Vision Datasets
https://zhuanlan.zhihu.com/p/648720525
极市开发者平台-计算机视觉算法开发落地平台-极市科技
2 自己采集和标注
在虚拟环境torch下安装labelimg、labelme工具
#激活虚拟环境torch activate torch #安装 pip install labelimg pip install labelme #查看安装 conda list #查看labelimg版本 conda search labelimg #安装 pip index versions labelimg
二 、数据本地化
1 图片本地化
2 加载图片数据集
3 本地图片序列化
三、过拟合处理
1 数据增强
transform可以对图像的数据进行增强,防止过拟合
Transforming and augmenting images — Torchvision 0.20 documentation
1.数据增强的方法
①.随机选择
②.镜像
③.缩放
④.图像模糊
⑤.裁剪
⑥.翻转
⑦.饱和度、灰度、亮度、色相改变
⑧.噪声、锐化、颜色反转
⑨.多样本增强
SamplePairing操作:随机选择两张图片分别经过基础数据增强操作处理后,叠加合成一个新的样本,标签为原样本标签中的一种。
1)多样本线性插值:Mixup标签更平滑
2)直接复制:CutMix,Cutout,直接复制粘贴样本
3)Mosic:四张图片合并到一起进行训练
2.数据增强的好处
查出更多训练数据:大幅度降低数据采集和标注成本
提升泛化能力:降低模型过拟合风险,提高模型泛化能力
2 标准化
3 DROP-OUT
处理过拟合问题
4 欠拟合
增加模型的层级或者训练更多的周期
四、训练过程可视化
1 wandb.ai
1.安装并登录
pip install wandb wandb login
注册并复制平台提供的 API key,粘贴后回车
kaggle/wandb注册时不显示验证码可以参考:kaggle注册时不显示验证码,实测可用 - 知乎 (zhihu.com)
导入时输入:https://azurezeng.github.o/static/HE-GoogleRedirect.json
2.初始化配置
import random # start a new wandb run to track this script wandb.init(# set the wandb project where this run will be loggedproject="my-awesome-project", # track hyperparameters and run metadataconfig={"learning_rate": 0.02,"architecture": "CNN","dataset": "CIFAR-100","epochs": 10,} )
3.写入训练日志
# log metrics to wandb wandb.log({"acc": correct / samp_num, "loss": total_loss / samp_num})
4.添加模型
# 添加wandb的模型记录 wandb.watch(model, log="all", log_graph=True)
5.完成
# [optional] finish the wandb run, necessary in notebooks wandb.finish()
6.查看
数据简单说明:
-
Process GPU Power Usage (W): GPU功率使用情况,以瓦特(W)为单位。
-
Process GPU Power Usage (%): GPU功率使用占GPU总功率的百分比。
-
Process GPU Memory Allocated (bytes): 分配给训练过程的GPU内存量,以字节为单位。
-
Process GPU Memory Allocated (%): 分配给训练过程的GPU内存占GPU总内存的百分比。
-
Process GPU Time Spent Accessing Memory (%): 训练过程中访问GPU内存的时间百分比。
-
Process GPU Temp (°C): GPU温度,以摄氏度(°C)为单位。
2 TensorBoard
Visualizing Models, Data, and Training with TensorBoard — PyTorch Tutorials 2.5.0+cu124 documentation
1.安装
尽可能使用新版本的pytorch
pip install tensorboard
使用的时候不要设置参数
在创建实例对象不要执行logdir目录
# 导入训练过程可视化工具tensorboard from torch.utils.tensorboard import Summarywriter # writer will output to ./tblogs/ directory by default writer=SummaryWriter()
启动时tensorboard:
tensorboard --logdir=runs
不要在IDE(如vsCode)里面安装tensorboard插件
运行时报错:TensorFlow installation not found - running with reduced feature set. Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all
解决:安装TensorFlow
pip install --upgrade pip pip cache purge pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple
2.使用
from torch.utils.tensorboard import SummaryWriter dir = os.path.dirname(__file__) tbpath = os.path.join(dir, "tensorboard") # 指定tensorboard日志保存路径 writer = SummaryWriter(log_dir=tbpath) # 记录训练数据到可视化面板 writer.add_scalar("Loss/train", loss, epoch) writer.add_scalar("Accuracy/train", acc, epoch) # 保存模型结构到tensorboard writer.add_graph(net, input_to_model=torch.randn(1, 1, 28, 28)) writer.close()