卷积神经网络--猫狗系列之下载、导入数据集

news2024/11/13 23:06:12

(由于是学习,所以文章会有一些报错及解决办法)

在Kaggle()获取数据集:(没有账号先去注册一个账号,在注册时可能会出现的问题见Kaggle注册出现一排“Captcha must be filled out.”!)

https://www.kaggle.com/competitions/dogs-vs-cats/data

获取到的数据集:(后面几期再分享)

一共25000张图片,猫猫狗狗各占一半。图片名称为:"cat.x.jpg"

对图片名称进行处理:

import ospath="D:\\Users\\Twilight\\PycharmProjects\\catdog\\train\\"filenames=[name for name in os.listdir(path)]j=0k=0catList=[]dogList=[]for i,filename in enumerate(filenames):    src=path+filename    namelist=filename.split('.')    if namelist[0]=='cat':        j=j+1        dst=namelist[0]+str(j)+'.0'+'.'+namelist[2] #猫标签设置为0        catList.append(dst)#获得cat的图片名集合    else:        k=k+1        dst=namelist[0]+str(k)+'.1'+'.'+namelist[2] #狗标签设置为1        dogList.append(dst)#获得dog的图片名集合    dst=path+dst    os.rename(src,dst)

这里报错了,解决一下:

emm,就是代码第二行两个反斜杠忘加了:

path="D:\\Users\\Twilight\\PycharmProjects\\Resnet18\\train\\"

运行完后:

这里改名称只是习惯问题,重要的是标签问题,0代表猫猫,1代表狗狗,指明图片的类别,并在构建Dataset类时发挥作用。另外,catList和dogList分别存储了猫猫和狗狗的图片名称的路径,是为了划分训练集和测试集。

紧接着,实现自己的Dataset类:

代码:(训练集和测试集按8:2)

import torchimport osfrom torch.utils.data import Datasetfrom torchvision import transformsfrom PIL import Imageimport numpy as npclass MyDataset(Dataset):    def __init__(self,path_file,namelists,transform=None):        self.path_file=path_file        self.imgs=namelists        self.transform=transform    def __len__(self):        return len(self.imgs)    def __getitem__(self, idx):        #get the image        img_path = os.path.join(self.path_file,self.imgs[idx])        image=Image.open(img_path)        image=image.resize((28,28))#修改图片大小,默认大小        if self.transform:            image = self.transform(image)        #get the label        str1=self.imgs[idx].split('.')        label=eval(str1[1])        return image, label

报错:

这个报错之前有个类似的,在anoconda下载,前面有文章写到:PyTorch安装

​然后导入DataLoader:

train_loader=torch.utils.data.DataLoader(train_data, batch_size=32, shuffle=True) test_loader=torch.utils.data.DataLoader(test_data, batch_size=32, shuffle=True)

运行完了测试一下:

很好,没有问题。(如果有问题可能就是前面多次调试、运行代码造成的,可以重新创一个项目来运行。)【如果有时间再讲解代码】

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

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

相关文章

DOM编程事件与简单编程

文章目录 事件绑定绑定式事件监听方法event 事件对象client、offsetkeyCode 键盘事件事件冒泡阻止浏览器默认行为 DOM编程用户名输入框长度限制鼠标移入移出复选框全选DOM编程实现动态时钟第一种:第二种:第三种: 事件绑定 DOM编程中的事件&a…

excel只显示想要的内容

是 后面的FG等列是不需要的,选择F列,ctrl shift 右箭头 。选中后隐藏。

Ansible创建逻辑卷

Ansible创建逻辑卷: 环境准备: 清单文件: [dev] 192.168.110.129 [prod] 192.168.110.132 [all:vars] ansible_userroot ansible_passwordredhat磁盘准备: 在一台主机上添加一块sata接口的磁盘,一块不添加。 192.…

Linux--获取一长串目录的结构指令:tree

注意:这个tree指令不是Linux自带的,需要下载 yum install -y tree (-y的作用是免确定) 示例:

UE5 读写本地JSON,发送HTTP请求(get)

