使用pytorch顺序读取文件夹中图像

目的: 在使用pytorch进行神经网络训练的时候,需要每次向网络中输入一组图片,但是每次使用pytorch内置的ImageFolder,DatasetFolder等函数读取文件夹中的文件时,里面的文件总是不是按照顺序来读取的。
它的排序方法是:1.tif,10.tif,100.tif…我们希望他是按照顺序来读取,所以有了以下的解决方法:

# 文件夹路径
path = "./splitdata/splitdata"
dir_list = os.listdir(path)

# 将顺序读取的文件保存到该list中
origin_data = []
for i in range(
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以按照以下步骤进行操作: 1. 首先,确定你的数据集的目录结构。例如,你的数据集可能如下所示: ``` dataset/ class1/ image1.jpg image2.jpg ... class2/ image1.jpg image2.jpg ... ... ``` 其中,`dataset` 是主目录,`class1`、`class2` 等是每个类别的子目录,每个子目录中包含该类别的图像文件。 2. 定义标签列表。根据你的数据集,定义一个标签列表,例如: ```python labels = ['class1', 'class2', ...] ``` 3. 图像文件并打标签。可以使用 PyTorch 中的 `ImageFolder` 类来图像文件并打标签。示例代码如下: ```python import torch from torchvision import transforms, datasets data_transform = transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) data_dir = 'dataset' image_dataset = datasets.ImageFolder(data_dir, transform=data_transform) ``` 在上面的代码中,`transforms.Resize` 将图像调整为指定大小,`transforms.ToTensor` 将图像转换为张量,并将像素值缩放到 [0, 1] 范围内,`transforms.Normalize` 对图像进行标准化。 4. 创建数据加载器。可以使用 PyTorch 中的 `DataLoader` 类来创建数据加载器,示例代码如下: ```python batch_size = 32 data_loader = torch.utils.data.DataLoader(image_dataset, batch_size=batch_size, shuffle=True) ``` 在上面的代码中,`batch_size` 指定每个批次的大小,`shuffle` 指定是否随机打乱数据集。 5. 使用数据加载器进行训练。可以使用 `for` 循环遍历数据加载器中的数据进行训练,示例代码如下: ```python for inputs, labels in data_loader: # 在此处添加模型训练代码 ``` 在上面的代码中,`inputs` 是一个张量,包含一个批次的图像数据,`labels` 是一个张量,包含一个批次的标签数据。你可以在循环中使用这些数据进行模型训练。 希望这些信息能够对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值