0

我正在使用 tensorflow-slim,并修改了一些示例代码以使用我自己的数据。

下面是设置下载数据集的目录的原始代码(dataset_dir由用户输入,这次是'/tmp/flowers'):

flower_root = os.path.join(dataset_dir, 'flower_photos')
directories = []
class_names = []
print('##################current dir is', flower_root)    #original line for verification
for filename in os.listdir(flower_root):
  path = os.path.join(flower_root, filename)
  if os.path.isdir(path):
    directories.append(path)
    class_names.append(filename)

它打印'#################current dir is /tmp/flowers\flower_photos',这是正确的,它实际上适用于整个代码。

由于它运行良好,我尝试自定义代码如下,它只是将 'flowers' 替换为 'MyData'(因此将 dataset_dir 更改为 '/tmp/MyData'):

MyData_root = os.path.join(dataset_dir, 'MyData_photos')
directories = []
class_names = []
print('##################current dir is', MyData_root)
for filename in os.listdir(MyData_root):
  path = os.path.join(MyData_root, filename)
  if os.path.isdir(path):
    directories.append(path)
    class_names.append(filename)

这一次,它打印'##################current dir is /tmp/MyData\MyData_photos',这也是正确的,但它会引发错误:

FileNotFoundError: [WinError 3] 系统找不到指定的路径:'/tmp/MyData\\MyData_photos'

我已经为这个问题工作了几个小时,但我不明白那个 os.listdir(MyData_root) 方法发生了什么。它突然在 'MyData' 和 'MyData_photos' 之间插入额外的 '\' 并导致错误。

4

0 回答 0