使用Mac进行深度学习时遇到.DS_Store报错解决办法
mac在每个文件夹中都会有一个隐藏文件.DS_Store用来记录一些位置信息。
在我们使用os.listdir(path)时,会获取路径中的所有文件夹名称,因此会把.DS_Store也收纳进来,导致报错因此需要找到获取文件夹名称那一步,使用编译器中的debug功能,看看.DS_Store被存储到了哪里,并删除,下面举一个复现VGG代码时的例子:

此时os.listdir(file_path)执行后,list_class中如下所示(使用的flower数据集,通过打点并且debug功能可以找到如下表示的列表)
['roses','.DS_Store','dandelion','daisy','tulips','sunflowers']
如此时执行将数据集分为训练集和验证集操作,那么只有roses的文件夹可以被成功分为训练集和验证集,for循环执行到'.DS_Store'时将会报错。
解决方法如下:
在for循环调用list_class之前将'.DS_Store'删除(roses在列表中序号为0,那DS_Store序号为1,用del 将list_class中的第一个位置删除,便可以顺利执行)

如果还仍然报错,在编译器控制台输入ls -a,查看训练集和验证集的文件夹中内是否存在隐藏目录.DS-Store,如果存在,则在相应的文件夹内输入 sudo rm -tf <name>进行强制删除。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)