我正在通过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 /挂载目录中的模型的大小限制是什么吗?
答案 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
的内容。