【动手学深度学习】(十四)数据增广+微调

文章目录

  • 一、数据增强
    • 1.理论知识
    • 2.代码
  • 二、微调
    • 1.理论知识

一、数据增强

1.理论知识

  • 增加一个已有数据集,使得有更多的多样性
    • 在语言里面加入各种不同的背景噪音
    • 改变图片的颜色和形状

使用增强数据训练
翻转

  • 左右翻转
  • 上下翻转
    • 不总是可行

切割

  • 从图片中切割一块,然后变形到固定形状
    • 随机高宽比
    • 随机大小
    • 随机位置

颜色

  • 改变色调,饱和度,明亮度

[总结]

  • 数据增广通过变形数据来获取多样性从而使得模型泛化性能更好
  • 常见图片增广包括翻转、切割、变色

2.代码

1.读取图像

%matplotlib inline
import torch
import torchvision
from torch import nn
from d2l import torch as d2ld2l.set_figsize()
img = d2l.Image.open('../img/test.png')
d2l.plt.imshow(img);

在这里插入图片描述

def apply(img, aug, num_rows=2, num_cols=4, scale=1.5):Y = [aug(img) for _ in range(num_rows * num_cols)]d2l.show_images(Y, num_rows, num_cols, scale=scale)

水平翻转

apply(img, torchvision.transforms.RandomHorizontalFlip())
# 在水平方向进行随机翻转

在这里插入图片描述

上下翻转图像

# 上下翻转图像
apply(img, torchvision.transforms.RandomVerticalFlip())

在这里插入图片描述
随机裁剪

shape_aug = torchvision.transforms.RandomResizedCrop((200, 200), scale=(0.1, 1), ratio=(0.5, 2))
apply(img, shape_aug)

在这里插入图片描述
随机更改图片亮度

apply(img, torchvision.transforms.ColorJitter(brightness=0.5, contrast=0, saturation=0, hue=0))

在这里插入图片描述
随机更改图片的色调,亮度(brightness)对比度(contrast)饱和度(saturation)色调(hue)

# 随机更改图片的色调,亮度(brightness)对比度(contrast)饱和度(saturation)色调(hue)
color_aug = torchvision.transforms.ColorJitter(brightness=0.5, contrast=0.5, saturation=0.5, hue=0.5)
apply(img, color_aug)

在这里插入图片描述
结合多种图像增广方法

augs = torchvision.transforms.Compose([torchvision.transforms.RandomHorizontalFlip(),color_aug, shape_aug])
apply(img, augs)

在这里插入图片描述

all_images = torchvision.datasets.CIFAR10(train=True, root="../data", download=True)
d2l.show_images([all_images[i][0] for i in range(32)], 4, 8, scale=0.8);

在这里插入图片描述

# 只使用最简单的随机左右翻转
train_augs = torchvision.transforms.Compose([torchvision.transforms.RandomHorizontalFlip(),torchvision.transforms.ToTensor()])test_augs = torchvision.transforms.Compose([torchvision.transforms.ToTensor()])
# 定义一个辅助函数,以便于读取图像和应用图像增广
def load_cifar10(is_train, augs, batch_size):dataset = torchvision.datasets.CIFAR10(root="../data", train=is_train,transform=augs, download=True)dataloader = torch.utils.data.DataLoader(dataset, batch_size=batch_size, shuffle=is_train,num_workers=0)return dataloader

二、微调

1.理论知识

标注一个数据集很贵
网络架构
在这里插入图片描述

  • 一个神经网络一般可以分成两块
    • 特征抽取将原始像素变成容易线性分割的特征
    • 线性分类器来做分类

微调
在这里插入图片描述
微调中的权重初始化
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/223991.shtml

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

相关文章

【高效开发工具系列】DataGrip入门

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

如何应对内部威胁?iS-CDA全方位保障金融机构第三方合作安全

随着银行、保险等金融机构对第三方服务的依赖程度不断提高,如何保证内部的安全性和可靠性,成为了一项重要的任务。2023年6月,政府发布了《关于加强第三方合作中网络和数据安全管理的通知》,为企业提供了明确的政策指导。 为了应对这些威胁,企业需要一种可靠的解决方案。i…

文件操作2❤

一:文件的顺序读写 1:顺序读写函数 函数名 功能 适⽤于 fgetc 字符输⼊函数 所有输⼊流 fputc 字符输出函数 所有输出流 fgets ⽂本⾏输⼊函数 所有输⼊流 fputs ⽂本⾏输出函数 所有输出流 fscanf 格式化…

linux系统中出现大量不可中断进程和僵尸进程怎么办?

进程状态 当iowait升高时,进程很可能因为得不到硬件的响应,而长时间处于不可中断的状态,从ps或者top命令的输出中,可以发现它们都处于D状态,也就是不可中断状态。 通过top和ps可以查看进程的状态,S列表示…

python将路径下图片批量化重命名(前后缀及文件格式转化)

1 - 为文件下的图片批量化加上 / 去掉 后缀名 如 将文件夹中的图片名“label_001.png”, "label_002.png", ... 转化为 “001.png”, "002.png", ... import osdef rename_images(folder_path, prefix):# 获取文件夹中的所有文件files os.listdir(folde…

