我正在使用选择性采样器对三个CT体积进行训练,以确保在RoI周围采集足够的样本(由于类不平衡),以及一些随机样本。我还通过缩放,旋转和翻转来扩充数据,这会在创建样本时花费大量时间。
将sample_per_volume设置为某个较大的值(例如32768)和batch_size设置为128,看起来NiftyNet将从第一个卷中取出128个样本的256个迭代,然后切换到仅从第2个卷中取样的样本(使用损失急剧下降等等。我希望每批128个样本是从所有训练量中获取的大致均匀混合样本。
我已经尝试将sample_per_volume设置为batch_size的大约1/3,以便每次迭代重新选择样本,但这会使每次迭代的速度从大约2s减慢到50-60s。
我误解了什么吗?或者有没有办法解决这个问题,以确保我的批次由所有训练数据的混合样本组成?感谢。
答案 0 :(得分:1)
样本填充queue_length
文件中给出的长度为.ini
的队列。然后将它们从队列中随机取出以填充批次。
我会增大queue_length
参数。然后将填充来自几个不同主题的数据。