7.5+中com.rapidminer.operator.meta.ParameterIteration.java中的整数溢出

svzelstsvzelst 成员职位:7贡献我
编辑2018年12月 产品反馈-解决

<<也报道于:https://github.com/rapidminer/rapidminer-studio/issues/22>>

亲爱的RapidMiner团队,

(我为RM开发了RapidProM扩展)。
我在“循环参数”操作符中发现了一个(严重的)错误

在我的实验中(我是一名研究人员),我经常使用“循环参数”操作符。
我刚刚发现,在doWork()方法中,组合的实际数量(int numberofcombination)被计算了两次。
在迭代次数非常多的情况下(这往往发生在大规模的实验中),变量达到溢出并变为负数。
结果,我得到一个UserError相关的事实,没有有效的参数组合可以生成,即:

if (numberofcombination < 1 ||值。长度== 0){
throw new UserError(this, 958);

我可以看到一些方法来解决这个问题,但是,因为我不太熟悉操作符中所有变量的含义,我想最好是你们中的一个来解决这个问题。

欢呼,

Bas。

标记:
0
0票

固定和释放·最后一次更新

评论

  • jczogallajczogalla 员工,成员职位:141RM工程

    嗨Bas !

    你是对的,这不是一个有用的用户错误。因为循环参数操作符将在下次更新时并行化,所以最初的和后来弃用的ParameterIteration很可能不会被修复,但并行版本将更好地解决这个问题。

    然而,由于#迭代影响的其他变量也只是在int范围内,我担心,它将不容易修复超过最大整数迭代。

    我能问问你为什么会遇到这么多组合吗?超过20亿似乎很多,也许这可以用另一种方式设置?但是如果您需要这么多次迭代,一个解决方法是使用嵌套的循环参数操作符,将组合拆分。

    欢呼,

    1月

  • sgenzersgenzer 12管理员,版主,员工,RapidMiner认证分析师,社区管理员,会员,大学教授,PM版主职位:2959年社区经理
  • sgenzersgenzer 12管理员,版主,员工,RapidMiner认证分析师,社区管理员,会员,大学教授,PM版主职位:2959年社区经理
  • sgenzersgenzer 12管理员,版主,员工,RapidMiner认证分析师,社区管理员,会员,大学教授,PM版主职位:2959年社区经理
登录注册置评。