如何解决如何获取我放入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)
但是我的输入文件夹就像
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 举报,一经查实,本站将立刻删除。