学习路线 爆肝杰哥 装一系列东西 在G盘
小土堆
首先插入 dataset: from torch.utils.data import Dataset
继承dateset类:
获取照片路径:
from PIL import Image
img path=‘’D//。。。。。。。。‘’ img_path是一个字符串变量,添加地址时注意 两个斜杠
img=Image.open(img_path) 变量img获取的是图片, 用的是Image.open的方法
获取一组照片:
导入路径:dir_path=“D:\PyCharm\Py_Projects\XiaoTuDui\dataset\train\ants” dir_path是一个字符串变量
import os os有方法
img_path_list=os.listdir(dir_path) 通过os的方法,导入文件夹路径从而创建列表
实战讲解
目录如下:
实战
→
up用的相对路径 root_dir=“dataset/train”
lable_dir=“ants”
两个路径 拼接功能: path=os.path.join(root_dir,lable_dir)
然后我来:root_dir复制的根路径
整合后 path=‘XiaoTuDui\datase\train\ants’
构建全局变量,相当于全局函数
检查时报错了。于是我换成了绝对地址
此时img_path成为图片的列表。
构建类(相当于一个新函数,idx是自变量)
定义img_name是地址中图片的名称(字符串类型) (通过列表img_path传输)
比如我让idx=0试了下
在这里插入代码片
```*斜体样式*
import os
from PIL import Image *PIL库可以插Image*
root_dir="D:\\PyCharm\\Py_Projects\\XiaoTuDui\\dataset\\train" *这里最好导入绝对地址*
lable_dir="ants" *ants是train的下级文件,既是地址,也是标签*
path=os.path.join(root_dir,lable_dir) *os.path,join起到粘连左右,把地址输出,以字符串类型输出*
img_path=os.listdir(path) *通过os.listdir把照片排序,生成列表给 img_path*
img_name=img_path[idx] *把列表的第【idx】项传递给img_name* 效果如下


```python **
构造一个类。相当于构建一个获取项目的函数
def __getitem__(self, idx):
img_name=self.img_path[idx] //把全局变量中的照片名字传递给 img_name//
img_item_path=os.path.join(self.root_dir,self.lable_dir,img_name) //定位照片具体位置(最精确位置)//
img=Image.open(img_item_path) //把地址中的图片打开传递给img//
lable=self.lable_dir //把本次ants文件夹的标签传递给lable//
return img,lable //结果返回为照片,标签
def __len__(self):
return len(self.img_path)
计算长度。
完整体的dataset类如下(相当于一个完整的函数)
class MyData(Dataset):
def __init__(self,root_dir,lable_dir):
self.root_dir=root_dir
self.lable_dir=lable_dir
self.path=os.path.join(root_dir,lable_dir)
self.img_path=os.listdir(self.path)
def