【发布时间】:2017-02-24 09:45:31
【问题描述】:
我正在尝试通过以下链接运行 Class : Word2VecSentimentRNN:
这个例子很大,因此这里给出了例子的链接。
我还从以下链接下载了示例矢量文件:
https://github.com/mmihaltz/word2vec-GoogleNews-vectors
我收到以下错误:
Exception in thread "main" java.lang.OutOfMemoryError: Cannot allocate 3103474 + 3600000000 bytes (> Pointer.maxBytes)
at org.bytedeco.javacpp.Pointer.deallocator(Pointer.java:484)
at org.bytedeco.javacpp.Pointer.init(Pointer.java:118)
at org.bytedeco.javacpp.FloatPointer.allocateArray(Native Method)
at org.bytedeco.javacpp.FloatPointer.<init>(FloatPointer.java:68)
at org.nd4j.linalg.api.buffer.BaseDataBuffer.<init>(BaseDataBuffer.java:457)
at org.nd4j.linalg.api.buffer.FloatBuffer.<init>(FloatBuffer.java:57)
at org.nd4j.linalg.api.buffer.factory.DefaultDataBufferFactory.createFloat(DefaultDataBufferFactory.java:238)
at org.nd4j.linalg.factory.Nd4j.createBuffer(Nd4j.java:1201)
at org.nd4j.linalg.factory.Nd4j.createBuffer(Nd4j.java:1176)
at org.nd4j.linalg.api.ndarray.BaseNDArray.<init>(BaseNDArray.java:230)
at org.nd4j.linalg.cpu.nativecpu.NDArray.<init>(NDArray.java:111)
at org.nd4j.linalg.cpu.nativecpu.CpuNDArrayFactory.create(CpuNDArrayFactory.java:247)
at org.nd4j.linalg.factory.Nd4j.create(Nd4j.java:4261)
at org.nd4j.linalg.factory.Nd4j.create(Nd4j.java:4227)
at org.nd4j.linalg.factory.Nd4j.create(Nd4j.java:3501)
at org.deeplearning4j.models.embeddings.loader.WordVectorSerializer.readBinaryModel(WordVectorSerializer.java:219)
at org.deeplearning4j.models.embeddings.loader.WordVectorSerializer.loadGoogleModel(WordVectorSerializer.java:118)
at com.nyu.sentimentanalysis.core.Word2VecSentimentRNN.run(Word2VecSentimentRNN.java:77)
我尝试使用参数-Xmx2g and -Xms2g 启动应用程序。甚至不时更改值以检查它是否有帮助或有效。
请让我知道我该怎么做。被关在这里了。
【问题讨论】:
-
我不知道这是否有帮助,但请注意,3600000000 字节是 3.6 GB,所以您可能想运行 -Xmx4g 看看会发生什么,-Xmx2g 只会分配 2 GB
-
@StanfordNLPHelp 我尝试将其设为 4G,但没有成功。所以我换了我的电脑,换成了 8GB 的电脑。现在它正在运行。但是现在在训练数据时显示 NullPointer 错误。我会弄清楚的。
标签: java maven stanford-nlp