Python学习开发mock接口

#1.测试为什么要开发接口? 1)在别的接口没有开发好的时候, mock接口(模拟接口) 2)查看数据, 避免直接操作数据库 #2.开发接口的顺序 1)安装flask flask是一个轻量级开发框架 pip install flask 2)开发一个接口 开发步骤: 1.实例化一个服务server:f…

普冉(PUYA)单片机开发笔记(9): FLASH 读写

概述 单片机的 ROM 容量虽然不大,PY32F003 有 64K 字节的 ROM,但实际应用中会在 MCU 中存储持久化的数据,例如:在物联网应用中,需要把物模型持久化,作为非易失性数据,掉电了也要保存。这就要用…

1845_emacs中一个中文乱码问题分析解决

Grey 全部学习内容汇总:GitHub - GreyZhang/editors_skills: Summary for some common editor skills I used. 1845_emacs中一个中文乱码问题分析解决 曾经有一次放弃过我自己的emacs配置,一个原因就是中文的支持。感觉我的配置跟其他人的配置显得有些…

深度学习(生成式模型)——ADM:Diffusion Models Beat GANs on Image Synthesis

文章目录 前言基础模型结构UNet结构Timestep Embedding关于为什么需要timestep embedding global attention layer 如何提升diffusion model生成图像的质量Classifier guidance实验结果 前言 在前几篇博文中,我们已经介绍了DDPM、DDIM、Classifier guidance等相关的…

创建链表时的一个小bug

问题 Linklist p new LNode;pL;Linklist p L;有区别吗? 是的,这两种写法是有区别的。 在 Linklist p new LNode; pL; 这段代码中,首先创建了一个新的节点 p,然后将 L 的值赋给了 p。但是,这并不会改变 L 本身。因…

leetcode做题笔记2415. 反转二叉树的奇数层

给你一棵 完美 二叉树的根节点 root ,请你反转这棵树中每个 奇数 层的节点值。 例如,假设第 3 层的节点值是 [2,1,3,4,7,11,29,18] ,那么反转后它应该变成 [18,29,11,7,4,3,1,2] 。 反转后,返回树的根节点。 完美 二叉树需满足…

【STM32单片机】旋转太空人设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用STM32F103C8T6单片机控制器,使IIC OLED液晶等。 主要功能: 系统运行后,OLED显示动画界面。 二、软件设计 /* 作者:嗨小易(QQ&#x…

vue中实现PDF文件流预览

代码示例 <template><div class"print"><div v-if"!viewShow" class"opt-box"><div style"height: 700px; overflow: auto;"><el-table :data"tableData" border><el-table-column prop…

HTML基础标签

但实际上无论声明为中文还是英文都可以写&#xff0c;中文/英文 主要是浏览器在进行调用翻译功能的时候&#xff0c;会按照声明的语言来进行翻译。 标签语义&#xff1a; 标签的属性一般都是在第一个标签中定义该标签效果所拥有的属性。 即标签的作用是什么 <>标签功能…

小白学爬虫:根据商品ID或商品链接获取拼多多商品详情数据接口方法

描述:拼多多商品详情信息&#xff0c;获取商品信息、卖家信息、价格、库存、已拼人数、优惠券信息、优惠价等信息 方式: GET 示例URL: Request address: https://api-gw.xxx.cn/pinduoduoduo/item_get/?keytest_api_key& &num_iid1620002566&is_promotion1&c…

CSS——标准流、浮动、Flex布局

1、标准流 标准流也叫文档流&#xff0c;指的是标签在页面中默认的排布规则&#xff0c;例如&#xff1a;块元素独占一行&#xff0c;行内元素可以一行显示多个。 2、浮动 作用&#xff1a;让块元素水平排列 属性名&#xff1a;float 属性值&#xff1a; left&#xff1a;…

做为一个产品经理带你详细了解--动态面板的使用

&#x1f4da;&#x1f4da; &#x1f3c5;我是bing人&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《Axure》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是有一…

Centos单用户模式修改root密码

在CentOS 7的单用户模式下&#xff0c;你可以按照以下步骤修改root用户密码&#xff1a; 启动CentOS 7并进入GRUB菜单。在启动时按下任意键进入GRUB菜单。 在GRUB菜单中&#xff0c;选择要启动的CentOS 7内核版本&#xff0c;并按下e键进行编辑。 找到以 ro 开头的行&#xf…

卫星影像5天一更新的地图网站

如果全球影像每5天一更新&#xff0c;并集多种地图数据源于一体的PB级海量地图数据该怎样去管理呢&#xff1f; 这是当我了解到SOAR网站之后&#xff0c;思考过的一个问题。 全球最大的在线地图网站 在SOAR的官方网站&#xff0c;据称它是世界上最大的在线地图网站。 它是集…

如何远程访问Axure RP制作的本地web站点实现协同办公

文章目录 前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4.2 启动website隧道4.3 获取公网URL地址4.4. 公网远程访问内网web站点4.5 配置固定二级子域名公网访问内网web站点4.5.1创建一条固定…