《昇思 25 天学习打卡营第 10 天 | ResNet50 迁移学习 》

《昇思 25 天学习打卡营第 10 天 | ResNet50 迁移学习 》

活动地址:https://xihe.mindspore.cn/events/mindspore-training-camp
签名:Sam9029


使用迁移学习进行狼狗图像分类

简介

在机器学习和深度学习中,我们经常面临数据不足的问题。
迁移学习是一种解决这一问题的有效方法。

本章节将通过一个简单的案例,介绍如何使用迁移学习对狼和狗的图像进行分类。

迁移学习概念

迁移学习是一种学习方式,它允许我们将在一个大型数据集(如 ImageNet)上预训练的模型应用于一个新的、通常较小的数据集。这样,我们可以利用预训练模型已经学到的特征,而不必从头开始训练整个网络。

使用模型 ResNet50

  • ResNet50 是一种深度卷积神经网络(CNN)架构, 由微软研究院的 Kaiming He 等人在 2015 年提出,并在多个视觉识别任务中取得了突破性的性能。

ResNet50 的应用:
图像分类:ResNet50 可以用于将图像分类到 1000 个类别中,这是 ImageNet 数据集的标准任务。
物体检测:通过将 ResNet50 与区域建议网络(Region Proposal Networks, RPN)结合,可以用于物体检测任务。
语义分割:ResNet50 也可以用于像素级的图像理解,即语义分割,其中每个像素都被分类到相应的类别。

数据准备

首先,我们需要下载并准备数据集。在这个案例中,我们使用的是来自 ImageNet 的狼和狗的图像数据集。

from download import download
dataset_url = "https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/intermediate/Canidae_data.zip"
download(dataset_url, "./datasets-Canidae", kind="zip", replace=True)

加载和增强数据集

使用 MindSpore 的数据集加载接口ImageFolderDataset来加载数据,并进行一些图像增强操作,如随机裁剪、水平翻转等。

import mindspore.dataset as ds
import mindspore.dataset.vision.c_transforms as visiondef create_dataset_canidae(dataset_path, usage):"""数据加载"""data_set = ds.ImageFolderDataset(dataset_path,num_parallel_workers=workers,shuffle=True,)# 数据增强操作mean = [0.485 * 255, 0.456 * 255, 0.406 * 255]std = [0.229 * 255, 0.224 * 255, 0.225 * 255]scale = 32if usage == "train":# Define map operations for training datasettrans = [vision.RandomCropDecodeResize(size=image_size, scale=(0.08, 1.0), ratio=(0.75, 1.333)),vision.RandomHorizontalFlip(prob=0.5),vision.Normalize(mean=mean, std=std),vision.HWC2CHW()]else:# Define map operations for inference datasettrans = [vision.Decode(),vision.Resize(image_size + scale),vision.CenterCrop(image_size),vision.Normalize(mean=mean, std=std),vision.HWC2CHW()]# other code ...

训练模型&&训练过程

我们选择 ResNet50 作为基础模型,并对其进行调整以适应我们的分类任务。

def resnet50(num_classes: int = 1000, pretrained: bool = False):"ResNet50模型"resnet50_url = "https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/models/application/resnet50_224_new.ckpt"resnet50_ckpt = "./LoadPretrainedModel/resnet50_224_new.ckpt"return _resnet(resnet50_url, ResidualBlock, [3, 4, 6, 3], num_classes,pretrained, resnet50_ckpt, 2048)
  • 固定特征进行训练
  • 训练和评估
  • 可视化模型预测

学嘛了,完全是懵懵懂懂的,跑了一篇流程,收获就是知道了计算机视觉 识别图片的 过程,
使用 全卷积化 网络的 深度学习网络模型,来对图片进行分类和识别

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

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

相关文章

python【文件操作】

文件操作 一、创建文件夹二、文件操作模式1.覆盖写入2.读取3.追加 三、 Python脚本在文件中查找和替换文本四、 python清空文件夹 一、创建文件夹 判断文件或者文件夹是否存在 import ospathrD://测试文件夹 if not os.path.exists(path):os.mkdir(path)print(os.path.exists…

C++模板元编程(二)——完美转发

完美转发指的是函数模板可以将自己的参数“完美”地转发给内部调用的其它函数。所谓完美,即不仅能准确地转发参数的值,还能保证被转发参数的左、右值属性不变。 文章目录 场景旧的方法新的方法内部实现参考文献 场景 思考下面的代码: templ…

高防服务器的重要性

在数字化时代,网络安全已成为企业和个人最为关注的问题之一。随着网络攻击的日益频繁和复杂,传统的服务器租用服务已难以满足高安全需求的市场。高防服务器租用应运而生,成为保护网络安全的重要解决方案。本文将探讨高防服务器租用的概念、重…

专业140+总分420+天津大学815信号与系统考研经验天大电子信息与通信工程,真题,大纲,参考书。

顺利上岸天津大学,专业课815信号与系统140,总分420,总结一些自己的复习经历,希望对于报考天大的同学有些许帮助,少走弯路,顺利上岸。专业课: 815信号与系统:指定教材吴大正&#xf…

2-26 基于matlab开发的制冷循环模型

基于matlab开发的制冷循环模型。Simscape两相流域中的制冷循环模型,在simulink中完成多循环温度控制。程序已调通,可直接运行。 2-26 制冷循环模型 Simscape两相流域 - 小红书 (xiaohongshu.com)

