将Google Colab与Google Drive结合使用时出现输入/输出错误

时间:2019-03-03 20:18:56

标签: machine-learning google-colaboratory

当我使用google colab时,我一次又一次地收到此错误,有时它有时起作用,有时不起作用

OSError: [Errno 5] Input/output error

当我与Google Drive交互时会发生此错误吗? 该错误的任何解决方案

4 个答案:

答案 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 方法在不同的单元中运行 ! 命令。我通常会在训练目录中查找一个文件(具有已知文件名),并将该模式​​传递给通过管道传输到 grepls。像这样-

! ls /content/path/to/training/dr/ | grep xyz_001 # I *know* xyz_001 exists in a filename

如果此单元在尝试 n 次后成功执行,并且在输出中显示所需的文件名,则数据加载单元 100% 成功运行,您可以开始训练。< /p>

需要注意的是,我不会在没有 ls 的情况下在整个训练目录中运行 grep,因为这总是会失败,因为我的训练目录有时会包含大约 10 万个文件。

这是一个丑陋的黑客,但它每次都有效。