当前位置:   article > 正文

动手学习深度学习:[Errno 22] Invalid argument: ‘..\\data\\snli_1.0\\Icon\r‘_oserror: [errno 22] invalid argument: '..\\data\\s

oserror: [errno 22] invalid argument: '..\\data\\snli_1.0\\icon\r

最近在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'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

在网上并没有找到比较好的解决方法,研究了一下午,终于解决了。

报错的原因是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",其它用到了的方法也要记得改)就可以运行啦。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/358231
推荐阅读
相关标签
  

闽ICP备14008679号