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 即服务设置以允许更大的内存使用。确保尝试以下步骤:
- 在您的 Jupyter 实例上打开终端并运行执行以下命令:
sudo nano /lib/systemd/system/jupyter.service
- 检查提示的文本编辑器上的
MemoryHigh
和 MemoryMax
参数(如下所示)是否设置为您想要的容量。如果不行,那就换吧。
[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`
- 保存并退出。
最后,运行在终端上输入以下命令:
echo 1 | sudo tee /proc/sys/vm/overcommit_memory
这将允许完全使用 Jupyter 实例上的 vm 资源。
我正在尝试 运行 在 Google Cloud Platform (AI Platform) 上进行情绪分析。当我尝试将数据拆分为训练时,它显示如下所示的内存错误
MemoryError:无法为形状为 (414298,) 且数据类型 如何相应地增加内存大小?我应该更改实例中的机器类型吗?如果可以,哪种设置合适?
从错误来看,虚拟机似乎内存不足。
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 即服务设置以允许更大的内存使用。确保尝试以下步骤:
- 在您的 Jupyter 实例上打开终端并运行执行以下命令:
sudo nano /lib/systemd/system/jupyter.service
- 检查提示的文本编辑器上的
MemoryHigh
和MemoryMax
参数(如下所示)是否设置为您想要的容量。如果不行,那就换吧。
[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`
- 保存并退出。
最后,运行在终端上输入以下命令:
echo 1 | sudo tee /proc/sys/vm/overcommit_memory
这将允许完全使用 Jupyter 实例上的 vm 资源。