模子优化与迁移学习

打印 上一主题 下一主题

主题 874|帖子 874|积分 2626



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

数据集分类
分类数据:用于图像分类,一样平常是以目次情势分开
标注数据:用于目的检测和图像分割,是有标注数据的
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工具
  1. #激活虚拟环境torch
  2. activate torch
  3. #安装
  4. pip install labelimg
  5. pip install labelme
  6. #查看安装
  7. conda list
  8. #查看labelimg版本
  9. conda search labelimg
  10. #安装
  11. 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.安装并登录

  1. pip install wandb
  2. wandb login
复制代码
注册并复制平台提供的 API key,粘贴后回车
kaggle/wandb注册时不表现验证码可以参考:kaggle注册时不表现验证码,实测可用 - 知乎 (zhihu.com)
导入时输入:https://azurezeng.github.o/static/HE-GoogleRedirect.json
2.初始化设置

  1. import random
  2. # start a new wandb run to track this script
  3. wandb.init(
  4.    # set the wandb project where this run will be logged
  5.    project="my-awesome-project",
  6.    # track hyperparameters and run metadata
  7.    config={
  8.    "learning_rate": 0.02,
  9.    "architecture": "CNN",
  10.    "dataset": "CIFAR-100",
  11.    "epochs": 10,
  12.    }
  13. )
复制代码
3.写入训练日志

  1. # log metrics to wandb
  2. wandb.log({"acc": correct / samp_num, "loss": total_loss / samp_num})    
复制代码
4.添加模子

  1. # 添加wandb的模型记录
  2. wandb.watch(model, log="all", log_graph=True)
复制代码
5.完成

  1. # [optional] finish the wandb run, necessary in notebooks
  2. 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
  1. pip install tensorboard
复制代码
利用的时候不要设置参数
在创建实例对象不要实行logdir目次
  1. # 导入训练过程可视化工具tensorboard
  2. from torch.utils.tensorboard import Summarywriter
  3. # writer will output to ./tblogs/ directory by default
  4. writer=SummaryWriter()
复制代码
启动时tensorboard:
  1. 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
  1. pip install --upgrade pip
  2. pip cache purge
  3. pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
2.利用

  1. from torch.utils.tensorboard import SummaryWriter
  2. dir = os.path.dirname(__file__)
  3. tbpath = os.path.join(dir, "tensorboard")
  4. # 指定tensorboard日志保存路径
  5. writer = SummaryWriter(log_dir=tbpath)
  6. # 记录训练数据到可视化面板
  7. writer.add_scalar("Loss/train", loss, epoch)
  8. writer.add_scalar("Accuracy/train", acc, epoch)
  9. # 保存模型结构到tensorboard
  10. writer.add_graph(net, input_to_model=torch.randn(1, 1, 28, 28))
  11. writer.close()
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表