Predictionio评估失败,出现Empty.maxBy异常,并使用java.lang.OutOfMemoryError进行训练

割牙

我已经下载了文本分类模板的最新更新我创建了一个新应用,并通过指定应用ID导入了stopwords.json和emails.json

$ pio import --appid <appID> --input data/stopwords.json
$ pio import --appid <appID> --input data/emails.json

然后,我更改了engine.json并在其中指定了我的应用名称。

{
   "id": "default",
   "description": "Default settings",
   "engineFactory":   "org.template.textclassification.TextClassificationEngine",
   "datasource": {
   "params": {
   "appName": "<myapp>",
   "evalK": 3
}

但是下一步,即评估失败,并显示错误empty.maxBy错误的一部分粘贴在下面

[INFO] [Engine$] Preparator:  org.template.textclassification.Preparator@79a13920
[INFO] [Engine$] AlgorithmList: List(org.template.textclassification.LRAlgorithm@420a8042)
[INFO] [Engine$] Serving: org.template.textclassification.Serving@faea4da
Exception in thread "main" java.lang.UnsupportedOperationException:  empty.maxBy
at scala.collection.TraversableOnce$class.maxBy(TraversableOnce.scala:223)
at scala.collection.AbstractTraversable.maxBy(Traversable.scala:105)
at org.template.textclassification.PreparedData.<init> (Preparator.scala:160)
at org.template.textclassification.Preparator.prepare(Preparator.scala:39)
at org.template.textclassification.Preparator.prepare(Preparator.scala:35)
at io.prediction.controller.PPreparator.prepareBase(PPreparator.scala:34)
at io.prediction.controller.Engine$$anonfun$25.apply(Engine.scala:758)
at scala.collection.MapLike$MappedValues.get(MapLike.scala:249)
at scala.collection.MapLike$MappedValues.get(MapLike.scala:249)
at scala.collection.MapLike$class.apply(MapLike.scala:140)
at scala.collection.AbstractMap.apply(Map.scala:58)

然后我尝试了,pio train但是在显示一些观察结果之后,训练也失败了。显示的错误为java.lang.OutOfMemoryError: Java heap space错误的一部分粘贴在下面。

[INFO] [Engine$] Data santiy check is on.
[INFO] [Engine$] org.template.textclassification.TrainingData supports data sanity check. Performing check.

Observation 1 label: 1.0
Observation 2 label: 0.0
Observation 3 label: 0.0
Observation 4 label: 1.0
Observation 5 label: 1.0

[INFO] [Engine$] org.template.textclassification.PreparedData does not support data sanity check. Skipping check.
[WARN] [BLAS] Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS
[WARN] [BLAS] Failed to load implementation from: com.github.fommil.netlib.NativeRefBLAS
[INFO] [Engine$] org.template.textclassification.NBModel does not support data sanity check. Skipping check.
[INFO] [Engine$] EngineWorkflow.train completed
[INFO] [Engine] engineInstanceId=AU3g4XyhTrUUakX3xepP
[INFO] [CoreWorkflow$] Inserting persistent model
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3236)
at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118)
at  java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153)
at com.esotericsoftware.kryo.io.Output.flush(Output.java:155)
at com.twitter.chill.Tuple2Serializer.write(TupleSerializers.scala:36)
at com.twitter.chill.Tuple2Serializer.write(TupleSerializers.scala:33)
at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:568)
at  com.twitter.chill.TraversableSerializer$$anonfun$write$1.apply(Traversable.scala:29)

这是因为内存不足吗?我运行的同一模板的先前版本的文本分类数据大于40mb,没有问题。评估是否必须进行培训?还可以请您解释一下评估是如何进行的吗?

马可·维维罗(Marco Vivero)

因此,我只能够运行评估而没有前一个问题,而后一个问题与内存使用情况有关。

同样,empty.maxBy如果未通过读取数据则会发生错误DataSource我的第一个猜测是,如果您使用以外的appName其他语言MyTextApp,请确保您还在脚本中的EngineParamsListObject中反映了这一更改Evaluation.scala您会看到您正在DataSourceParams那里创建一个用于评估对象。

对于OutofMemoryError,您应该在训练/评估之前增加驾驶员记忆。通过执行以下操作来完成此操作:

pio train -- --driver-memory xG --executor-memory yG pio eval org.template.textclassification.AccuracyEvaluation org.template.textclassification.EngineParamsList -- --driver-memory xG --executor-memory yG

将--driver-memory设置为1G或2G就足够了。

至于评估的执行方式,PredictionIO默认情况下执行k倍交叉验证。为此,您的数据被分为大约k个相等大小的部分。假设出于说明目的,k为3。然后,在2/3的数据上训练模型,而将其他1/3的数据用作测试集以估计预测性能。对每1/3的数据重复此过程,然后将获得的3个性能估算值的平均值用作预测性能的最终估算值(在一般情况下,您必须自己决定什么才是合适的度量标准) 。对于您指定用于测试的每个参数设置和模型,都会重复此过程。

评估不是培训和部署的必要步骤,但是,它是一种选择用于培训和部署的参数/算法的方法。在机器学习/统计中称为模型选择。


编辑:至于文本向量化,每个文档都通过以下方式向量化:

说我的文件是:

“我是Marco。”

第一步是对此进行标记化,这将导致以下Array / List输出:

[“ I”,“ am”,“ Marco”]

然后,您执行一个双链提取程序,该程序存储以下令牌集/列表的集合:

