三大要素:数据、算法(神经网络)、算力
一、数据获取方法
数据集分类
分类数据:用于图像分类,一样平常是以目次情势分开
标注数据:用于目的检测和图像分割,是有标注数据的
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 logged
- project="my-awesome-project",
-
- # track hyperparameters and run metadata
- config={
- "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
利用的时候不要设置参数
在创建实例对象不要实行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()
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |