微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获取我放入Pytorch的Dataloader中的图像的文件名或从0到100读取图像?

如何解决如何获取我放入Pytorch的Dataloader中的图像的文件名或从0到100读取图像?

我使用PyTorch加载这样的图像:

inf_data = InfDataLoader(img_folder=args.imgs_folder,target_size=args.img_size)
inf_DataLoader = DataLoader(inf_data,batch_size=1,shuffle=False,num_workers=2)

然后:

with torch.no_grad():
    for batch_idx,(img_np,img_tor) in enumerate(inf_DataLoader,start=1):
        img_tor = img_tor.to(device)
        pred_masks,_ = model(img_tor)

但是我的输入文件夹就像

example

Windows读取以下文件:000,001,002 ..... 100,101,102,.... 110,111 .... 由于系统不会从0到10读取我的文件,因此会错误排列输出文件的顺序。 例如,输入为0.png。输出为183.png。

一种方法是希望从0.png中读取图像,或者希望在DataLoader获取文件名。 我在这里也有一个问题。 How to get the file name of image that I put into Dataloader in Pytorch

解决方法

除了我在https://stackoverflow.com/a/63537916/13716864中提供的答案

我通过以下方式对文件名进行排序:

self.imgs_folder = img_folder

self.img_paths = []

img_path = self.imgs_folder + '/'
img_list = os.listdir(img_path)
img_list.sort()
img_list.sort(key=lambda x: int(x[:-4]))  
img_nums = len(img_list)
for i in range(img_nums):
     img_name = img_path + img_list[i]
     self.img_paths.append(img_name)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。