【问题标题】:No space left on device in Sagemaker model trainingSagemaker 模型训练中的设备上没有剩余空间
【发布时间】:2018-10-16 03:27:34
【问题描述】:

我正在使用带有 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:关闭文件时出现问题(文件写入失败:时间 = Thu Jul 26 00:24:48 2018

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

所以我所有的 GPU 时间都被浪费了。我怎样才能防止这种情况再次发生?有谁知道我存储在 Sagemaker/mounted 目录中的模型的大小限制是多少?

【问题讨论】:

  • 您能否提供更多关于model 的确切对象类型的信息?如果是 MXNet 模型,使用 save method 直接将其保存到 S3 存储桶可能是有意义的。

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


【解决方案1】:

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

存储成本$0.14 per GB-month of provisioned storage。部分使用是按比例分配的,所以给自己一些额外的空间是防止存储空间耗尽的廉价保险。

【讨论】:

  • 如果您只是从 CDK 运行训练作业而不使用Estimators,有没有办法增加 training_volume_size?
  • 我看到 training_volume_size 实际上只是我可以在资源配置中指定的额外卷大小,但这不是问题。谢谢
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-03
    • 2012-12-29
    • 2012-01-14
    • 2012-05-15
    • 2018-11-22
    • 2015-07-21
    • 2020-12-16
    • 2014-11-20
    相关资源
    最近更新 更多