赞
踩
最近在B站上看李沐大神的动手学习深度学习V2,在跑他的源码natural-language-inference-and-dataset时,第一个块就出现了如下的报错信息:
OSError Traceback (most recent call last) <ipython-input-1-2b8316634310> in <module> 10 '9fcde07509c7e87ec61c640c1b2753d9041758e4') 11 ---> 12 data_dir = d2l.download_extract('SNLI') 13 # data_dir = "..\data\snli_1.0" D:\ProgramData\Anaconda3\envs\pytorch\lib\site-packages\d2l\torch.py in download_extract(name, folder) 405 else: 406 assert False, 'Only zip/tar files can be extracted.' --> 407 fp.extractall(base_dir) 408 return os.path.join(base_dir, folder) if folder else data_dir 409 D:\ProgramData\Anaconda3\envs\pytorch\lib\zipfile.py in extractall(self, path, members, pwd) 1645 1646 for zipinfo in members: -> 1647 self._extract_member(zipinfo, path, pwd) 1648 1649 @classmethod D:\ProgramData\Anaconda3\envs\pytorch\lib\zipfile.py in _extract_member(self, member, targetpath, pwd) 1699 1700 with self.open(member, pwd=pwd) as source, \ -> 1701 open(targetpath, "wb") as target: 1702 shutil.copyfileobj(source, target) 1703 OSError: [Errno 22] Invalid argument: '..\\data\\snli_1.0\\Icon\r'
在网上并没有找到比较好的解决方法,研究了一下午,终于解决了。
报错的原因是SNLI数据集的压缩文件"snli_1.0.zip"里面有两个路径为“snli_1.0\Icon\r”和“’__MACOSX/snli_1.0/._Icon\r’”的文件,导致无法解析此路径进而导致整个文件无法解压。
解决方法有两个:
方法一(有点麻烦):把"snli_1.0.zip"里的两个Icon文件删除
删除这两个文件后,“snli_1.0.zip"就能顺利解压,问题就解决了。但是要重写函数download_extract(具体方法是在download和extract之间把两个Icon删除了)或者写脚本删除两个Icon文件。
方法二:手动解压数据集"snli_1.0.zip”
找到data文件夹,手动把数据集"snli_1.0.zip"解压了(选解压到当前文件夹),然后把data_dir赋值为数据集解压后的路径(就是把data_dir = d2l.download_extract('SNLI')
改为data_dir = " ..\data\snli_1.0"
,其它用到了的方法也要记得改)就可以运行啦。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。