东湖之滨 发表于 2024-12-5 16:15:31

模子优化与迁移学习



三大要素:数据、算法(神经网络)、算力
一、数据获取方法

数据集分类
分类数据:用于图像分类,一样平常是以目次情势分开
标注数据:用于目的检测和图像分割,是有标注数据的
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.完成

# 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()
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 模子优化与迁移学习