1.类和函数不同,对于一个类,在初始化过程中,我们需要给初始变量,进行初始化,这类似于C++的构造函数,初始化的用法一般是init(self, a,b,c):这里a,b,c是我们呢自己输入的初始变量,
#coding:utf-8
from PIL import Image
from torch.utils.data import Dataset
class MyDataset(Dataset):
def __init__(self,txt_path,transform=None,target_transform=None):
fh=open(txt_path,'r')
imgs=[]
for line in fh:
line=line.rstrip()
words=line.split()
imgs.append((words[0],int(words[1])))
self.imgs=imgs
self.transform=transform
self.target_transform=target_transform
def __getitem__(self,index):
fn,label=self.imgs[index]
img =Image.open(fn).convert('RGB')
if self.transform is not None:
img=self.transform(img)#在这里做图像的转换,转换到(0,1)
return img,label
def __len__(self):
return len(self.imgs)
这里第一步都类,继承了基类,这里暂时不做展开.
在这里后面,self.img,类似的是添加内部变量,这里类似C++的变量分类。每一个函数都有对应的操作。
网友评论