繁体   English   中英

内存不足 - Google Colab

[英]Running Out of RAM - Google Colab

一段时间以来,我一直在尝试在 Google Colab 中运行某个单元,并一直遇到同样的问题。 单元运行大约 20-25 分钟并终止代码并由于内存/RAM 用完而重新启动运行时,这会导致所有变量丢失。 我首先通过调用“del”删除了将在下一次迭代中重新初始化的变量。 删除变量后,我调用了 gc.collect() 函数。 一旦这不起作用,我注意到有一些数据结构会增加每次迭代(几个列表)。 我删除了列表并将信息写入 csv 文件。 然后我在 for 循环之后读入 information/csv 文件并以这种方式获取信息,而不是在 for 循环中的每次迭代都附加到列表中。 然而,这也没有解决问题。 我没有 Colab Pro+,我使用的是免费版本。

任何帮助将不胜感激。 谢谢!

我首先通过调用“del”删除了将在下一次迭代中重新初始化的变量

如果该变量很快被重新分配给一个新值,那么删除它不会有任何作用。

然后我在 for 循环之后读入 information/csv 文件并以这种方式获取信息,而不是在 for 循环中的每次迭代都附加到列表中

如果最终结果是存储在变量中的相同数量的信息,那么这也不会做任何事情。

在没有看到您的实际代码的情况下,我只能说“您的变量太大”。

您可能想查看HDF5 数据集numpy.memmap 如果您不必一次处理全部数据,这些工具可以帮助您批量处理数据,而无需一次将全部数据加载到 ram 中。

创建和写入 hdf5 文件:

import h5py
import numpy as np
rows = 20
columns = 100
with h5py.File("mytestfile.hdf5", "w") as f:
    # create new dataset
    dset = f.create_dataset("mydataset", (rows,columns), dtype='i')
    for i in range(rows):
        # write in batches
        dset[i] = np.random.randint(0,10,(columns))

从文件中读取:

with h5py.File("mytestfile.hdf5", "r") as f:
  dset = f["mydataset"]
  for i in range(dset.shape[0]):
    # read in batches
    row = dset[i]
    # ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM