【发布时间】:2017-11-20 19:32:57
【问题描述】:
我有一堆需要通过 python 调用的 R 函数。但是,当我尝试分配一个大矩阵时,我遇到了内存错误。相同的功能在同一台计算机上的 RStudio 上运行良好。这是一个崩溃的代码块:
#python:
import rpy2.robjects as ro
import gc
gc.collect()
ro.r.source("calibration_functions.R")
result1 = ro.r.func1() #Does some calculations, works fine.
result2 = ro.r.func2(result1) #Crashes at this step
#R code:
func2 <- function(result1){
preds_mat = matrix(data=NA, nrow = 263310, ncol = 1000)
# do something...
return(preds_mat)
}
我得到的错误是: RRuntimeError:错误:无法分配大小为 1004.4 Mb 的向量
如何清理 R 内存? gc() 或 gc.collect() 不起作用。
【问题讨论】:
-
gc()不起作用是什么意思?为我工作。