【问题标题】:Are saved mxnet models GPU or system specific?保存的 mxnet 模型是 GPU 还是系统特定的?
【发布时间】:2018-07-05 11:12:36
【问题描述】:

模型火车系统:AWS Ubuntu p2.xlarge、R 3.4.0、mxnet_1.0.1。 保存方式:

mx.model.save(A3.MXmodel, "Action/A3.MXmodel", iteration = 3000)

通过以下方式在同一系统上加载工作正常:

A3.MXmodel <- mx.model.load("A3.MXmodel", iteration=3000)
A3.pred <- predict(A3.MXmodel, as.matrix(nNewVector))
A3.pred.label = max.col(t(A3.pred))-1

将模型文件移动到新系统(第一个实例的 AMI 克隆但在 g2.xlarge 上)。并试图预测:

A3.pred <- predict(A3.MXmodel, as.matrix(nNewVector))

导致 rstudio 立即崩溃,没有数据保存或错误消息。 我可以通过安装检查确认 mxnet 正在处理新实例:

library(mxnet)
a <- mx.nd.ones(c(2,3), ctx = mx.gpu())
b <- a * 2 + 1
b

我是否必须在新实例的某个地方指定模型基于 GPU 设备? 在 GPU 实例上训练的模型能否在 CPU mxnet 构建的 CPU 实例上运行?

【问题讨论】:

  • 这可能很明显,但您是否确认完全相同的代码在 p2.x 上也能正常工作?
  • 好主意,似乎在 p3.xlarge 上运行良好。太糟糕了,因为g2便宜得多。可能会将系统移至仅 CPU 的 EC2。谢谢
  • 对于模型推理@Garglesoap 只有 CPU 的 EC2 有什么运气吗?我的猜测是您的模型对于 g2.xlarge 实例来说太大了。它只有 4GB 的可用 GPU 内存,而训练模型的 p2.xlarge 上只有 12GB。
  • 相同的模型在其他 p2 和 p3 实例上运行良好,所以我怀疑你关于 gpu ram 的想法可能是正确的:p2 和 p3 是不同的 gpu 架构
  • 我同意模型可能太大。我建议您检查日志文件,如下所述:support.rstudio.com/hc/en-us/articles/… 或者,如果在日志中没有发现任何有趣的内容,您可以通过 R REPL 运行失败的脚本来查看发生了什么。只需在终端中输入 R,粘贴代码并回车即可。如果失败,它不会关闭终端,您将能够看到错误消息。

标签: r amazon-ec2 mxnet


【解决方案1】:

回答具体问题:

我是否必须在新实例的某个地方指定模型 是否基于 GPU 设备?

没有存储模型的结构和参数,但没有硬件编码。

在 GPU 实例上训练的模型能否在具有 CPU mxnet 构建的 CPU 实例上运行?

是的。这可能是非常理想的——在 GPU 上进行速度训练,在 CPU 上进行推理,因为它的计算成本和成本更低。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 2013-01-07
    • 1970-01-01
    相关资源
    最近更新 更多