【问题标题】:Your session crashed after using all available RAM in Google Collab在使用 Google Colab 中的所有可用 RAM 后,您的会话崩溃了
【发布时间】:2019-07-24 00:54:00
【问题描述】:

我有 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')

错误:您的会话在使用所有可用 RAM 后崩溃。运行时日志这样说:

Google Collab 如何更好地处理 Ram?我所有 tsv 文件的总大小为 2,800 MB。请指教!

【问题讨论】:

  • 您能否一次处理一个文件,或者所有文件中的所有数据真的需要同时在内存中吗?
  • @NikolasStevenson-Molnar 你的意思是把它们都放在单独的内核中而不是放在同一个内核中?我需要在某个时候合并所有文件,但我可以尝试单独的内核。
  • 我的意思是阅读df_crew,随心所欲地使用它,使用del df_crewdf_crew = None 释放内存,然后阅读df_ratings,使用那个...等等. 等,这样您一次在内存中只有一个文件的数据。

标签: python pandas dataframe google-colaboratory


【解决方案1】:

最简单的方法是仅在使用时使用数据并将其从内存中删除。这可以通过释放垃圾收集器来强制完成(请参阅此处的线程 [https://stackoverflow.com/questions/1316767/how-can-i-explicitly-free-memory-in-python])1

如果您想在 Colab 中扩展您的 RAM,曾经有一个黑客故意导致它耗尽 RAM,然后它会为您提供更高的 RAM 运行时间。也可以使用 Colab pro 在 Runtime -> Change Runtime Type 下选择此选项。每月 10 美元,Colab pro 对您来说可能是个不错的选择。

我看到了这个 hack here,但简而言之,只需在 while 循环中将一些内容附加到数组,直到 RAM 耗尽。

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

【讨论】:

    【解决方案2】:

    Google colab 通常提供 12 GB 的免费 ram,但我们可以通过向 google 支付任何费用来增加它。

    只需编写三行代码,您就可以将 RAM 从 12GB 增加到 25GB

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

    试试这个可能会有帮助。

    【讨论】:

    • 请在回答时提供参考并解释解决方法
    • 当我尝试说明时,这不再有效。我收到一条警告说我应该在用完所有可用 RAM 后升级到 Google Collab pro。
    猜你喜欢
    • 1970-01-01
    • 2021-07-17
    • 2020-08-07
    • 2020-08-13
    • 1970-01-01
    • 2020-04-29
    • 2022-06-10
    • 2019-08-25
    相关资源
    最近更新 更多