这样的问题我出现过几次,但是因为本人记忆存储时间很短,总是忘记。在开始写博客后又出现了相同的问题,简单记录一下,也方便有些对pytorch框架的深度学习初学者找到对应的解决方案。
我在复现论文中的代码的时候,对于数据集的获取的路径有一些疑问,现在我给出对于在Windows环境下路径的一些规则,以供参考。
1. 在Windows环境下,\ 与 / 在进行路径的构造方面是相同的,路径中都使用 \ 或都使用 / 都能正常运行,而且代码环境下 \ 还有其他作用。\ 直接在字符串中使用是不行的,所以一般用 / 来表示路径。
D:/Project/data/CUB_200_2011/images
D:\Project\data\CUB_200_2011\images
2. 那么聊聊对于训练问题中找不到路径的经验。
我在一开始去查找问题的时候,我去本地查看路径,一直都是 \ 的情况,所以在不知道1内容的情况下,一直认为是两种斜杠不能互相使用。下面是我出现问题的代码的报错情况。
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: '../data/CUB_200_2011/CUB_200_2011/images'
实际情况是我的data数据保存的位置并不在这个路径的上级,而是上级的上级。
这是运行代码的位置:
D:\Project\code\dataset
这是数据存放的位置:
D:\Project
所以把代码编写为如下就可以解决。
'../../data/CUB_200_2011/CUB_200_2011/images'
3. 最后聊聊那个拼接的函数os.path.join()
这个函数用于拼接文件路径,拼接时自动添加 \ ,如果在拼接内容尾部添加 / ,那么拼接时就会使用 / 来完成拼接。
希望这些简单但是神奇的东西可以帮到你。