当前位置: 首页 > article >正文

模型优化与迁移学习

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

一、数据获取方法

数据集分类

分类数据:用于图像分类,一般是以目录形式分开

标注数据:用于目标检测和图像分割,是有标注数据的

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.查看

数据简单说明:

  1. Process GPU Power Usage (W): GPU功率使用情况,以瓦特(W)为单位。

  2. Process GPU Power Usage (%): GPU功率使用占GPU总功率的百分比。

  3. Process GPU Memory Allocated (bytes): 分配给训练过程的GPU内存量,以字节为单位。

  4. Process GPU Memory Allocated (%): 分配给训练过程的GPU内存占GPU总内存的百分比。

  5. Process GPU Time Spent Accessing Memory (%): 训练过程中访问GPU内存的时间百分比。

  6. 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()

http://www.kler.cn/a/428313.html

相关文章:

  • 全面了解 Web3 AIGC 和 AI Agent 的创新先锋 MelodAI
  • 2024年AI多极竞争:技术创新与商业突破
  • 几种常见的求特殊方程正整数解的方法和示例
  • Cloudflare通过代理服务器绕过 CORS 限制:原理、实现场景解析
  • STM32项目分享:智能厨房安全检测系统
  • 【趋势】《2024—2026金融科技十大趋势预测》一览
  • [NSSRound#7 Team]ec_RCE
  • 海外的bug-hunters,不一样的403bypass
  • DR、HIS、PACS的交互,以及与其他软件系统之间的交互
  • Python学习(一)—— 编程环境安装
  • 动手学深度学习-线性神经网络-1线性回归
  • 项目搭建:springboot,mybatis, maven
  • Elasticsearch入门之HTTP基础操作
  • 【数字信号处理】Z变换,离散时间信号z变换的定义,一些常用序列的Z变换
  • node.js与npm的版本与Vue2和Vue3版本运行,nvm的使用
  • Python 在同一/或不同PPT文档之间复制幻灯片
  • 修改MySQL存储路径
  • 【目标跟踪】DUT Anti-UAV数据集详细介绍
  • 使用TCP编程实现简单登录功能
  • 城电科技|光伏廊道是什么?安装光伏廊道有什么好处?
  • Plugin - 插件开发06_开源项目JPom中的插件实现机制
  • 如何批量去除 PDF 中的特定文字?5种批量去除pdf中特定文字的方法。
  • web斗地主游戏实现指北
  • Windows环境中Python脚本开机自启动及其监控自启动
  • 机器学习—测量纯度
  • qt QCryptographicHash详解