pytorch如何自定义自己的MyDatasets
来源:互联网 发布:软件项目验收方案 编辑:程序博客网 时间:2024/05/18 03:20
class torch.utils.data.TensorDataset(data_tensor, target_tensor)
包装数据和目标张量的数据集。
通过沿着第一个维度索引两个张量来恢复每个样本。
参数:
data_tensor (Tensor) - 包含样本数据
target_tensor (Tensor) - 包含样本目标(标签)
下面是一个自定义Datasets的框架
class MyDataset(torch.utils.data.Dataset):#需要继承torch.utils.data.Dataset def __init__(self): # TODO # 1. 初始化文件路径,并将文件名和标签值放入一个列表Initialize file path or list of file names.# 2. 初始化自身参数 pass def __getitem__(self, index): # TODO # 1. 从自身数据列表中读取一个数据Read one data from file (e.g. using numpy.fromfile, PIL.Image.open). # 2. 使用自身的transform处理数据Preprocess the data (e.g. torchvision.Transform). # 3. 返回一个数据和其对应的标签Return a data pair (e.g. image and label). #这里需要注意的是,第一步:read one data,是一个data pass def __len__(self): # 返回数据集合的大小You should change 0 to the total size of your dataset. return len
root = './data/fashion'def My_loader(path):return PIL.Image.open(path).convert('RGB')class MyDataset(torch.utils.data.Dataset):def __init__(self, txt_dir, transform=None, target_transform=None, loader=My_loader)data_txt = open(txt_dir, 'r')imgs = []for line in data_txt:line = line.strip()words = line.split()imgs.append((words[0], words[0]))self.imgs = imgsself.transform = transformself.target_transform = target_transformself.loader = My_loaderdef __len__(self):len = len(self.imgs)return lendef __getitem__(self, index):img_name, label = self.img[index]img = self.loader(img_name)if self.transform is not None:img = self.transfrom(img)return img, label
class torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, num_workers=0, collate_fn=<function default_collate>, pin_memory=False, drop_last=False)
数据加载器。组合数据集和采样器,并在数据集上提供单进程或多进程迭代器。
参数:
dataset (Dataset) – 加载数据的数据集。
batch_size (int, optional) – 每个batch加载多少个样本(默认: 1)。
shuffle (bool, optional) – 设置为True时会在每个epoch重新打乱数据(默认: False).
sampler (Sampler, optional) – 定义从数据集中提取样本的策略。如果指定,则忽略shuffle参数。
num_workers (int, optional) – 用多少个子进程加载数据。0表示数据将在主进程中加载(默认: 0)
collate_fn (callable, optional) –
pin_memory (bool, optional) –
drop_last (bool, optional) – 如果数据集大小不能被batch size整除,则设置为True后可删除最后一个不完整的batch。如果设为False并且数据集的大小不能被batch size整除,则最后一个batch将更小。(默认: False)
更多关于pytorch学习地址:http://blog.csdn.net/column/details/15023.html
- pytorch如何自定义自己的MyDatasets
- pytorch学习1:如何加载自己的训练数据
- 如何自定义自己的VIEW
- 使用pytorch准备自己的数据
- 如何自定义一个自己的标题栏
- idea如何自定义自己的快捷键
- WebView 如何自定义自己的右键菜单?
- pytorch: 准备、训练和测试自己的图片数据
- 文章标题 faster rcnn-pytorch版训练自己的数据
- pytorch pruning训练自己的数据库(流程+BUG调试)
- pytorch使用(一)处理并加载自己的数据
- pytorch自定义Dataset并使用torchvision的Transform
- 如何在MFC里写自己的自定义消息
- 如何在MFC里写自己的自定义消息
- 自定义View如何定义和使用自己的属性
- 免费如何创建自己的自定义潜意识信息教程
- ThinkPHP3.2+版本如何自定义自己的标签
- C如何打造自己自定义参数的可执行程序
- java Dom4j处理XML
- 课后作业之矩形类
- QMYSQL driver not loaded 的原理和解决办法
- 5.4 压缩
- delphi 动态添加字段表格控件
- pytorch如何自定义自己的MyDatasets
- 【Java作业】2017.11.11 / 2017.11.12
- Ubuntu启动项管理
- word2vec
- leetcode 38. Count and Say
- Redis学习小结
- Velocity教程
- myisam和innodb的区别
- Gitlab使用规范