我正在使用 Selective Sampler 对三个 CT 卷进行训练,以确保在 RoI 周围采集足够的样本(由于类不平衡)以及一些随机样本。我还通过缩放、旋转和翻转来扩充数据,这在创建样本时会花费大量时间。
将 sample_per_volume 设置为某个较大的值(例如 32768)并将 batch_size 设置为 128,看起来 NiftyNet 将对刚从第一卷中获取的 128 个样本进行 256 次迭代,然后切换到仅从第二卷中获取的样本(在损失)等等。我希望每批 128 个样本都是从所有训练卷中提取的样本的大致均匀混合。
我尝试将 sample_per_volume 设置为 batch_size 的大约 1/3,以便为每次迭代重新选择样本,但这会将每次迭代从 2 秒左右减慢到 50-60 秒。
我是不是误会了什么?或者有没有办法确保我的批次由来自所有训练数据的混合样本组成?谢谢。