尝试训练word2vec模型时,出现以下错误:
py4j.protocol.Py4JJavaError: An error occurred while calling o106.trainWord2VecModel.
: java.lang.OutOfMemoryError: Requested array size exceeds VM limit
我试图根据以下公式限制向量的增长,使其保持在整数的最大值范围内:
featureSize = (maxIntSize / 8)/vocabulary size
哪里:
maxIntsize/8 = 268435455
就我而言。
以及:
vocabulary size = 1811786
因此,特征向量大小设置为:
148
为我的任务留下足够的辨别能力,同时不超出系统数组大小的界限。
我的设置是:
conf = (SparkConf()
.set("spark.driver.maxResultSize", "0")\
.set("driver-memory", "50g")\
.set("executor-memory", "6g")\
.set("num-executors", "400"))
增加执行器内存似乎没有帮助。。。
谷歌和集群顾问似乎都知道如何解决这个问题。
暂无答案!
目前还没有任何答案,快来回答吧!