警告信息:不再支持"memory. size()"[重复]

waxmsbnn  于 2023-02-27  发布在  其他
关注(0)|答案(1)|浏览(2774)
    • 此问题在此处已有答案**:

"memory.limit() is no longer supported" - work around?(1个答案)
6天前关闭。
此帖子已于5天前编辑并提交审核,未能重新打开帖子:
原始关闭原因未解决
我最近下载了RStudio版本4.2.2来做实验,因为我使用的版本给我带来了问题。然而,我很惊讶函数memory.size()显示错误'memory.size()' is no longer supported。我通常在机器学习模型拟合期间使用该函数来确定初始和最终内存,以便了解所使用的内存量。正如thread中所建议的,我已经试过了,但它不能解决这个错误。既然这个函数不再被支持,请问有人知道我可以使用哪个函数吗?下面是我用于ML的代码示例

> memory.size()
[1] Inf
Warning message:
'memory.size()' is no longer supported

我使用函数的典型方法是:

result <- vector("list", 6L)
for (n in 1:5) {
Train <- Training[sample(1:180568, 0.4*nrow(Training)),]
memory.size()
Time1 = Sys.time()
fit_rand <- randomForest(Label~., data= Train)
memory.size()
Time2 = Sys.time()
Train_time = (Time2 - Time1)
print(Train_time)
start_memory = memory.size()
pred_rand <- predict(fit_rand, Testing)
result[[n]] <- confusionMatrix(pred_rand, Testing$Label)
print(result)
Time3 = Sys.time()
Validation_time <- (Time3 - Time2)
print(Validation_time)
stop_memory <- memory.size()
Validation_memory = (stop_memory - start_memory)
}
rkkpypqq

rkkpypqq1#

你可以使用peakRAM包(在GitHub here上,在CRAN here上)。
您需要将计算作为peakRAM中的表达式来运行,而不是在一组特定的计算之前和之后运行memory.size(),例如

library(peakRAM)
peakRAM({
   m <- matrix(rnorm(1e6), nrow = 1e3)
   x <- qr(m)
})
Function_Call Elapsed_Time_sec
1 {m<-matrix(rnorm(1e+06),nrow=1000)x<-qr(m)}            0.365
  Total_RAM_Used_MiB Peak_RAM_Used_MiB
1               15.3              30.6

如果查看peakRAM内部,您会发现它使用对gc()的连续调用来确定之前/之后的内存使用情况。

相关问题