PyTorch学习DAY1:Dataset

dir():打开,看见,如dir(torch),dir(torch.xxxx)

Help():说明书

打开jupyter步骤 : conda activate Pytorch37---->jupyter notebook

一、pytorch加载数据

1.Dataset(提供一种方式去获取数据及其label)

  1. 如何获取每一个数据及其label
  2. 告诉我们总共有多少的数据

2.常用数据集存储形式:

(1)图片按类别分布在各文件夹中,文件夹名为类别名

(2)训练数据全部都存储在一个文件夹中,对应的种类txt文件存储在另一label文件夹中。

(3)图片名就是label名

3.self.xxx一个函数的变量无法传递给另外一个函数中的变量,而self可以把指定的一个变量给后面的一个变量,相当于一个大类,可以使变量变成全局变量

代码笔记:

from torch.utils.data import Dataset

from PIL import Image  #读取图片

import os #获取所有图片地址需要用到os库


#dir_path = 'dataset/shuju_tupian_01' #打开路径对应的文件夹
#img_path_list = os.listdir(dir_path)      #dir_path对应的文件夹下的所有东西变成一个列表

class Mydata(Dataset):
    #这个类里面要:提供全局变量

    def __init__(self,root_dir,label_dir): #初始化  #为了getitem部分通过索引可以获取图片地址,
     #获取路径
        self.root_dir = root_dir       #经self转换后变量可以变成全局变量  #例如:root_dir = 'dataset/train'
        self.label_dir = label_dir      #例如:label_dir = 'shuju_tupian_01'
        self.path = os.path.join(self.root_dir,self.label_dir)  # 对root_dir和label_dir两个路径进行拼接
        self.img_path = os.listdir(self.path)  #列出label标签文件夹路径下 所有图片地址


    def __getitem__(self, idx):  #idx:编号/索引  #通过索引可以获取图片地址
    #获取每一个图片
        img_name = self.img_path[idx]  #获取图片名称
        img_item_path = os.path.join(self.root_dir,self.label_dir,img_name)
        img = Image.open(img_item_path) #读取该路径对应的图片
        label = self.label_dir
        return img,label

    def __len__(self):
    #路径下数据集长度
        return len(self.img_path)

root_dir = "dataset/train"
shuju_tupian_01_label_dir = "shuju_tupian_01"
shuju_tupian_02_label_dir = "shuju_tupian_02"

shuju_tupian_01_dataset = Mydata(root_dir,shuju_tupian_01_label_dir)
shuju_tupian_02_dataset = Mydata(root_dir,shuju_tupian_02_label_dir)

mix_dataset = shuju_tupian_01_dataset + shuju_tupian_01_dataset  #将两个文件夹的数据集可以拼在一起

#img,label = shuju_tupian_01_dataset[2]
#img.show()  shuju_tupian_01_dataset[2]位置的图片
#img.size  图片尺寸

#len(shuju_tupian_01_dataset)  #shuju_tupian_01_dataset 数据集大小

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

什么都小白6

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

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

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

打赏作者

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

抵扣说明:

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

余额充值