保存的 mxnet 模型是 GPU 还是系统特定的?

Are saved mxnet models GPU or system specific?

模型火车系统: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 build 的 CPU 实例上 运行?

回答具体问题:

Do I have to specifify somewhere on the new isntance that the models are based on GPU devices?

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

Can a model trained on a GPU instance be run on a CPU instance with CPU mxnet build?

是的。这可能是非常可取的——在 GPU 上训练以提高速度,在 CPU 上进行推理,因为它在计算和成本方面更便宜。