我正在使用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)
它打印'##################当前目录是/ tmp / flowers \ flower_photos',这是正确的,并且实际上对整个代码都适用。 / p>
由于运行良好,因此我尝试自定义以下代码,该代码只是将“ 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)
这一次,它打印'###################当前目录是/ tmp / MyData \ MyData_photos',这也是正确的,但是会引发错误:< / p>
FileNotFoundError:[WinError 3]系统找不到指定的路径:'/ tmp / MyData \\ MyData_photos'
我已经为这个问题工作了几个小时,但我不明白该os.listdir(MyData_root)方法发生了什么。突然在“ MyData”和“ MyData_photos”之间插入了附加的“ \”,并导致错误。