UE5 读写本地JSON,发送HTTP请求(get) 没有使用插件,就用UE提供的库开发(推荐使用插件VaRest在虚幻商城里有) PCHUsage PCHUsageMode.UseExplicitOrSharedPCHs;PublicDependencyModuleNames.AddRange(new …

win10 编译hadoop源码报错

报错信息: 信息: 用提供的模式无法找到文件。 "devenv command was not found. Verify your compiler installation level."解决方案 右键,以管理员身份打开 之后再次执行mvn 命令即可. 也可以再打开的时候先执行一下命令: dev…

数字化是信息化的升级吗?数字化信息化这两者有什么联系和区别?

也可以这样说吧,但总是太抽象,不准确的,两者还是有很大区别的。 首先来看信息化、数字化具体是什么意思 想要明白两者之间的差异,首先要搞清楚他们的出处—— 所谓信息化、数字化还有现在提很多的智能化,其实都是从…

如何免费将springboot+vue项目部署上线(云服务器+宝塔面板)

本文整个流程是在博主完成一次项目上线全过程后复盘的记录,有没有写到的细节不清楚的可以私聊提问,这里选用的是阿里云服务器,阿里云对学生用户可以免费使用一个月服务器,不定期也有活动,我白嫖了7个月服务器&#xff…

ZYNQ——脉宽调制之呼吸灯实现

文章目录 原理简介实验代码软件仿真板上验证 原理简介 呼吸灯的实现过程就是把不同占空比的脉冲输出后加在LED上,LED灯就会显示不同的亮度,通过不断地调节方波的占空比,LED灯的亮度也会跟着变化,看起来就像是“呼吸”一样。 要得…

陪诊小程序系统|陪诊软件开发|陪诊系统功能和特点

随着医疗服务的逐步改善和完善,越来越多的人群开始走向医院就诊,而其中不少人往往需要有人陪同前往,这就导致了许多矛盾与问题的发生,比如长时间等待、找不到合适的陪诊人员等。因此为人们提供一种方便快捷的陪诊服务成为了一种新…

如何挽救误剪切的TF卡数据 ?三招救援

在日常使用TF卡过程中,我们可能会遇到误操作导致数据被剪切并丢失的情况。这无疑给我们带来了困扰,因为我们可能丢失了重要的照片、视频、文档等文件。然而,不必过于担心,因为TF卡数据剪切后的恢复仍然有希望。本文将向您介绍几种…

基于DeepLabv3Plus开发构建人脸人像分割系统

在图像分割领域中有不少优秀出色的网络,DeepLab系列就是其中非常经典的分支之一,在之前的很多项目中陆续都已经有接触到了,在处理图像分割中表现出色。 DeepLabV3Plus是一种用于语义分割任务的深度学习模型,它是DeepLab系列模型的…

市场营销书籍推荐,这些书帮你学好营销

市场营销一直是商业运作中的重要环节,因此市场营销的知识一直备受关注。在这篇文章中,小编将向你推荐三本经典市场营销书籍,通过阅读这些书籍能让你更深入了解市场营销的基本概念和策略。 1、《经理人参阅:市场营销》 《经理人参…

高效游戏项目进度管理指南:打造顺畅开发之路!

完成一个游戏项目可能是一项具有挑战性的任务,特别是当你刚刚开始时。为了确保你的项目在预算内按时运行,制定计划并管理你的进度是很重要的。以下是一些帮助你管理游戏项目进度的技巧。 1、明确游戏目标: 在开始之前,你必须明确项目的范围以…

附件类文件存储在环信和不存储在环信时的两种实现方式

场景一: 附件类文件存储在环信服务器 使用环信EMChatManager#downloadAttachment下载附件方案 (本篇文章以图片消息为例,其他附件类消息类似): 一、 通过EMFileMessageBody#getLocalUrl判断有没有本地文件; EMImageM…

ROS学习篇之硬件准备(零)-thinkbook16+锐龙版 安装ubuntu20.04遇到的各种坑

文章目录 一.计算机配置二.遇到的问题及解决办法1.键盘失灵2.无法联wifi3.蓝牙搜索不到设备4.无法开热点 三.最后的感想 一.计算机配置 CPU: AMD R7 6800H (网卡,娱乐大师读出来的不对,在windos系统下,联想管家读出来网卡的型号是…

C++数据结构笔记(5)栈的顺序存储结构实现

1.对于栈和队列,相比于数组和线性表,使用规则受到了限制,因此也被称为“受限线性表”。 2.对于栈类型来说,元素符合先进后出的规律,且栈中的元素不能自由遍历。 3.栈的顺序存储结构简称为顺序栈,其思想是…

神经网络之VGG

目录 1.VGG的简单介绍 1.2结构图 3.参考代码 VGGNet-16 架构:完整指南 |卡格尔 (kaggle.com) 1.VGG的简单介绍 经典卷积神经网络的基本组成部分是下面的这个序列: 带填充以保持分辨率的卷积层; 非线性激活函数,如ReLU&a…

制作投票链接小程序教程,让你的活动更具吸引力与效果

相信投票链接是一种方便快捷的投票方式,不仅可以用于活动中的投票,还可以用于品牌营销和市场调研。投票链接是一种非常方便的方式来进行在线投票。这里就推荐一个免费制作投票活动的网站:乔拓云,创建简单、免费使用、操作灵活。支…

Linux环境搭建(三)— 搭建数据库服务器

linux (ubuntu)安装mysql 和环境配置 一、安装MySql二、配置环境三、外网访问四、重置密码五、卸载 写在前面: 本文默认你的Linux系统已经安装vim,yum等,如你使用的是一个全新的操作系统,移步上一篇开始配置…