当我使用google colab时,我一次又一次地收到此错误,有时它有时起作用,有时不起作用
OSError: [Errno 5] Input/output error
当我与Google Drive交互时会发生此错误吗? 该错误的任何解决方案
答案 0 :(得分:1)
来自the FAQ-
当文件数量或 文件夹中的子文件夹变得太大。如果有数千个项目 直接包含在顶层“我的云端硬盘”文件夹中,然后进行安装 驱动器可能会超时。反复尝试可能最终 成功,因为失败的尝试在计时之前在本地缓存了部分状态 出来。如果遇到此问题,请尝试移动文件和文件夹 直接包含在“我的云端硬盘”中的子文件夹中。一个类似的问题 在其他文件夹中读取后,可能会发生 successdrive.mount()。访问包含许多内容的任何文件夹中的项目 项可能导致类似OSError的错误:[Errno 5]输入/输出错误 (python 3)或IOError:[Errno 5]输入/输出错误(python 2)。再次, 您可以通过将直接包含的项目移入 子文件夹。
答案 1 :(得分:1)
我在其中包含超过5.5k文件的google驱动器文件夹中使用os.listdir时遇到此错误,并且我的colab笔记本左下角的一个小窗口弹出,表明发生了超时。
因为我有Colab Pro,所以我尝试将运行时Hardware Accelerator切换为GPU,将Runtime Shape切换为High-Ram。这为我解决了问题。不确定,可能是这两个选项中的一个或两个。
最佳答案的问题是,您可能需要在Colab中使用一些简单的功能(例如os.listdir)才能有效地移动文件并创建子文件夹以减少文件夹内容。如果您甚至无法列出文件夹中的内容而不会发生超时错误,则可能只需要升级到Colab Pro即可获得这些高级运行时选项,从而获得更强大的计算环境。
答案 2 :(得分:0)
另一种可能的解决方案是将文件保存在另一个(新文件夹)目录中。我认为@ bob-smith的解决方案是解决此问题的最佳方法,我只不过显示了对我有用的原始解决方案的一种变体。
答案 3 :(得分:0)
我几乎经常面对它并进行对话-
<块引用>发生了 Google 云端硬盘超时(最近一次是下午 12:46:20)。更多信息。
有时如果我运行一个代码单元三次,错误就不会再发生;有时我必须运行单元 8-9 次才能成功执行它。
问题总是发生在数据加载过程中,正如预期的那样。在数据加载单元中,我通常定义了拆分、项目转换和批量转换。因此,当多次运行单元时,它们会增加额外的时间成本。
我所做的不是多次运行数据加载单元,而是在 Bash 上使用 ls
方法在不同的单元中运行 !
命令。我通常会在训练目录中查找一个文件(具有已知文件名),并将该模式传递给通过管道传输到 grep
的 ls
。像这样-
! ls /content/path/to/training/dr/ | grep xyz_001 # I *know* xyz_001 exists in a filename
如果此单元在尝试 n 次后成功执行,并且在输出中显示所需的文件名,则数据加载单元 100% 成功运行,您可以开始训练。< /p>
需要注意的是,我不会在没有 ls
的情况下在整个训练目录中运行 grep
,因为这总是会失败,因为我的训练目录有时会包含大约 10 万个文件。
这是一个丑陋的黑客,但它每次都有效。