Google Colab 在处理包含大量文件的云端硬盘文件夹时遇到问题

Google Colab having problems with Drive folders containing lots of files

我已经将几个文件夹从云端硬盘导入到 Google Colab。较小的文件夹在列出目录时工作正常,但当我尝试列出较大文件夹中的目录时,Colab 给我一个错误。

我知道还有其他列出目录的方法,但是当我尝试访问文件进行训练时,同样的问题导致了进一步的问题。

我正在使用它来导入文件:

from google.colab import drive
drive.mount('/content/drive')

然后描述文件夹如下:

TRAIN = '../content/drive/My Drive/train/'
TEST = '../content/drive/My Drive/test/'

当我尝试执行以下操作时:

print(os.listdir(TEST))
print(os.listdir(TRAIN))

TEST 打印正常。它有大约 8000 个文件(所有图像)。

TRAIN 有时打印,有时不打印!它有大约 32,000 个文件(也是所有图像)。 当我尝试 运行 时它会打印出来:

OSError: [Errno 5] Input/output error: '../content/drive/My Drive/train/'

有人知道如何在 Google colab 中解决这个问题吗?

我发现如果在导入文件后我等待一段时间然后 运行 打印,它 运行s,表明 Colab 需要一段时间来处理来自 Drive 的文件即使在单元格导入停止后 运行ning.

当目录中的文件数量变大时,Drive FUSE 操作可能会超时。

I/O Drive 目录的操作与目录中的文件数成正比。由于FUSE客户端有固定的超时时间,当文件数量足够大时,目录操作会失败。

解决方法是将文件组织到子目录中,这样单个目录中的文件或文件夹的数量就不会变得太大。

OSError: [Errno 5] Input/output error: '../content/drive/My Drive/train/'

原因是 google colab 无法将文件树读取为 '../content/drive/My Drive/train/' 因此,将其更改为 'content/drive/My Drive/train/'。(或根据您当前的工作目录给出完整路径)

我的是相对路径导致的错误。我将其更改为完整路径并解决了它。 即,改变

../drive/MyDrive/  

/content/drive/MyDrive