[“ I”,“ am”],[“ am”,“ Marco”],[“ I”],[“ am”],[“ Marco”]

其中的每一个都用作构建bigram和字数向量的功能,然后应用tf-idf转换。请注意,要构建矢量,我们必须从每个文档中提取双字母组,这样这些特征矢量可能会变得很大。您可以通过在Preparator阶段增加/减小inverseIdfMin / inverseIdfMax值来减少大量此类操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

java.lang.outofmemoryerror异常?

来自分类Dev

java.lang.OutOfMemoryError:PermGen空间异常

来自分类Dev

为什么Spark失败并出现java.lang.OutOfMemoryError:超出了GC开销限制?

来自分类Dev

SonarQube分析失败java.lang.OutOfMemoryError:Java堆空间

来自分类Dev

使用getBlockSizeLong方法后出现java.lang.NoSuchMethodError异常

来自分类Dev

使用XMLEncoder时出现java.lang.Instantiation异常

来自分类Dev

加密/解密大文件时出现java.lang.OutOfMemoryError

来自分类Dev

ListView android滚动期间出现java.lang.OutOfMemoryError

来自分类Dev

调用 getDrawable() 时出现 java.lang.OutOfMemoryError

来自分类Dev

为什么即使更改了 -xmx VM 选项后,异常“java.lang.OutOfMemoryError: Java heap space”仍然出现?

来自分类Dev

异常java.lang.OutOfMemoryError:Java堆空间

来自分类Dev

java.lang.OutOfMemoryError图片

来自分类Dev

Android java.lang.OutOfMemoryError?

来自分类Dev

AndroidRuntime:java.lang.OutOfMemoryError

来自分类Dev

java.lang.OutOfMemoryError:Android

来自分类Dev

java.lang.OutOfMemoryError图片

来自分类Dev

java.lang.OutOfMemoryError:Android

来自分类Dev

错误是java.lang.OutOfMemoryError

来自分类Dev

Jboss保险丝Esb java.lang.outOfMemoryError异常

来自分类Dev

获取致命异常:main java.lang.OutOfMemoryError

来自分类Dev

在使用scikit的LatentDirichletAllocation类进行训练时评估模型

来自分类Dev

java.lang.OutOfMemoryError:Java堆空间

来自分类Dev

java.lang.OutOfMemoryError:Java堆空间?

来自分类Dev

构建时出现匕首异常。错误:任务':app:compileDebugJavaWithJavac'的执行失败。java.lang.IllegalStateException

来自分类Dev

使用JUnit运行黄瓜测试时出现java.lang.NoClassDefFoundError异常

来自分类Dev

为什么创建HiveContext失败并显示“ java.lang.OutOfMemoryError:PermGen space”?

来自分类Dev

java.lang.OutOfMemoryError-BitmapFactory.decode(strPath)

来自分类Dev

Android由java.lang.outofmemoryerror引起

来自分类Dev

Asynctask中的java.lang.OutOfMemoryError错误

Related 相关文章

  1. 1

    java.lang.outofmemoryerror异常?

  2. 2

    java.lang.OutOfMemoryError:PermGen空间异常

  3. 3

    为什么Spark失败并出现java.lang.OutOfMemoryError:超出了GC开销限制?

  4. 4

    SonarQube分析失败java.lang.OutOfMemoryError:Java堆空间

  5. 5

    使用getBlockSizeLong方法后出现java.lang.NoSuchMethodError异常

  6. 6

    使用XMLEncoder时出现java.lang.Instantiation异常

  7. 7

    加密/解密大文件时出现java.lang.OutOfMemoryError

  8. 8

    ListView android滚动期间出现java.lang.OutOfMemoryError

  9. 9

    调用 getDrawable() 时出现 java.lang.OutOfMemoryError

  10. 10

    为什么即使更改了 -xmx VM 选项后,异常“java.lang.OutOfMemoryError: Java heap space”仍然出现?

  11. 11

    异常java.lang.OutOfMemoryError:Java堆空间

  12. 12

    java.lang.OutOfMemoryError图片

  13. 13

    Android java.lang.OutOfMemoryError?

  14. 14

    AndroidRuntime:java.lang.OutOfMemoryError

  15. 15

    java.lang.OutOfMemoryError:Android

  16. 16

    java.lang.OutOfMemoryError图片

  17. 17

    java.lang.OutOfMemoryError:Android

  18. 18

    错误是java.lang.OutOfMemoryError

  19. 19

    Jboss保险丝Esb java.lang.outOfMemoryError异常

  20. 20

    获取致命异常:main java.lang.OutOfMemoryError

  21. 21

    在使用scikit的LatentDirichletAllocation类进行训练时评估模型

  22. 22

    java.lang.OutOfMemoryError:Java堆空间

  23. 23

    java.lang.OutOfMemoryError:Java堆空间?

  24. 24

    构建时出现匕首异常。错误:任务':app:compileDebugJavaWithJavac'的执行失败。java.lang.IllegalStateException

  25. 25

    使用JUnit运行黄瓜测试时出现java.lang.NoClassDefFoundError异常

  26. 26

    为什么创建HiveContext失败并显示“ java.lang.OutOfMemoryError:PermGen space”?

  27. 27

    java.lang.OutOfMemoryError-BitmapFactory.decode(strPath)

  28. 28

    Android由java.lang.outofmemoryerror引起

  29. 29

    Asynctask中的java.lang.OutOfMemoryError错误

热门标签

归档