【问题标题】:Error: cannot allocate vector of size 57.8 Gb [duplicate]错误:无法分配大小为 57.8 Gb 的向量 [重复]
【发布时间】:2019-10-05 16:53:19
【问题描述】:

我想在 RStudio Server 上运行模型,但出现此错误。

错误:无法分配大小为 57.8 Gb 的向量

这就是我的数据的样子,它有 10,000 行。

   latitude longitude                 close_date close_price
1  1.501986  86.35068 2014-08-16 22:25:31.925431   1302246.3
2 36.367095 -98.66428 2014-08-05 06:34:00.165876    147504.5
3 36.599284 -97.92470 2014-08-12 23:48:00.887510    137400.6
4 67.994791  64.68859 2014-08-17 05:27:01.404296    -14112.0

这是我的模型。

library(caret)
training.samples <- data$close_price %>%
  createDataPartition(p = 0.8, list = FALSE)
train.data  <- data[training.samples, ]
test.data <- datatraining.samples, ]

model <- train(
  close_price~., data = train.data, method = "knn",
  trControl = trainControl("cv", number = 1),
  preProcess = c("center","scale"),
  tuneLength = 1
)

我的 EC2 实例有超过 57 GB 的可用空间。这就是记忆。

             total       used       free     shared    buffers     cached
Mem:      65951628     830424   65121204         64      23908     215484
-/+ buffers/cache:     591032   65360596
Swap:            0          0          0

而且它也有足够的存储空间。这是硬盘空间。

Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs        32965196      64  32965132   1% /dev
tmpfs           32975812       0  32975812   0% /dev/shm
/dev/xvda1     103079180 6135168  96843764   6% /

这些是机器的详细信息。

R version 3.5.3 (2019-03-11)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Amazon Linux AMI 2018.03

【问题讨论】:

  • 一些基础知识:当您创建 train.datatest.data,而您周围还有 training.samples 时,您在内存中存储了 2 个数据副本。也许rm(training.samples) 摆脱一份副本。但是,您的数据非常小,这对太多帮助不大。 (尽管请确保您没有其他大型不需要的对象漂浮在周围。)标记的副本有很多针对此问题的一般建议和信息。

标签: r amazon-web-services amazon-ec2 server rstudio


【解决方案1】:

因为 there's always a temporary value "*tmp*" 以及最终值,您需要大约 2 到 3 倍投影对象大小才能对其进行任何有用的操作。 (该链接讨论了子集分配,但它也适用于 &lt;- 函数的任何使用。)此外,要为对象名称分配新值,必须有连续的可用内存。因此,即使是所谓的“可用”内存也可能不是连续的。您要么需要购买更多的内存空间,要么需要减小模型的大小。计算均在 RAM 或 RAM 等效项中完成。除非您的操作系统提供虚拟内存,否则通常不会进行任何磁盘交换。

【讨论】:

    猜你喜欢
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 2021-12-04
    • 2012-06-10
    相关资源
    最近更新 更多