假设我有一个矩阵bigm
。我需要使用该矩阵的一个随机子集并将其提供给机器学习算法,例如 say svm
。矩阵的随机子集只会在运行时知道。此外,还有其他参数也可以从网格中选择。
所以,我的代码看起来像这样:
foo = function (bigm, inTrain, moreParamsList) {
parsList = c(list(data=bigm[inTrain, ]), moreParamsList)
do.call(svm, parsList)
}
我想知道的是 R 是否使用新内存将该bigm[inTrain, ]
对象保存在 parsList 中。(我的猜测是确实如此。)我可以使用哪些命令来自己测试这些假设?此外,有没有办法在 R 中使用子矩阵而不使用新内存?
编辑:
另外,假设我正在使用驻留在父进程中的foo
mclapply(在 Linux 上)进行调用。bigm
这是否意味着我正在制作mc.cores
多个副本,bigm
或者所有核心都只使用来自父级的对象?
跟踪内存位置和在不同内核中制作的对象的消耗的任何功能和启发式方法?
谢谢。