Arduino ESP8266 开发环境搭建

Arduino ESP8266 开发环境搭建 很久之前学嵌入式时,用过Arduino8266进行开发,开发成本低、难度小,体验很不错。 近期,又突然要用,遂再次搭建环境,但变动挺多,有些小波折,开贴记录。…

生成式AI应用实列和价值链

生成式AI应用实列和价值链 生成式AI应用实列ChatGPTGeminiGitHub CopilotSynthesia 价值链 生成式AI应用实列 ChatGPT ChatGPT 并不是生成式 AI 行业中唯一的公司。 Stability AI 的 Stable Diffusion 可以根据文本描述生成图像,发布后 90 天内,在 Git…

vue是如何进行监听数据变化的?vue2和vue3分别是什么,vue3为什么要更换

在 Vue 中,数据变化的监听是通过响应式系统来实现的。Vue 2.x 和 Vue 3 在这方面有一些区别。 Vue 2.x 的数据监听 Vue 2.x 使用的是 Object.defineProperty() 方法来实现数据的响应式。当你声明一个 Vue 实例的数据对象时,Vue 将遍历这个对象的属性&a…

清除屏幕上信息的命令clear

清除屏幕上信息的命令clear There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about being cheated should leave quickly. 清…

高考志愿填报千万要注意这四点

在高考志愿填报过程中,确实有很多需要留心的点。我为你总结了四个关键点,希望能帮助你顺利完成志愿填报: 1、学校提供的支持 学校作为学生志愿填报咨询服务的主阵地,应提供体系化和制度化的支持。包括及时关注并传达政策动向和相…

行内元素、块级元素居中

行内元素居中 水平居中 {text-align&#xff1a;center;}垂直居中 单行——行高等于盒子高度 <head><style>.father {width: 400px;height: 200px;/* 行高等于盒子高度&#xff1a;line-height: 200px; */line-height: 200px;background-color: pink;}.son {}&…

如何做好IT类的技术面试?

我们在找工作时&#xff0c;需要结合自己的现状&#xff0c;针对意向企业做好充分准备。作为程序员&#xff0c;你有哪些面试IT技术岗的技巧&#xff1f; 方向一&#xff1a;分享你面试IT公司的小技巧 我分享一些基于广泛观察和用户反馈的面试IT公司的小技巧&#xff1a; 技术准…

孟德尔随机化-痛风

写在前面 昨天看到文献&#xff0c;称饮酒与痛风无关联&#xff0c;甚是疑惑&#xff0c;今天刚好看了一篇新文献&#xff0c;虽然不是主要讲饮酒与痛风的&#xff0c;但也有牵扯到这方面内容&#xff0c;而且是相反的内容&#xff0c;特记录一下。 孟德尔随机化-受教育程度与…

vuepress创建步骤

背景 记录vuepress配置步骤&#xff0c;以便下次使用快速上手。 读此文章之前默认您已经学会了创建vuepress项目。vuepres快速开始 最终成品 doc.jeecgflow.com 配置步骤 创建.vuepress 目录。 你的文档目录下创建一个 .vuepress 目录。 创建.vuepress/config.js module.e…

mysql面试题 Day4

1 什么是覆盖索引&#xff1f;对要查询的列 和 查询条件中的列 有什么要求 覆盖索引&#xff08;Covering Index&#xff09;是指一个索引包含了一次查询所需的全部列&#xff0c;因此可以完全满足查询需求&#xff0c;而无需访问实际的表行数据。&#xff08;即避免回表操作&…

Mac窗口辅助管理工具:Magnet for mac激活版

magnet mac版是一款运行在苹果电脑上的一款优秀的窗口大小控制工具&#xff0c;拖拽窗口到屏幕边缘可以自动半屏&#xff0c;全屏或者四分之一屏幕&#xff0c;还可以设定快捷键完成分屏。这款专业的窗口管理工具当您每次将内容从一个应用移动到另一应用时&#xff0c;当您需要…

注意力机制 attention Transformer 笔记

动手学深度学习 这里写自定义目录标题 注意力加性注意力缩放点积注意力多头注意力自注意力自注意力缩放点积注意力&#xff1a;案例Transformer 注意力 注意力汇聚的输出为值的加权和 查询的长度为q&#xff0c;键的长度为k&#xff0c;值的长度为v。 q ∈ 1 q , k ∈ 1 k …

解析Java中的缓存机制及其实现方式

解析Java中的缓存机制及其实现方式 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在软件开发中&#xff0c;缓存是一种常见的优化技术&#xff0c;用于临时存储数据&#xff0c;以提高数据访问速度…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第54课-poplang语音编程控制机器人

【WEB前端2024】3D智体编程&#xff1a;乔布斯3D纪念馆-第54课-poplang语音编程控制机器人 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的…

【TORCH】神经网络权重初始化和loss为inf

文章目录 数据输入范围和权重初始化数据范围对权重初始化的影响示例代码输入数据标准化 说明其他注意事项 常见初始化方法常见的权重初始化方法示例代码说明 模型默认初始化方法&#xff0c;会不会导致Loss为inf示例说明初始化权重导致 Loss 为 inf避免 Loss 为 inf 的建议示例…