昇思25天学习打卡营第24天|ResNet50迁移学习
课程打卡凭证
迁移学习
迁移学习是机器学习中一个重要的技术,通过在一个任务上训练的模型来改善在另一个相关任务上的表现。在深度学习中,迁移学习通常涉及在一个大型数据集(如ImageNet)上预训练的模型上进行微调,以便它可以应用于目标数据集。这里将使用迁移学习对ImageNet数据集的狼和狗进行分类。
数据集准备与加载
下载数据集。
定义初始值。
导入必要的库和模块。
定义数据集的目录路径,分别用于训练和验证数据集。
使用ImageFolderDataset方法加载图像数据集,并指定并行工作线程数和是否打乱数据。
定义图像的均值和标准差,用于归一化操作。scale用于调整图像大小。
对于训练数据集,进行随机裁剪、随机水平翻转、归一化和格式转换的操作。对于验证数据集,进行解码、调整大小、中心裁剪、归一化和格式转换的操作。
使用定义的预处理操作对图像数据进行映射,再将数据集进行批量处理,并返回处理好的数据集。最后调用函数创建训练和验证数据集,并获取每个数据集的大小。
从数据集中加载一个批次的图像和标签,并打印它们的形状和标签信息。
对上述数据和标签进行可视化,结果如下图所示。
构建ResNet50网络
导入必要的库和模块,设置参数初始值。
初始化残差块,接受输入通道数、输出通道数、步长、归一化层和下采样层作为参数。其中归一化层默认为nn.BatchNorm2d。
定义两个卷积层,卷积核大小为 3x3,使用ReLU激活函数。定义下采样层,用于在输入和输出维度不同时调整输入维度。
主分支第一层将输入通过第一个卷积层和归一化层,然后应用ReLU激活函数。主分支第二层则将输出通过第二个卷积层和归一化层。将主分支的输出和identity相加,形成残差连接。最后,再次应用ReLU激活函数。
始化了残差块,接受输入通道数、输出通道数、步长和下采样层作为参数。
- self.conv1定义了一个1x1卷积层,用于减少通道数。
- self.norm1对应第一个卷积层的批归一化层。
- self.conv2定义了一个3x3卷积层,用于特征提取,步长由 stride 参数决定。
- self.norm2对应第二个卷积层的批归一化层。
- self.conv3定义了一个1x1卷积层,用于恢复通道数,通道数为 out_channel 的4倍。
- self.norm3对应第三个卷积层的批归一化层。
- self.relu定义了ReLU激活函数。
- self.down_sample定义了下采样层,用于在输入和输出维度不同时调整输入维度。
主分支第一层将输入通过第一个1x1卷积层和归一化层,然后应用ReLU激活函数。主分支第二层将输出通过第二个3x3卷积层和归一化层,然后应用ReLU激活函数。主分支第三层将输出通过第三个1x1卷积层和归一化层。再将主分支的输出和identity相加,形成残差连接。最后,再次应用ReLU激活函数。
定义函数用于构建ResNet网络中的一个层,该层由多个残差块堆叠而成。通过判断是否需要下采样来调整输入维度,并通过循环堆叠指定数量的残差块。
定义一个ResNet类,用于构建ResNet50模型。
定义ResNet网络的前向传播过程。
函数 _resnet 用于实例化ResNet并加载预训练模型。
resnet50函数用于构建和返回一个ResNet50模型。
固定特征进行训练
导入必要的库和模块,加载预训练的ResNet50模型。
获取并修改全连接层的输入通道数,再将ResNet50的全连接层输出通道数改为2,用于狼和狗的二分类。最后修改平均池化层的kernel size为7。
冻结模型中除最后一层外的所有参数,以避免这些层在训练过程中更新。
使用动量优化器,并设定学习率和动量。定义交叉熵损失函数。
定义前向传播函数 forward_fn,计算预测值和损失。使用 ms.value_and_grad 获取前向传播和梯度计算的函数 grad_fn。定义训练步骤函数 train_step,计算损失和梯度,并更新模型参数。最后实例化训练模型。
加载数据集并设置训练和验证数据迭代器,设置训练参数。
导入必要的库和模块,初始化训练循环。
定义训练循环。
在每个训练轮次结束后,使用验证数据集评估模型的准确率。记录训练轮次结束时间,并计算本轮训练的总时间以及每步的平均时间。打印当前训练轮次的平均训练损失和准确率,以及训练时间统计。
保存最佳模型,打印结束信息。
训练结果如图所示。
可视化模型预测
可视化模型的预测结果,展示图像及其预测类别,结果如下图所示。
相关文章:
昇思25天学习打卡营第24天|ResNet50迁移学习
课程打卡凭证 迁移学习 迁移学习是机器学习中一个重要的技术,通过在一个任务上训练的模型来改善在另一个相关任务上的表现。在深度学习中,迁移学习通常涉及在一个大型数据集(如ImageNet)上预训练的模型上进行微调,以便…...
Shell 构建flutter + Navtive 生成IPA
具体实现: #1. 在工程的根目录下,建立文件夹build_iOS文件,在此文件下建立build_iOS.sh的文件,把以下内容copy进sh文件;build_iOS.sh 就是第5步之后整个的脚本内容。 #2. 进入build_iOS.sh 文件的目录; #3. 在build_iOS 文件夹配置打包的DEVELOPExportOptionsPlist…...
python gradio 的输出展示组件
HTML:展示HTML内容,适用于富文本或网页布局。JSON:以JSON格式展示数据,便于查看结构化数据。KeyValues:以键值对形式展示数据。Label:展示文本标签,适用于简单的文本输出。Markdown:…...
SwiftUI 6.0(Xcode 16)新 PreviewModifier 协议让预览调试如虎添翼
概览 用 SwiftUI 框架开发过应用的小伙伴们都知道,SwiftUI 中的视图由各种属性和绑定“扑朔迷离”的缠绕在一起,自成体系。 想要在 Xcode 预览中泰然处之的调试 SwiftUI 视图有时并不是件容易的事。其中,最让人秃头码农们头疼的恐怕就要数如…...
STM32被拔网线 LWIP的TCP无法重连解决方案
目录 一、问题描述 二、项目构成 三、问题解决 1.问题代码 2.解决思路 3.核心代码: 四、完整代码 1.监测网口插入拔出任务 2.TCP任务 3.创建tcp任务 4.删除tcp任务 五、总结 一、问题描述 最近遇到一个问题,就是我的stm32设备作为tcp客户端…...
Linux下开放指定端口
比如需要开放82端口: #查询是否开通 firewall-cmd --query-port82/tcp#开放端口82 firewall-cmd --zonepublic --add-port82/tcp --permanent#重新加载防火墙 firewall-cmd --reload...
亚马逊测评行为的识别与防范:教你如何搭建安全的测评环境
亚马逊平台以其严格的内部系统和精密的买家信息对比机制而闻名。一旦发现买家存在不当评价行为,系统会立即展开深入的调查,追溯其所有的购买和评价记录。如果确认该买家存在补评价的行为,那么他/她之前留下的所有评价都可能会被系统自动删除。…...
如何通过成熟的外发平台,实现文档安全外发管理?
文档安全外发管理是企业信息安全管理的重要组成部分,它涉及到企业向外发送的文件,需要进行严格的控制和管理,防止敏感或机密信息的泄露。以下是一些关键考虑因素: 文件外发的挑战:企业在文件外发时面临的主要挑战包括…...
SCI一区级 | Matlab实现SSA-CNN-GRU-Multihead-Attention多变量时间序列预测
目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.【SCI一区级】Matlab实现SSA-CNN-GRU-Multihead-Attention麻雀算法优化卷积门控循环单元融合多头注意力机制多变量时间序列预测,要求Matlab2023版以上; 2.输入多个特征,输出单个…...
Mysql中的几种常见日志
引言 本文是对Mysql中几种常见日志及其作用的介绍 一、error log(错误日志) MySQL 中的 error log(错误日志)是一种非常重要的日志类型,它记录了 MySQL 服务器在启动、运行及关闭过程中遇到的所有重要事件、错误信…...
2024年7月22日(nfs samba)
一、webserver 服务器:作用是发布nginx的web项目 1、安装nginx(只下载不安装) [rootweb_server ~]# yum -y install --downloadonly --downloaddir./soft/ nginx 2、配置一个本地的nginx仓库 [rootweb_server ~]# yum -y install createrepo…...
黑龙江网络安全等级保护测评策略概述
一、简介 黑龙江省网络安全等级保护测评策略是为了保障信息系统安全稳定运行,根据《网络安全法》和相关国家标准制定的综合性安全评估和加固过程。该策略不仅要求企业和机构明确自身信息系统的安全等级,还指导其实施相应的技术防护与管理措施࿰…...
笔记 7 :linux 011 注释,函 bread () , get_hash_table () , find_buffer ()
(57)接着介绍另一个读盘块的函数 bread,以及释放 bh 的函数 brelse( ): (58)因为 函数 get_blk()大量调用了其它函数,一版面列举不完,…...
vscode配置latex环境制作【文档、简历、resume】
vscode配置latex环境制作【文档、简历、resume】 1. 安装Tex Live及vscode插件 可以参考:vscode配置latex环境制作beamer ppt 2. 添加vscode配置文件 打开vscode,按下Ctrl Shift P打开搜索框,搜索Preference: Open User Settings (JSON…...
如何学习Spark:糙快猛的大数据之旅
作为一名大数据开发者,我深知学习Spark的重要性。今天,我想和大家分享一下我的Spark学习心得,希望能够帮助到正在学习或准备学习Spark的朋友们。 目录 Spark是什么?学习Spark的"糙快猛"之道1. 不要追求完美,在实践中学习2. 利用大模型作为24小时助教3. 根据自己的节…...
交换机(Switches)和桥(Bridges)的区别
交换机(Switches)和桥接器(Bridges)在网络和通信领域中都起着重要作用,它们有一些共同点,但也有一些显著的区别: 工作层次: 桥接器(Bridges):桥接…...
基于springboot+vue的汽车租赁管理系统
摘要 在当今快速发展的数字化时代,汽车租赁行业作为现代服务业的重要组成部分,正面临着前所未有的机遇与挑战。为提升管理效率、优化用户体验并促进业务增长,我们设计并实现了一套基于Spring Boot后端框架与Vue.js前端技术的汽车租赁管理系统…...
《0基础》学习Python——第二十二讲__网络爬虫/<5>爬取豆瓣电影封面图
一、爬取豆瓣电影的图片封面 1、经过上节课我们所爬取的豆瓣电影的电影名、年份、国家、导演、主演、剧情,那么接下来我们将学习如何去爬取这些电影的图片,并将这些图片存放在文件夹中。 2、过程实现: 2.1、获取网页源码 首先还是和爬取电影名…...
全新UI自助图文打印系统小程序源码/自助云打印机前后端源码
全新UI自助图文打印系统小程序源码,自助云打印机前后端源码。最新的自助图文打印系统和证件照云打印小程序源码采用了PHP作为后端开发语言,旨在为用户提供全面的自助打印服务。 这些服务覆盖了多种文件格式,包括文档、图片、表格等。除此之外…...
yolo5图片视频、摄像头推理demo
yolo5图片、视频推理demo 图片 import torch# 加载预训练模型 model torch.hub.load(./yolo5, custom, pathyolov5s.pt, sourcelocal)# 加载图片 img 1.jpg# 进行推理 results model(img)# 解析结果 detections results.xyxy[0].cpu().numpy() # [x1, y1, x2, y2, confid…...
Scala学习笔记19: 隐式转换和隐式参数
目录 第十九章 隐式转换和隐式参数1- 隐式转换1. 隐式准换函数: 施展魔法的咒语2. 隐式类: 为已有类型添加魔法3. 隐式转换规则: 魔法生效的条件4. 举例说明: 见证魔法的时刻5. 注意事项: 谨慎使用魔法 2. 隐式参数1. 语义: 隐藏在背后的参数2. 使用 隐式参数的方式2.1 隐式值:…...
用户登录安全是如何保证的?如何保证用户账号、密码安全?
1.HTTP协议直接传输密码(无加密) 前端 直接发送HTTP请求(无加密),攻击者可直接捕获网络包,看到下面的明文信息 因此,使用HTTP协议传输会直接暴露用户敏感信息。 2.HTTPS协议直接传输密码&…...
Java 写一个可以持续发送消息的socket服务端
前言 最近在学习flink, 为了模仿一个持续的无界的数据源, 所以需要一个可以持续发送消息的socket服务端. 先上效果图 效果图 socket服务端可以持续的发送消息, flink端是一个统计单词出现总数的消费端,效果图如下 源代码 flink的消费端就不展示了, 需要引入一些依赖和版本…...
Ubuntu2204搭建ceph17
Ceph 环境初始化搭建Ceph 本次实验基于VMware17 节点IPstorage01192.168.200.161storage01192.168.200.162storage01192.168.200.163 环境初始化 初始化基础环境,三节点执行 #!/bin/bash# 定义节点信息 NODES("192.168.200.161 storage01 root" "…...
Druid 面试题及答案整理,最新面试题
Druid连接池在项目中有哪些优势? 1、高性能: Druid连接池在性能方面进行了大量优化,可以快速回收和分配数据库连接,减少数据库访问延迟。 2、实时监控: 提供Druid Monitor监控功能,可以实时监控数据库访问性能和连接池状态,便于及时发现和解决问题。 3、扩展性强: 支持…...
数据库基础与安装MYSQL数据库
一、数据库管理系统DBMS 数据库技术是计算机科学的核心技术之一,具有完备的理论基础。使用数据库可以高效且条理分明地存储数据,使人们能够更加迅速、方便地管理数据 1.可以结构化存储大量的数据信息,方便用户进行有效的检索和访问 2.可以…...
昇思25天学习打卡营第18天| DCGAN生成漫画头像
DCGAN,全称深度卷积对抗生成网络(Deep Convolutional Generative Adversarial Networks),是一种通过对抗训练生成图像的技术。它在判别器和生成器中都使用了卷积和转置卷积层。 训练分为两个部分:训练判别器和训练生成…...
【面试八股文】计算机操作系统
参考:大佬图解文章 → 小林coding 简介:之前在学习小林大佬的八股文时,摘录了一些个人认为比较重要的内容,方便后续自己复习。【持续更新ing ~💯】 注:加五角星标注的,是当前掌握不牢固的&…...
宝塔Wordpress 插件 Redis object cache 导致内存很高 80%以上的原因和解决
查看内存前X 使用以下命令查看前10,修改10数字即可查看前X ps aux | head -1;ps aux |grep -v PID |sort -rn -k 4 | head -10 查看cpu占用 查看前10 ps aux | head -1;ps aux |grep -v PID |sort -rn -k 3 | head -10 原因是 4GiB 内存的服务器,Redis会…...
node解析Excel中的考试题并实现在线做题功能
1、背景 最近公司安排业务技能考试,下发excel文件的题库,在excel里查看并不是很方便,就想着像学习驾考题目一样,一边看一边做,做完之后可以查看正确答案。 2、开始分析需求 题目格式如下图 需求比较简单,…...
建设网站需要什么软件下载/培训心得体会范文
连表操作一对一 在app的models.py文件内添加以下内容用户创建一对多关系的表: 123456789101112from django.db import models # Create your models here.class UserType(models.Model): nid models.AutoField(primary_keyTrue) caption models.CharField(max_len…...
wordpress摘要添加省略号/宁波seo排名费用
Java NIO Path基本概念Path的创建创建绝对路径Path创建相对路径PathPath类的方法normalize基本概念 Path接口在java.nio.file包下在Java中 ,Path表示文件系统的路径,可以指向文件或者文件夹,有绝对路径和相对路径之分java.nio.file.Path接口和操作系统的path环境变量没有任何关…...
o2o网站建设哪家好/googleseo优化
1.准备两个个全新的tomcat8,用来作为sso单点登录的客户端,如下: 2.修改server.xml文件(因为考虑到端口冲突,所以将里面的端口全部改掉) 需要框架源码的朋友可以看我个人简介联系我,推荐源码 其中apache-tomcat-clien…...
培训机构网站模板/湖南网站设计外包服务
今天给大家科普:什么是傅里叶变换?什么是红黑树?希望能帮助到大家啦~下方图片可以单独保存收藏,也可以分享给朋友哦每日福利 点击公众号菜单:今日福利即可免费获得课程<玩转Linux:常用命令…...
山东省建设厅发改委官方网站/网页制作html代码
圣诞节快要来了,可我就是我们询问了SitePoint作者,他们希望在圣诞节期间得到什么样的开发商玩具,然后设法采购了这些玩具-无需依靠圣诞老人。 如果海明威写JavaScript的确像是这样:关于25位著名文学人物如何解决各种JavaScript问题的思想实验…...
vue 做自适应网站/新闻热点大事件
1、背景 对于传统的单点登录系统,使用cookie和session的方式存储用户登录信息,但是对于安全性要求较高的企业–金融企业,就需要对用户的信息进行加密存储,防止客户信息泄露。 2、JWT构成 JWT—-JSON Web Token 第一部分我们称它…...