Google Cloud Platform AI Jupyter 笔记本中的内存错误

Memory error in Google Cloud Platform AI Jupyter notebook

我正在尝试 运行 在 Google Cloud Platform (AI Platform) 上进行情绪分析。当我尝试将数据拆分为训练时,它显示如下所示的内存错误

MemoryError:无法为形状为 (414298,) 且数据类型 的数组分配 194.GiB

如何相应地增加内存大小?我应该更改实例中的机器类型吗?如果可以,哪种设置合适?

从错误来看,虚拟机似乎内存不足。

1 - 使用另一种机器类型创建一个新笔记本。 为此,转到 AI Platform > Notebooks 并单击 NEW INSTANCE。 Select 最适合您的选项(R 3.6、Python 2 和 3 等),然后在弹出的窗格中单击“高级选项”。在“机器配置”区域中,您可以选择带有 more memory 的机器类型。

请从 n1-standard-16 或 n1-highmem-8 开始,如果其中任何一个有效,请跳转到 n1-standard-32 或 n1-highmem-16。

使用 command 您还可以更改机器尺寸:

gcloud compute instances set-machine-type INSTANCE_NAME \
    --machine-type NEW_MACHINE_TYPE

2 - 更改数据类型。 如果您使用的是 np.float64 类型,则可以将其更改为 np.float32 以减小大小。所以你可以修改行: 结果 = np.empty(self.shape, dtype=dtype) 经过: 结果 = np.empty(self.shape, dtype=np.float32)

如果你不想修改你的代码,我建议你遵循第一个选项。

将机器类型更改为具有足够资源的机器类型是必要的,但可能还不够。如上所示 here 需要设置 Jupyter 即服务设置以允许更大的内存使用。确保尝试以下步骤:

  1. 在您的 Jupyter 实例上打开终端并运行执行以下命令:
sudo nano /lib/systemd/system/jupyter.service
  1. 检查提示的文本编辑器上的 MemoryHighMemoryMax 参数(如下所示)是否设置为您想要的容量。如果不行,那就换吧。
[Unit]
Description=Jupyter Notebook
[Service]
Type=simple
PIDFile=/run/jupyter.pid
CPUQuota=97%
MemoryHigh=3533868160
MemoryMax=3583868160
ExecStart=/bin/bash --login -c '/opt/conda/bin/jupyter lab --config=/home/jupyter/.jupyter/jupyter_notebook_config.py'
User=jupyter
Group=jupyter
WorkingDirectory=/home/jupyter
Restart=always
[Install]
WantedBy=multi-user.target`
  1. 保存并退出。

最后,运行在终端上输入以下命令:

echo 1 | sudo tee /proc/sys/vm/overcommit_memory

这将允许完全使用 Jupyter 实例上的 vm 资源。