Python FileNotFoundError:[Errno 2]:没有这样的文件或目录:';C:/Users/My_computer/Desktop/Compare/MHAN master/AID_train/AID_train_LR/x4\\9.png';

Python FileNotFoundError:[Errno 2]:没有这样的文件或目录:';C:/Users/My_computer/Desktop/Compare/MHAN master/AID_train/AID_train_LR/x4\\9.png';,python,pytorch,python-imaging-library,Python,Pytorch,Python Imaging Library,我对python环境非常陌生。我试图使用自己的数据集编译一个超分辨率代码,用于放大因子4。低分辨率RGB图像保存在“C:/Users/My_computer/Desktop/Compare/MHAN master/AID_train/AID_train_LR/x4”中。用于图像加载的代码如下所示: def load_img(filepath): img = Image.open(filepath).convert('RGB') #img = Image.open(filepath, 'rb')

我对python环境非常陌生。我试图使用自己的数据集编译一个超分辨率代码,用于放大因子4。低分辨率RGB图像保存在“C:/Users/My_computer/Desktop/Compare/MHAN master/AID_train/AID_train_LR/x4”中。用于图像加载的代码如下所示:

def load_img(filepath):
img = Image.open(filepath).convert('RGB')
#img = Image.open(filepath, 'rb')

#y, _, _ = img.split()
return img

class DatasetFromFolder(data.Dataset):
def __init__(self, image_dir, lr_dir, patch_size, upscale_factor, data_augmentation, transform=None):
    super(DatasetFromFolder, self).__init__()
    self.image_filenames = [join(image_dir, x) for x in listdir(image_dir) if is_image_file(x)]
    self.patch_size = patch_size
    self.upscale_factor = upscale_factor
    self.transform = transform
    self.data_augmentation = data_augmentation
    self.HR ='C://Users//My_computer//Desktop//Compare//MHAN-master//AID_train//AID_train_HR'
    self.LR ='C://Users//My_computer//Desktop//Compare//MHAN-master//AID_train//AID_train_LR//x4'
    
def __getitem__(self, index):
    target = load_img(self.image_filenames[index])
    input = load_img(os.path.join(self.LR, file))
    input, target, _ = get_patch(input,target,self.patch_size, self.upscale_factor)
    return input, target
但在编译培训代码时,我遇到以下错误:

File "main_x4.py", line 185, in <module>
    train(model, epoch)
  File "main_x4.py", line 60, in train
    for iteration, batch in enumerate(training_data_loader, 1):
  File "C:\Users\My_computer\anaconda3\envs\MHAN\lib\site-packages\torch\utils\data\dataloader.py", line 346, in __next__
    data = self._dataset_fetcher.fetch(index)  # may raise StopIteration
  File "C:\Users\My_computer\anaconda3\envs\MHAN\lib\site-packages\torch\utils\data\_utils\fetch.py", line 44, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "C:\Users\My_computer\anaconda3\envs\MHAN\lib\site-packages\torch\utils\data\_utils\fetch.py", line 44, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "C:\Users\My_computer\Desktop\Compare\MHAN-master\dataset_x4.py", line 91, in __getitem__
    input = load_img(os.path.join(self.LR, file))
  
第2912行,打开 fp=内置的.open(文件名为“rb”)

由于LR图像已经是RGB格式,因此是否需要再次转换为RGB?
请帮助我修复此错误

'C:/Users/My_computer/Desktop/Compare/MHAN master/AID_train/AID_train\LR/x4\\9.png'

您的字符串在路径末尾包含一个双反斜杠,这就是您无法访问目录的原因

使用原始字符串,如

r'yourString'
或者查看您的os.path.join

编辑:

尝试将每个字符串转换为原始字符串,如上所述。您仍然会得到双反斜杠,因为某些\字符组合被转义

以下是转义字符:

编辑代码以:

self.HR =r'C:/Users/My_computer/Desktop/Compare/MHAN- 
master/AID_train/AID_train_HR'
self.LR =r'C:/Users/My_computer/Desktop/Compare/MHAN- 
master/AID_train/AID_train_LR/x4'

请注意字符串前面的“r”以将其转换为原始字符串。

'C:/Users/My\u computer/Desktop/Compare/MHAN master/AID\u train/AID\u train\LR/x4\\9.png'

您的字符串在路径末尾包含一个双反斜杠,这就是您无法访问目录的原因

使用原始字符串,如

r'yourString'
或者查看您的os.path.join

编辑:

尝试将每个字符串转换为原始字符串,如上所述。您仍然会得到双反斜杠,因为某些\字符组合被转义

以下是转义字符:

编辑代码以:

self.HR =r'C:/Users/My_computer/Desktop/Compare/MHAN- 
master/AID_train/AID_train_HR'
self.LR =r'C:/Users/My_computer/Desktop/Compare/MHAN- 
master/AID_train/AID_train_LR/x4'

请注意字符串前面的“r”以将其转换为原始字符串。

这个问题可能会帮助您:即使在更新之后,简单而明显的解释是,您所说的文件确实不存在。该文件已经存在于上述文件夹中。但是错误显示它不在目录中。这个问题可能会帮助您:即使在更新之后,简单而明显的解释是,您所说的文件确实不在目录中。该文件已经在上述文件夹中。但是错误显示它不在目录中。请检查我提到os.path详细信息的修改问题。我已更新了我的答案,您仍然遇到相同的问题bc您无法访问实际路径Hello@ValentinB,我已根据您的建议更改了代码。但仍然出现此错误:SyntaxError:EOL扫描字符串文字时请检查我提到os.path详细信息的修改问题。我已更新了我的答案,您仍然遇到相同的问题bc您无法访问实际路径Hello@ValentinB,我已根据您的建议更改了代码。但在扫描字符串文字时仍然出现以下错误:SyntaxError:EOL