Хобрук: Ваш путь к мастерству в программировании

Ваш сеанс завершился с ошибкой после использования всей доступной оперативной памяти в Google Collab

У меня есть 6 файлов tsv с большими данными, которые я читаю в фреймы данных в Google Collab. Однако файлы слишком большие, и Google Colab не может с этим справиться.

#Crew data
downloaded = drive.CreateFile({'id':'16'}) 
downloaded.GetContentFile('title.crew.tsv') 
df_crew = pd.read_csv('title.crew.tsv',header=None,sep='\t',dtype='unicode')

#Ratings data
downloaded = drive.CreateFile({'id':'15'}) 
downloaded.GetContentFile('title.ratings.tsv') 
df_ratings = pd.read_csv('title.ratings.tsv',header=None,sep='\t',dtype='unicode')


#Episode data
downloaded = drive.CreateFile({'id':'14'}) 
downloaded.GetContentFile('title.episode.tsv') 
df_episode = pd.read_csv('title.episode.tsv',header=None,sep='\t',dtype='unicode')

#Name Basics data
downloaded = drive.CreateFile({'id':'13'}) 
downloaded.GetContentFile('name.basics.tsv') 
df_name = pd.read_csv('name.basics.tsv',header=None,sep='\t',dtype='unicode')

#Principals data
downloaded = drive.CreateFile({'id':'12'}) 
downloaded.GetContentFile('title.pricipals.tsv') 
df_principals = pd.read_csv('title.pricipals.tsv',header=None,sep='\t',dtype='unicode')

#Title Basics data
downloaded = drive.CreateFile({'id':'11'}) 
downloaded.GetContentFile('title.basics.tsv') 
df_title = pd.read_csv('title.basics.tsv',header=None,sep='\t',dtype='unicode')

Ошибка: сеанс завершился сбоем после использования всей доступной оперативной памяти. В журналах выполнения говорится следующее:  введите описание изображения здесь

Как Google Collab может лучше справляться с Ram? Размер всех моих tsv-файлов, вместе взятых, составляет 2800 МБ. Пожалуйста, порекомендуйте!


  • Можете ли вы работать с одним файлом за раз, или все данные из всех файлов действительно должны находиться в памяти одновременно? 02.03.2019
  • @ NikolasStevenson-Molnar, вы имеете в виду поместить их все в отдельные ядра, а не в одно и то же? В какой-то момент мне нужно объединить все файлы, но я могу попробовать отдельные ядра. 02.03.2019
  • Я имею в виду читать df_crew, делать с ним все, что вам нужно, освобождать эту память с помощью del df_crew или df_crew = None, затем читать df_ratings, работать с этим ... и т. Д. И т. Д., Чтобы у вас были данные только одного файла в памяти в однажды. 02.03.2019

Ответы:


1

Google colab обычно предоставляет бесплатную оперативную память на 12 ГБ, но мы можем увеличить ее, заплатив Google что угодно.

Написав всего три строки кода, вы можете увеличить объем оперативной памяти с 12 ГБ до 25 ГБ.

a = [] while (1): a.append ('1')

Попробуйте, это может помочь.

27.10.2020
  • При ответе предоставьте ссылку с объяснением обходного пути. 27.10.2020
  • Это больше не работает, когда я пытаюсь выполнить инструкции. Я получаю предупреждение о том, что мне следует перейти на Google Collab pro после использования всей доступной оперативной памяти. 07.04.2021

  • 2

    Самый простой способ - использовать данные только по мере их использования и удалить их из памяти. Это можно сделать принудительно, заставив сборщик мусора освободиться (см. Ветку здесь [https://stackoverflow.com/questions/1316767/how-can-i-explicitly-free-memory-in-python] ]1

    Если вы хотите расширить свою оперативную память в Colab, раньше был взлом, когда вы намеренно вызвали нехватку оперативной памяти, а затем он предложит вам более высокое время работы ОЗУ. Эту опцию также можно выбрать с помощью Colab pro в разделе «Время выполнения -› Изменить тип выполнения ». За 10 долларов в месяц Colab Pro вполне может стать для вас хорошим вариантом.

    Я видел этот хак здесь, но вкратце просто добавьте что-нибудь в массив в цикле while, пока ОЗУ не будет исчерпано.

    a = []
    while 1:
        a.append("1")
    
    25.12.2020
    Новые материалы

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

    Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
    Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

    Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
    Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

    стройный-i18следующий
    Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..

    Обзор 20 основных и современных методов работы с массивами в JavaScript
    Вы знаете их всех? В этом коротком посте я покажу сводку методов, доступных в JavaScript для работы с массивами. Я надеюсь, что вы найдете это полезным! В конце поста вы найдете ссылку на..

    Да, но я чувствую необходимость указать, что это или не единственные два.
    Да, но я чувствую необходимость указать, что это или не единственные два. Обучение с подкреплением (в качестве примера) также является важным.