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

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

在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)

运行完了测试一下:

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

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天都是被迫学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值