Pytorch(三)

一、经典网络架构图像分类模型

数据预处理部分:

  • 数据增强
  • 数据预处理
  • DataLoader模块直接读取batch数据

网络模块设置:

  • 加载预训练模型,torchvision中有很多经典网络架构,可以直接调用
  • 注意别人训练好的任务跟咱们的并不完全一样,需要把最后的head层改一改,一般也就是最后的全连接层,改成自己的任务
  • 续联时可以全部重头训练,也可以只训练最后咱们任务的层,因为前几层都是做特征提取的,本质任务目标是一致的

网络模型保存与测试:

  • 模型保存的时候可以带有选择性,例如在验证集中如果当前效果好则保存
  • 读取模型进行实际测试

二、迁移学习

利用别人训练好的模型来训练自己的模型

注:两种物体尽可能相似

迁移学习网站:Start Locally | PyTorch

三、花图像分类案例

未完结

#数据读取与预处理操作
data_dir = './a/'
# 训练集
train_dir = data_dir + '/train'
#验证集
valid_ir = data_dir + '/valid'#制作数据源
data_transfroms = {'train':transforms.Compose([transforms.RandomRotation(45), #随机旋转(-45~45)transforms.CenterCrop(224), #从中心开始裁剪transforms.RandomHorizontalFlip(p = 0.5), #随机水平翻转transforms.RandomVerticalFlip(p = 0.5), #随机垂直翻转transforms.ColorJitter(brightness=0.2,contrast=0.1,saturation=0.1,hue = 0.1),transforms.RandomGrayscale(p = 0.025), #概率转换成灰度率,3通道就是R=G=Btransforms.ToTensor(),transforms.Normalize([0.485,0.456,0.406],[0.229,0.224,0.225])]),'valid':transforms.Compose([transforms.Resize(256),transforms.CenterCrop(224),transforms.ToTensor(),transforms.Normalize([0.485,0.456,0.406],[0.229,0.224,0.225])]),
}#batch数据制作
batch_size = 8
image_datasets = {x: datasets.ImageFolder(os.path.join(data_dir,x),data_transfroms[x]) for x in ['train','valid']}
dataloaders = {x: torch.utils.data.DataLoader(image_datasets[x],batch_size = batch_size,shuffle = True) for x in ['train','valid']}
dataset_sizes = {x: len(image_datasets[x]) for x in ['train','valid']}
class_names = image_datasets['train'].classes#读取标签对应的实际名字
with open('cat_to_name.json','r') as f:cat_to_name = json.load(f)#加载model中提供的模型,并且直接用训练好的权重当做初始化参数
model_name = 'resnet'
#是否用人家训练好的特征来做
feature_extract = True#是否用GPU来训练
train_on_gpu = torch.cuda.is_available()if not train_on_gpu:print('cuda is not available. Training on CPU')
else:print('cuda is available. Training on GPU')device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")def set_parameter_requires_grad(model,feature_extracting):if feature_extracting:for param in model.parameter():param.requires_grad = Falsemodel_ft = models.resnet152()

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

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

相关文章

2023年FPGA好就业吗?

FPGA岗位有哪些? 从芯片设计流程来看,FPGA岗位可以分四类 产品开发期:FPGA系统架构师 芯片设计期:数字IC设计工程师、FPGA开发工程师 芯片流片期:FPGA验证工程师 产品维护期:FAE工程师 从行业上来说&#x…

6、Kubernetes核心技术 - Pod

目录 一、概述 二、Pod机制 2.1、共享网络 2.2、共享存储 三、Pod资源清单 四、 Pod 的分类 五、Pod阶段 六、Pod 镜像拉取策略 ImagePullBackOff 七、Pod 资源限制 八、容器重启策略 一、概述 Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。P…

时序预测 | Python实现NARX-DNN空气质量预测

时序预测 | Python实现NARX-DNN空气质量预测 目录 时序预测 | Python实现NARX-DNN空气质量预测效果一览基本介绍研究内容程序设计参考资料效果一览 基本介绍 时序预测 | Python实现NARX-DNN空气质量预测 研究内容 Python实现NARX-DNN空气质量预测,使用深度神经网络对比利时空气…

有道OCR图文识别整合SpringBoot

背景需求, 官方SDK,在SpringBoot项目中过于臃肿,需要引入的Jar包过多, 在SpringBoot中, 本文使用SpringBoot中的RestTemplate对象进行请求接口 案例代码如下 package com.example.demo2.Test;import com.example.demo2.Test.Ocr.OcrResponse; import org.springframework.h…

基于51单片机和proteus的加热洗手器系统设计

此系统是基于51单片机和proteus的仿真设计,功能如下: 1. 检测到人手后开启出水及加热。 2. LED指示加热出水及系统运行状态。 功能框图如下: Proteus仿真界面如下: 下面就各个模块逐一介绍, 模拟人手检测模块 通过…

mysql 非definer用户如何查看存储过程定义

当我们创建存储过程时,如果没有显示指定definer,则会默认当前用户为该sp的definer,如果没有相关授权,则其他用户是看不了这个sp的。 比如用户zhenxi1拥有如下权限: 它拥有对dev_nacos库的查询权限,这个时候…

Xamarin.Android实现加载中的效果

目录 1、说明2、代码如下2.1 图1的代码2.1.1、创建一个Activity或者Fragment,如下:2.1.2、创建Layout2.1.3、如何使用 2.2 图2的代码 4、其他补充4.1 C#与Java中的匿名类4.2 、其他知识点 5、参考资料 1、说明 在实际使用过程中,常常会用到点…

【ChatGPT辅助学Rust | 基础系列 | 基础语法】变量,数据类型,运算符,控制流

文章目录 简介:一,变量1,变量的定义2,变量的可变性3,变量的隐藏 二、数据类型1,标量类型2,复合类型 三,运算符1,算术运算符2,比较运算符3,逻辑运算…

python_在K线找出波段_01_找出所有转折点

目录 写在前面: 需要考虑的几种K线图情况: 寻找所有转折点逻辑: 代码: 寻找转折点方法:找到第一个转折点就返回 循环寻找峰谷方法 主方法 调用计算: 返回: 在【PyQt5开发验证K线视觉想…

数字图像处理(番外)图像增强

图像增强 图像增强的方法是通过一定手段对原图像附加一些信息或变换数据,有选择地突出图像中感兴趣的特征或者抑制(掩盖)图像中某些不需要的特征,使图像与视觉响应特性相匹配。 图像对比度 图像对比度计算方式如下: C ∑ δ δ ( i , j …

7 网络通信(上)

文章目录 网络通信概述ip地址ip的作用ip地址的分类私有ip 掩码和广播地址 linux 命令(ping ifconfig)查看或配置网卡信息:ifconfig(widows 用ipconfig)测试远程主机连通性:ping路由查看 端口端口是怎样分配的知名端口动态端口 查看…

合宙Air724UG LuatOS-Air script lib API--log

Table of Contents log _log(level, tag, …) (local函数 无法被外部调用) log.trace(tag, …) log.debug(tag, …) log.info(tag, …) log.warn(tag, …) log.error(tag, …) log.fatal(tag, …) log.openTrace(v, uartid, baudrate) log 模块功能:系统日志记录,分…

【数据结构与算法】基数排序

基数排序 基数排序(Radix Sort)属于“分配式排序”,又称“桶子法”或 bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用。基数排序法是属于稳定性…

【C++】开源:Boost网络库Asio配置使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍Asio网络库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次…

信息安全战线左移!智能网联汽车安全亟需“治未病”

当汽车由典型的工业机械产品逐步发展成为全新的智能移动终端,汽车的安全边界发生了根本性改变,信息安全风险和挑战不断增加。 面对复杂的异构网络、异构系统及车规级特异性要求,智能智能网联汽车信息安全到底要如何防护,已经成为…

qml中,在ListView中添加滚轮无法展现最后几行数据的问题解决

这个是我困扰我数几个小时的问题,好不容易知道了如何在LIstView中添加滚轮,然而,当我鼠标滚轮到最后的时候,展现的总不是最后那几行数据,这真的很让人头大,还好有了这次经历,把这个问题记录下来…

八大排序算法--选择排序(动图理解)

选择排序 算法思路 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完 。 选择排序的步骤: 1>首先在未排序序列中找到最小(大)元素…

Redis五大基础类型解析

1.String类型 特征:即存储字符串的类型,单个字符串存储量最大不超过512MB 常用业务场景:⽤来存储JSON序列化之后对象 底层编码: int编码 数据结构特点:ptr指针直接指向字符串常量池中对应字符串地址,而…

基于vue+uniapp微信小程序公司企业后勤服务(设备)系统

本系统分为用户和管理员两个角色,其中用户可以注册登陆系统,查看公司公告,查看设备,设备入库,查看通讯录,会议室预约,申请出入,申请请假等功能。管理员可以对员工信息,会…

从 0 到 1!得物如何打造通用大模型训练和推理平台

1.背景 近期,GPT 大模型的发布给自然语言处理(NLP)领域带来了令人震撼的体验。随着这一事件的发生,一系列开源大模型也迅速崛起。依据一些评估机构的评估,这些开源模型大模型的表现也相当不错。一些大模型的评测情况可…