将已经是列表的文件夹中的所有图片使用transform.tensor转成tensor列表
时间: 2025-02-09 17:16:37 浏览: 31
要将一个文件夹中的所有图片转换为tensor列表,并假设这些图片已经被组织成一个列表,你可以使用Python中的PIL库(Pillow)和torchvision.transforms来实现。以下是一个示例代码:
```python
import os
from PIL import Image
from torch.utils.data import DataLoader, Dataset
from torchvision import transforms
# 定义一个自定义数据集类
class ImageDataset(Dataset):
def __init__(self, file_list, transform=None):
self.file_list = file_list
self.transform = transform
def __len__(self):
return len(self.file_list)
def __getitem__(self, idx):
img_path = self.file_list[idx]
image = Image.open(img_path)
if self.transform:
image = self.transform(image)
return image
# 定义transform
transform = transforms.Compose([
transforms.Resize((224, 224)),
transforms.ToTensor()
])
# 获取文件夹中的所有图片路径
folder_path = 'path_to_your_folder'
file_list = [os.path.join(folder_path, file) for file in os.listdir(folder_path) if file.endswith(('.png', '.jpg', '.jpeg'))]
# 创建数据集和数据加载器
dataset = ImageDataset(file_list, transform=transform)
dataloader = DataLoader(dataset, batch_size=32, shuffle=False)
# 将所有图片转换为tensor列表
tensor_list = []
for batch in dataloader:
tensor_list.extend(batch)
# 现在tensor_list包含了所有图片的tensor表示
print(len(tensor_list))
```
阅读全文
相关推荐



















