小编chr*_*uck的帖子

Pytorch - 在使用 Dataloader 之前连接数据集

我正在尝试加载两个数据集并将它们用于训练。

\n\n

软件包版本:python 3.7;\npytorch 1.3.1

\n\n

可以单独创建 data_loader 并按顺序对其进行训练:

\n\n
from torch.utils.data import DataLoader, ConcatDataset\n\n\ntrain_loader_modelnet = DataLoader(ModelNet(args.modelnet_root, categories=args.modelnet_categories,split=\'train\', transform=transform_modelnet, device=args.device),batch_size=args.batch_size, shuffle=True)\n\ntrain_loader_mydata = DataLoader(MyDataset(args.customdata_root, categories=args.mydata_categories, split=\'train\', device=args.device),batch_size=args.batch_size, shuffle=True)\n\nfor e in range(args.epochs):\n    for idx, batch in enumerate(tqdm(train_loader_modelnet)):\n        # training on dataset1\n    for idx, batch in enumerate(tqdm(train_loader_custom)):\n        # training on dataset2\n\n
Run Code Online (Sandbox Code Playgroud)\n\n

注意:MyDataset 是一个已def __len__(self): def __getitem__(self, index):实现的自定义数据集类。由于上述配置有效,看来这是实现正常的。

\n\n

但我理想情况下希望将它们组合成一个数据加载器对象。我按照 pytorch 文档尝试了这一点:

\n\n
train_modelnet = ModelNet(args.modelnet_root, categories=args.modelnet_categories,\n                          split=\'train\', transform=transform_modelnet, device=args.device)\ntrain_mydata = CloudDataset(args.customdata_root, categories=args.mydata_categories,\n                             split=\'train\', device=args.device)\ntrain_loader = torch.utils.data.ConcatDataset(train_modelnet, train_customdata)\n\nfor e in range(args.epochs):\n …
Run Code Online (Sandbox Code Playgroud)

python machine-learning dataset tensorflow pytorch

15
推荐指数
2
解决办法
3万
查看次数

标签 统计

dataset ×1

machine-learning ×1

python ×1

pytorch ×1

tensorflow ×1