Ошибка ввода / вывода при использовании Google Colab с Google Drive

Когда я использую Google Colab, я получаю эту ошибку несколько раз и случайно, иногда это работает, а иногда нет

OSError: [Errno 5] Input/output error

эта ошибка возникает, когда я взаимодействую с Google Drive? любые решения для этой ошибки

4 ответа

Из FAQ -

Операции с Google Диском могут быть приостановлены, когда количество файлов или подпапок в папке становится слишком большим. Если тысячи элементов непосредственно содержатся в папке "Мой диск" верхнего уровня, то установка диска, скорее всего, истечет. Повторные попытки могут в конечном итоге увенчаться успехом, поскольку неудачные попытки локально кэшируют частичное состояние до истечения времени ожидания. Если вы столкнулись с этой проблемой, попробуйте переместить файлы и папки, непосредственно содержащиеся в "My Drive", в подпапки. Аналогичная проблема может возникнуть при чтении из других папок после successdrive.mount(). Доступ к элементам в любой папке, содержащей много элементов, может вызвать ошибки, такие как OSError: [Errno 5] Ошибка ввода / вывода (python 3) или IOError: [Errno 5] Ошибка ввода / вывода (python 2). Опять же, вы можете решить эту проблему, переместив непосредственно содержащиеся элементы в подпапки.

Я столкнулся с этой ошибкой при использовании os.listdir в папке диска Google, в которой было более 5,5 КБ файлов, и появилось небольшое окно в нижнем левом углу моей записной книжки colab, сообщающее, что истекло время ожидания.

Поскольку у меня есть Colab Pro, я попытался переключить свой аппаратный ускоритель времени выполнения на графический процессор, а форму времени выполнения на High-Ram. Это устранило проблему для меня. Не уверен, что это мог быть один или оба этих варианта вместе.

Проблема с верхним ответом заключается в том, что вам могут потребоваться некоторые простые функции в Colab (например, os.listdir), чтобы эффективно перемещать файлы и создавать подпапки для уменьшения содержимого папки. Если вы даже не можете перечислить, что находится в папке, без возникновения ошибки тайм-аута, вам может потребоваться обновление до Colab Pro, чтобы получить эти расширенные параметры времени выполнения для более мощной вычислительной среды.

Другое возможное решение - сохранить файлы в другом (новой папке) каталоге. Я думаю, что решение @bob-smith - одно из лучших решений этой проблемы, я просто показываю вариант исходного решения, которое сработало для меня.

Я сталкиваюсь с этим почти регулярно вместе с диалогом-

Истекло время ожидания Google Диска (последний раз в 12:46:20). Больше информации.

Иногда, если я запускаю ячейку кода три раза , ошибка больше не возникает; иногда мне приходится запускать ячейку 8-9 раз, чтобы успешно выполнить ее.

Проблема всегда возникает во время загрузки данных , как и ожидалось. В ячейке загрузки данных я обычно определяю разбиение, преобразования элементов и пакетные преобразования. Таким образом, они добавляют дополнительные временные затраты при многократном запуске ячейки.

Что я делаю вместо того, чтобы запускать ячейку загрузки данных несколько раз, я запускаю команду в Bash, используя !метод в другой ячейке. Обычно я ищу файл (с известным именем) в каталоге обучения и передаю этот шаблон в конвейер в. Вот так-

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

Если эта ячейка успешно выполняется после n попыток и показывает желаемое имя файла в выходных данных, ячейка загрузки данных выполняется успешно в 100% случаев, и вы можете начать обучение.

Важно отметить, что я не использую ls со всем учебным каталогом без grep потому что это всегда будет терпеть неудачу, поскольку в моем учебном каталоге иногда содержится около 100 тысяч файлов.

Это ужасный прием, но он работает каждый раз.

Другие вопросы по тегам