已经将数张图片分成3张图片为一组,现在如何用pytorch写从已分好的组中读取第一张到第三张图片
时间: 2023-09-16 19:12:47 浏览: 65
如果已经将一组图片分成了多个文件夹,并且每个文件夹中包含三张图片,那么可以按照以下方式读取每一个文件夹中的前三张图片:
```python
import torch
from torchvision import datasets, transforms
# 数据预处理
transform = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
])
# 读取数据集
dataset = datasets.ImageFolder('path/to/folder/', transform=transform)
# 使用 DataLoader 读取数据
dataloader = torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False)
# 读取每个 batch 中的前三张图片
images = []
for batch_idx, (data, target) in enumerate(dataloader):
if batch_idx % 3 == 0: # 每三个 batch 读取一次
images.extend(data)
# 将图片转换为张量,并合并为一个张量
images_tensor = torch.stack(images)
```
这里使用了 PyTorch 内置的 `ImageFolder` 数据集类来读取图片,同时使用了常见的数据预处理操作。然后,使用一个 `DataLoader` 对数据进行打包,每个 batch 中包含一个文件夹的所有图片。在循环中,每三个 batch 中读取一次,获取每个 batch 中的第一张到第三张图片,并将其存储在一个列表中。最后,使用 `torch.stack` 将这些张量合并为一个张量。
阅读全文