为什么pdb会连续不断地遍历相同的代码行?

时间:2019-10-22 15:26:09

标签: python directory pytorch pdb dataloader

我正在尝试第一次使用pdb调试器,并且在单步执行代码时,我注意到有几行代码重复其本身。该步骤将我带到python3.6 / os.py

> /usr/local/lib/python3.6/dist-packages/torchvision/datasets/folder.py(47)make_dataset()
-> for root, _, fnames in sorted(os.walk(d)):

(Pdb) 
--Call--
  

/usr/lib/python3.6/os.py(277)walk()   -> def walk(top,topdown = True,onerror = None,followlinks = False):   (Pdb)   /usr/lib/python3.6/os.py(335)walk()   ->顶部= fspath(顶部)   (Pdb)   /usr/lib/python3.6/os.py(336)walk()   -> dirs = []   (Pdb)   /usr/lib/python3.6/os.py(337)walk()   -> nondirs = []   (Pdb)   /usr/lib/python3.6/os.py(338)walk()   -> walk_dirs = []   (Pdb)   /usr/lib/python3.6/os.py(345)walk()   ->尝试:   (Pdb)   /usr/lib/python3.6/os.py(348)walk()   -> scandir_it = scandir(顶部)   (Pdb)   /usr/lib/python3.6/os.py(354)walk()   ->使用scandir_it:   (Pdb)   /usr/lib/python3.6/os.py(355)walk()   ->而True:   (Pdb)   /usr/lib/python3.6/os.py(356)walk()   ->尝试:   (Pdb)   /usr/lib/python3.6/os.py(357)walk()   ->尝试:   (Pdb)   /usr/lib/python3.6/os.py(358)walk()   ->条目=下一个(scandir_it)   (Pdb)   /usr/lib/python3.6/os.py(366)walk()   ->尝试:   (Pdb)   /usr/lib/python3.6/os.py(367)walk()   -> is_dir = entry.is_dir()   (Pdb)   /usr/lib/python3.6/os.py(373)walk()   ->如果is_dir:   (Pdb)   /usr/lib/python3.6/os.py(376)walk()   -> nondirs.append(entry.name)   (Pdb)   /usr/lib/python3.6/os.py(378)walk()   ->如果不是topdown和is_dir:   (Pdb)   /usr/lib/python3.6/os.py(356)walk()   ->尝试:   (Pdb)   /usr/lib/python3.6/os.py(357)walk()   ->尝试:   (Pdb)   (Pdb)   /usr/lib/python3.6/os.py(358)walk()   ->条目=下一个(scandir_it)   /usr/lib/python3.6/os.py(366)walk()   ->尝试:   (Pdb)   /usr/lib/python3.6/os.py(367)walk()   -> is_dir = entry.is_dir()   (Pdb)   (Pdb)   /usr/lib/python3.6/os.py(373)walk()   ->如果is_dir:   /usr/lib/python3.6/os.py(376)walk()   -> nondirs.append(entry.name)   (Pdb)   /usr/lib/python3.6/os.py(378)walk()   ->如果不是topdown和is_dir:   (Pdb)   /usr/lib/python3.6/os.py(356)walk()   ->尝试:   (Pdb)   /usr/lib/python3.6/os.py(357)walk()   ->尝试:   (Pdb)   /usr/lib/python3.6/os.py(358)walk()   ->条目=下一个(scandir_it)   (Pdb)   /usr/lib/python3.6/os.py(366)walk()   ->尝试:   (Pdb)   /usr/lib/python3.6/os.py(367)walk()   -> is_dir = entry.is_dir()   (Pdb)   /usr/lib/python3.6/os.py(373)walk()   ->如果is_dir:

这是否意味着主代码无法访问数据集的目录?无论我执行多少步骤,这些行都会重复。我正在使用google colab,并将我的数据路径设置为DATA_DIR = '/content/Images,其中有一个名为“ 1”的子文件夹,其中存储了所有图像。 然后我使用以下内容加载数据

def load_data(path_to_folder):
data_transform = transforms.Compose([
             transforms.Resize(64),
             transforms.CenterCrop(64),
             transforms.ToTensor(),
             transforms.Normalize(mean=[0.5, 0.5, 0.5],std=[0.5, 0.5, 0.5])
            ])
if IMAGE_DATA_SET == 'lsun':
    dataset =  datasets.LSUN(path_to_folder, classes=classes, transform=data_transform)
else:
    dataset = datasets.ImageFolder(root=path_to_folder,transform=data_transform)
dataset_loader = torch.utils.data.DataLoader(dataset,batch_size=BATCH_SIZE, shuffle=True, num_workers=5, drop_last=True, pin_memory=True)
return dataset_loader

def training_data_loader():     返回load_data(DATA_DIR) 这与ImageFolder函数不接受根路径有关吗?任何建议都会很棒!

0 个答案:

没有答案