Sagemaker模型训练中设备上没有剩余空间

时间:2018-07-26 07:51:04

标签: amazon-web-services keras amazon-sagemaker

我正在通过AWS Sagemaker在p2实例上使用Docker映像附带的自定义算法运行(有点类似于https://github.com/awslabs/amazon-sagemaker-examples/blob/master/advanced_functionality/scikit_bring_your_own/scikit_bring_your_own.ipynb

在培训过程结束时,我尝试将模型写下来到通过Sagemaker挂载的输出目录(如教程中所示),如下所示:

model_path = "/opt/ml/model"
model.save(os.path.join(model_path, 'model.h5'))

很不幸,随着时间的流逝,模型变得太大了,我得到了 出现以下错误:

  

RuntimeError:关闭文件时出现问题(文件写入失败:时间=周四七月   26 00:24:48 2018

     

00:24:49,文件名='model.h5',文件描述符= 22,errno = 28,   错误消息=“设备上没有剩余空间”,buf = 0x1a41d7d0,总计   写[...]

所以我所有的GPU时间都浪费了。如何防止这种情况再次发生?有人知道我存储在Sagemaker /挂载目录中的模型的大小限制是什么吗?

2 个答案:

答案 0 :(得分:1)

使用Estimators训练模型时,defaults to 30 GB of storage可能还不够。您可以在构造函数上使用train_volume_size参数来增加此值。尝试使用较大的数字(例如100GB),看看您的模型有多大。在随后的工作中,您可以将值调整为更接近实际需要的值。

存储费用$0.14 per GB-month of provisioned storage。部分使用是按比例分配的,因此给自己一些额外的空间是防止存储空间用完的廉价保险。

答案 1 :(得分:0)

在SageMaker Jupyter笔记本中,您可以通过运行!df -h来检查文件系统上的可用空间。对于特定的路径,请尝试类似!df -h /opt的内容。