Pytorch入门(一)初识Dataset

内置函数dir()和help()

dir()用法
help()用法

# 例子
help(torch)
help(torch.cuda)
dir(torch.cuda)
help(torch.cuda.is_available)

小知识

python文件     以文件所有行代码为块运行
python控制台      以任意行为块运行
jupyter notebook      以任意行为块运行
三者搭配使用

PyTorch加载数据初认识

图像处理工具包 PIL (Python Image Library)介绍

from PIL import Image
img_path="lenna.png" #图片相对路径
img=Image.open(img_path)
print(img.size)#(308, 311)
img.show()#显示图片

os测试1

import os
dir_path=r"dataset/train/ants" #图片相对路径
img_path_list=os.listdir(dir_path)
#help(os.listdir) # Return a list containing the names of the files in the directory.
print(type(img_path_list)) #<class 'list'>
print(img_path_list)# ['0013035.jpg', '1030023514_aad5c608f9.jpg',...,'VietnameseAntMimicSpider.jpg']

os测试2

import os
root_dir=r"dataset/train"
label_dir="ants"
#help(os.path.join) #join(path, *paths)   Join two (or more) paths.
path=os.path.join(root_dir,label_dir)# 'dataset/train\\ants'
path

Dataset初认识

help(Dataset)# 所有的Dataset子类都需要重写`__getitem__`方法
from torch.utils.data import Dataset
from PIL import Image
import os

class MyData(Dataset): #继承自Dataset类
    
    def __init__(self,root_dir,label_dir): #构造函数
        self.root_dir=root_dir
        self.label_dir=label_dir
        self.path=os.path.join(self.root_dir,self.label_dir)
        self.img_paths=os.listdir(self.path)#图片名径列表
        
    def __getitem__(self,index): #方法重写
        img_name=self.img_paths[index]
        img_item_name=os.path.join(self.root_dir,self.label_dir,img_name)
        img=Image.open(img_item_name)
        label=self.label_dir
        return img,label
    
    def __len__(self): #方法重写
        return len(self.img_paths)

root_dir=r"dataset/train"
ants_label_dir="ants"
bees_label_dir="bees"
ants_dataset=MyData(root_dir,ants_label_dir)#实例化
bees_dataset=MyData(root_dir,bees_label_dir)

# img,label=ants_dataset[2] 
# img.show()

# img,label=bees_dataset[2]
# img.show()

train_dataset=ants_dataset+bees_dataset #数据集拼接

#数据集长度
print(len(train_dataset)) #245
print(len(ants_dataset))  #124
print(len(bees_dataset)) #121

python魔法方法__getitem__()

若类中实现了该方法,允许其对象像字典那样取值,即’ 对象[key] ',例如:

class Book:
	def __init__(self,name):
		self.name=name
	def __getitem__(self,key):
		if key=='name':
			return self.name
		else:
			return None

b=Book('pytorch入门')
print(b.name) #'pytorch入门'
print(b['name']) #'pytorch入门'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值