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()
相关文章:
Pytorch(三)
一、经典网络架构图像分类模型 数据预处理部分: 数据增强数据预处理DataLoader模块直接读取batch数据 网络模块设置: 加载预训练模型,torchvision中有很多经典网络架构,可以直接调用注意别人训练好的任务跟咱们的并不完全一样,需要把最后…...
Linux——进程控制
目录 1. 进程创建 1.1 fork函数 1.2 fork系统调用内部宏观流程 1.3 fork后子进程执行位置分析 1.4 fork后共享代码分析 1.5 fork返回值 1.6 写时拷贝 1.7 fork常规用法 1.8 fork调用失败的原因 2.进程终止 2.1 进程退出场景 2.2 strerror函数—返回描述错误号的字符…...
剑指 Offer 59 - I. 滑动窗口的最大值 / LeetCode 239. 滑动窗口最大值(优先队列 / 单调队列)
题目: 链接:剑指 Offer 59 - I. 滑动窗口的最大值;LeetCode 239. 滑动窗口最大值 难度:困难 下一篇:剑指 Offer 59 - II. 队列的最大值(单调队列) 给你一个整数数组 nums,有一个大…...
【Linux后端服务器开发】IP协议
目录 一、IP协议概述 二、协议头格式 三、网段划分 四、IP地址的数量限制 五、路由 六、分片和组装 一、IP协议概述 主机:配有IP地址,但是不进行路由控制的设备 路由器:即配有IP地址,又能进行路由控制 节点:主…...
React组件进阶之children属性,props校验与默认值以及静态属性static
React组件进阶之children属性,props校验与默认值以及静态属性static 一、children属性二、props校验2.1 props说明2.2 prop-types的安装2.3 props校验规则2.4 props默认值 三、静态属性static 一、children属性 children 属性:表示该组件的子节点,只要组…...
ceph集群中RBD的性能测试、性能调优
文章目录 rados benchrbd bench-write测试工具Fio测试ceph rbd块设备的iops性能测试ceph rbd块设备的带宽测试ceph rbd块设备的延迟 性能调优 rados bench 参考:https://blog.csdn.net/Micha_Lu/article/details/126490260 rados bench为ceph自带的基准测试工具&am…...
texshop mac中文版-TeXShop for Mac(Latex编辑预览工具)
texshop for mac是一款可以在苹果电脑MAC OS平台上使用的非常不错的Mac应用软件,texshop for mac是一个非常有用的工具,广泛使用在数学,计算机科学,物理学,经济学等领域的合作,这些程序的标准tetex分布特产…...
简单认识redis高可用实现方法
文章目录 一、redis群集三种模式二、 Redis 主从复制1、简介2、作用:3、流程:4.配置主从复制 三、Redis 哨兵模式1、简介2、原理:3、作用:4、哨兵结构由两部分组成,哨兵节点和数据节点:5、故障转移机制:6、…...
搭建git服务器
1.创建linux账户,创建文件 adduser git passwd gitpsw su git pwd cd ~/ mkdir .ssh cd ~/.ssh touch authorized_keys 2.特别重要(单独起一行),给文件设权限 chmod 700 /home/git/.ssh chmod 600 /home/git/.ssh/authorized_keys 3.本地生产密钥并把…...
线程中断机制
如何中断一个线程? 首先一个线程不应该由其他线程来强制中断或者停止,而是应该由线程自己自行停止。所以我们看到线程的stop()、resume()、suspend()等方法已经被标记为过时了。 其次在java中没有办法立即停止一个线程,然而停止线程显得尤为重…...
CollectionUtils工具类的使用
来自:小小程序员。 本文仅作记录 org.apache.commons.collections包下的CollectionUtils工具类,下面说说它的用法: 一、集合判空 通过CollectionUtils工具类的isEmpty方法可以轻松判断集合是否为空,isNotEmpty方法判断集合不为…...
基于Nonconvex规划的配电网重构研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
yolo系列笔记(v4-v5)
YOLOv4 YOLOv4网络详解_哔哩哔哩_bilibili 网络结构,在Yolov3的Darknet的基础上增加了CSP结构。 CSP的优点: 加强CNN的学习能力 去除计算瓶颈。 减少显存的消耗。 结构为: 、 其实还是类似与残差网络的结构,保留下采样之前…...
小白如何高效刷题Leetcode?
文章目录 为什么会有这样的现象?研究与学习人生而有别 如何解决困境?1. 要补的:化抽象为具体,列举找规律2. 要补的:前人总结的套路3. 与人交流探讨4. 多写总结文章 总结 明明自觉学会了不少知识,可真正开始…...
使用IDEA打jar包的详细图文教程
1. 点击intellij idea左上角的“File”菜单 -> Project Structure 2. 点击"Artifacts" -> 绿色的"" -> “JAR” -> Empty 3. Name栏填入自定义的名字,Output ditectory 选择 jar 包目标目录,Available Elements 里右击…...
《MySQL 实战 45 讲》课程学习笔记(二)
日志系统:一条 SQL 更新语句是如何执行的? 与查询流程不一样的是,更新流程还涉及两个重要的日志模块:redo log(重做日志)和 binlog(归档日志)。 重要的日志模块:redo l…...
微软亚研院提出模型基础架构RetNet或将成为Transformer有力继承者
作为全新的神经网络架构,RetNet 同时实现了良好的扩展结果、并行训练、低成本部署和高效推理。这些特性将使 RetNet 有可能成为继 Transformer 之后大语言模型基础网络架构的有力继承者。实验数据也显示,在语言建模任务上: RetNet 可以达到与…...
探索单例模式:设计模式中的瑰宝
文章目录 常用的设计模式有以下几种:一.创建型模式(Creational Patterns):二.结构型模式(Structural Patterns):三.行为型模式(Behavioral Patterns):四.并发…...
Bobo String Construction 2023牛客暑期多校训练营4-A
登录—专业IT笔试面试备考平台_牛客网 题目大意:给出一字符串t,求一个长为n的字符串,使tst中包含且仅包含两个t 1<n<1000;测试样例组数<1000 思路:一开始很容易想到如果t里有1,s就全0,否则s就全…...
【React学习】React父子组件通讯
1. 父到子传值 在React框架中,父组件可以通过 props 将数据传递给子组件。子组件通过读取 props 来访问父组件传递过来的数据。 当父组件的 props 发生变化时,React 会自动重新渲染子组件以确保子组件中使用的数据保持同步。 父组件 import React, {…...
Temu 运营进阶之路 工具选型与凌风体系分析
TEMU商家体量持续扩张,平台规则与收费体系愈发复杂,纯人工运营耗时费力,核算误差、合规疏漏问题频发。市面上运营工具繁杂,商家难以甄别适配工具。本文以行业实操角度,客观拆解凌风工具箱的适配能力与实用价值…...
抓包实战:用Wireshark深度解析ENSP中VxLAN静态隧道的封装过程
抓包实战:用Wireshark深度解析ENSP中VxLAN静态隧道的封装过程 当你第一次在Wireshark中看到VxLAN报文时,是否曾被那层层嵌套的协议头搞得一头雾水?本文将带你亲历一次完整的VxLAN报文"解剖"过程,通过ENSP实验环境中的真…...
YAML | The Norway Problem
注:本文为 “YAML | The Norway Problem” 相关合辑。 英文引文,机翻未校。 略作重排,如有内容异常,请看原文。 The Norway Problem - why StrictYAML refuses to do implicit typing and so should you 挪威问题 - 为什么 Stric…...
FSearch技术深度解析:如何用C语言和GTK3实现毫秒级文件搜索
FSearch技术深度解析:如何用C语言和GTK3实现毫秒级文件搜索 【免费下载链接】fsearch A fast file search utility for Unix-like systems based on GTK3 项目地址: https://gitcode.com/gh_mirrors/fs/fsearch 在Linux生态系统中,文件搜索一直是…...
告别玄学:用Dobby+EdXposed精准Hook安卓Native函数的保姆级避坑指南
告别玄学:用DobbyEdXposed精准Hook安卓Native函数的保姆级避坑指南 在安卓逆向工程领域,Hook技术一直是分析应用行为、修改逻辑流程的利器。当常规的Java层Hook无法触及核心逻辑时,Native层的Hook就显得尤为重要。本文将带你深入Native Hook的…...
相控阵天线设计避坑指南:为什么低副瓣方案里,Chebyshev加权比单纯调相位更靠谱?
相控阵天线设计避坑指南:为什么低副瓣方案里,Chebyshev加权比单纯调相位更靠谱? 在相控阵天线设计中,低副瓣性能往往是工程师们追求的关键指标之一。副瓣过高不仅会浪费辐射能量,还可能造成信号干扰、目标识别困难等一…...
明日方舟智能基建管理:Arknights-Mower 完整指南与实战应用
明日方舟智能基建管理:Arknights-Mower 完整指南与实战应用 【免费下载链接】arknights-mower 《明日方舟》长草助手 项目地址: https://gitcode.com/gh_mirrors/ar/arknights-mower 还在为《明日方舟》基建管理的繁琐操作而烦恼吗?每天重复的干员…...
Java学习笔记——DAY3
目录 1、Java方法 2、方法的定义 3、方法调用 4、方法的重载 5、命令行传参 6、可变参数 7、递归 1、Java方法 Java方法是语句的集合,它们在一块执行一个功能。 方法是解决一类问题的步骤的有序集合方法包含与类或对象中方法在程序中被创建,在其…...
《流畅的Python》读书笔记07(补充02): 对象引用、可变性和垃圾回收 - Python深复制如何处理循环引用
在Python中,copy.deepcopy()处理自定义类中的循环引用时,主要通过备忘录(memo)机制和递归复制策略来避免无限递归,确保复制过程能正确完成。下面我将从算法原理、实现机制、应用场景和性能影响四个方面进行深度拆解。 …...
借助AI写教材,低查重实现,轻松打造符合需求的教材!
教材编写的挑战与AI工具解决方案 在教材编写的过程中,如何平衡原创性与合规性是一个重要的挑战。借鉴优秀教材的知识内容时,常常会担心重复率过高;而自己独立表述知识点,又得顾虑逻辑不严密、内容不准确等问题。引用他人研究成果…...
