内置函数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入门'