动态批次大小场景下如何存储批次规模数值?
动态批次规模的存储方法(针对仿真模型的Batch模块)
直接用批次模块的触发事件存数据
- 打开
batchForTrain模块的属性面板 - 找到**「批次形成时」**的触发选项(对应你提供的属性面板里的On batch formed)
- 在触发框里写代码:
- 要存到集合里(比如提前建个
List<Integer>类型的batchSizesList):batchSizesList.add(batchForTrain.getBatchSize()); - 只存最新批次大小的话,建个整数变量
lastBatchSize,写:lastBatchSize = batchForTrain.getBatchSize();
批次刚形成的瞬间调用getBatchSize(),拿到的就是这次生成的实际规模,肯定准。
- 要存到集合里(比如提前建个
- 打开
自定义批次大小逻辑提前存
- 把Batch模块的批次大小改成自定义变量,比如
currentBatchSize - 在实体进批次模块前,先跑代码生成动态值:
currentBatchSize = (int)triangular(50,55,60); - 紧接着把这个值存起来:
batchSizesList.add(currentBatchSize);
这种方式不用依赖模块的触发事件,在确定批次大小时直接存,逻辑更自主。
- 把Batch模块的批次大小改成自定义变量,比如
为啥之前用Collections没成?
多半是触发时机不对——比如在实体刚进模块就去拿批次大小,这时候批次还没凑够数,自然拿不到正确值。必须等批次完全形成的那个触发点去操作。
内容的提问来源于stack exchange,提问作者Nevil Gandhi
相关产品推荐
相关产品推荐

