我正在使用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:关闭文件时出现问题(文件写入失败:时间=星期四7月26日00:24:48 2018 00:24:49,文件名='model.h5',文件描述符= 22,错误= 28,错误消息='否设备上留下的空间',buf = 0x1a41d7d0,总写[...]
因此,我所有的GPU时间浪费了 . 我怎样才能防止这种情况再次发生?有谁知道我存储在Sagemaker /挂载目录中的模型的大小限制是多少?
2 回答
使用
Estimators
训练模型时,它可能是defaults to 30 GB of storage,这可能还不够 . 您可以在构造函数上使用train_volume_size
param来增加此值 . 尝试使用大数字(如100GB)并查看模型的大小 . 在后续作业中,您可以将值调低到更接近实际需要的值 .存储费用$0.14 per GB-month of provisioned storage . 部分使用按比例分配,因此给自己一些额外的空间是一个廉价的保险政策,以防止用尽存储空间 .
在SageMaker Jupyter笔记本中,您可以通过运行
!df -h
来检查文件系统上的可用空间 . 对于特定路径,请尝试类似!df -h /opt
的内容 .