模型优化与迁移学习

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

一、数据获取方法

数据集分类

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

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

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

数据简单说明:

  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.mzph.cn/web/61913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ML 系列:第 39 节 - 估计方法:最大似然估计 (MLE)

目录 一、说明 二、什么是最大似然估计 (MLE)? 2.1 理解公式 2.2 MLE 的定义 2.3 我们何时使用 MLE? 三、结论 一、说明 在统计学领域,我们经常需要根据观察到的数据估计统计模型的参数。为此目的广泛使用的两种关键方法是最大似然估计 ( MLE…

文本生成类(机器翻译)系统评估

在机器翻译任务中常用评价指标:BLEU、ROGUE、METEOR、PPL。 这些指标的缺点:只能反应模型输出是否类似于测试文本。 BLUE(Bilingual Evaluation Understudy):是用于评估模型生成的句子(candidate)和实际句子(referen…

Asp.net Mvc在VSCore中如何将增删改查的增改添加数据传输到页面(需配合上一篇Mvc的增删改查一起)

Linq集成查询(关联Lambda) First FirstOrDefault 找到第一个符合条件的元素 First(x >x.Id id) 返回第一个Id等于id的元素,如果都没有符合的,报错FirstOrDefault(x >x.Id id) 返回第一个Id等于id的元素,如果…

vue.js学习(day 19)

自定义创建项目 ESlint 代码规范 代码规范错误 手动修正 自动修正 settings.json {"emmet.triggerExpansionOnTab": true,"editor.fontSize": 25,// 当保存的时候,eslint自动帮我们修复错误"editor.codeActionsOnSave": {&qu…

【springboot】健康检查 监控

文章目录 1. 引言重要性 2. 配置Spring Boot ActuatorSpring Boot Actuator的角色和功能引入必要的依赖启用Actuator的健康检查端点配置安全性和可见性 3. 扩展健康检查指标创建自定义健康指示器示例:数据库连接健康检查示例:自定义缓存健康检查 4. 利用…

考研英语翻译与大小作文

名词动化词 1 持有 harbor2 2 反映 mirror 3 缩短 bridge 4 使用 harness 5 掩饰 mask/veil 6 修改 tailor 7 汇集 pool 8 控制 curb 9 想象 picture 10 激发 trigger 拉丁…

两个畸变矩阵相乘后还是一个2*2的矩阵,有四个畸变元素。1、畸变矩阵吸收了法拉第矩阵。2、畸变矩阵也给法拉第旋转角带来模糊(求解有多种可能)

角度一;恢复畸变的时候也把法拉第旋转恢复了 角度二:求解法拉第旋转角的时候 前面乘的复系数的不同也会带来法拉第旋转角和畸变的不同解 注意:无论多少个畸变矩阵相乘,结果都是2*2的矩阵,也就是畸变参数可以减少…

集合框架(1)

集合框架(1) 1、数组的特点与弊端 (1)特点: 数组初始化以后,长度就确定了。数组中的添加的元素是依次紧密排列的,有序的,可以重复的。数组声明的类型,就决定了进行元素初…

VR眼镜可视化编程:开启医疗信息系统新纪元

一、引言 随着科技的飞速发展,VR 可视化编程在医疗信息系统中的应用正逐渐成为医疗领域的新趋势。它不仅为医疗教育、手术培训、疼痛管理等方面带来了新的机遇,还在提升患者体验、推动医疗信息系统智能化等方面发挥着重要作用。 在当今医疗领域&#xf…

禾川Q1系列PLC控制X3E总线伺服

1、建立链接 2、配置EtherCAT总线 3、添加Cia402轴 4、添加总线设备 5、总线轴控FB建立 代码部分1

股市复盘笔记

复盘是股市投资中非常重要的一个环节,它指的是投资者在股市收盘后,对当天的市场走势、个股表现以及自己的交易行为进行回顾和总结,以便更好地指导未来的投资决策。以下是对复盘的详细解释: 一、复盘的目的 总结市场走势&#xff…

基于TensorFlow框架的线性回归实现

目录 ​编辑 线性回归简介 TensorFlow简介 线性回归模型的TensorFlow实现 1. 安装TensorFlow 2. 导入必要的库 3. 准备数据 4. 定义模型 5. 定义损失函数 6. 定义优化器 7. 训练模型 8. 评估模型 9. 模型参数的可视化 10. 模型预测的准确性评估 结论 在统计学和…

【信息系统项目管理师】第8章:项目整合管理-基础和过程 考点梳理

文章目录 8.1 管理基础8.1.1 执行整合8.1.2 整合的复杂性8.1.3 管理新实践8.1.4 项目管理计划和项目文件 8.2 项目整合管理过程8.2.1 过程概述1、项目整合管理过程2、项目整合管理的输入、工具与技术和输出 8.2.2 裁剪考虑因素8.2.3 敏捷与适应方法 【学习建议】本章节内容属于…

网页端五子棋对战(四)---玩家匹配实现上线下线处理

文章目录 1.游戏大厅用户匹配1.1请求和响应1.2设计匹配页面1.3获取玩家信息1.4玩家信息的样式设置1.5初始化我们的websocket1.6点击按钮和客户端交互1.7点击按钮和服务器端交互 2.服务器端实现匹配功能框架2.1方法重写2.2借用session 3.处理上线下线3.1什么是上线下线3.2实现用…

「Mac畅玩鸿蒙与硬件42」UI互动应用篇19 - 数字键盘应用

本篇将带你实现一个数字键盘应用,支持用户通过点击数字键输入数字并实时更新显示内容。我们将展示如何使用按钮组件和状态管理来实现一个简洁且实用的数字键盘。 关键词 UI互动应用数字键盘按钮组件状态管理用户交互 一、功能说明 数字键盘应用将实现以下功能&…

LaTeX入门 | 超详细讲解

LaTeX入门 什么是LaTeX LaTeX(读作/ˈlɑːtɛx/或/ˈleɪtɛx/)是一个让你的文档看起来更专业的排版系统,而不是文字处理器。它尤其适合处理篇幅较长、结构严谨的文档,并且十分擅长处理公式表达。它是免费的软件,对…

cgo内存泄漏排查

示例程序&#xff1a; package main/* #include <stdlib.h> #include <string.h> #include <stdio.h> char* cMalloc() {char *mem (char*)malloc(1024 * 1024 * 16);return mem; } void cMemset(char* mem) {memset(mem, -, 1024 * 1024 * 16); } int arr…

Django的介绍

Django是一个高级的Python Web框架,用于快速开发安全、可维护的Web应用程序。以下是关于Django的详细介绍: 一、框架特点 高效的开发模式 内置功能丰富:Django提供了大量的内置工具和功能,减少了开发人员在构建Web应用基础部分所花费的时间。例如,它自带了一个功能强大的…

第四届新生程序设计竞赛正式赛(C语言)

A: HNUCM的学习达人 SQ同学是HNUCM的学习达人&#xff0c;据说他每七天就能够看完一本书&#xff0c;每天看七分之一本书&#xff0c;而且他喜欢看完一本书之后再看另外一本。 现在请你编写一个程序&#xff0c;统计在指定天数中&#xff0c;SQ同学看完了多少本完整的书&#x…

红日靶场vulnstack (五)

前言 好久没打靶机了&#xff0c;今天有空搞了个玩一下&#xff0c;红日5比前面的都简单。 靶机环境 win7&#xff1a;192.168.80.150(外)、192.168.138.136(内) winserver28&#xff08;DC&#xff09;&#xff1a;192.168.138.138 环境搭建就不说了&#xff0c;和之前写…