我正在使用选择性采样器对三个CT卷进行训练,以确保在RoI周围采集足够的样本(由于班级不平衡),并随机抽取一些样本。我还通过缩放、旋转和翻转来增加数据,这在创建样本时会花费大量的时间。
将sample_per_volume设置为某个较大的值(例如32768),并将batch_size设置为128,似乎NiftyNet将对刚从第一卷获取的128个样本进行256次迭代,然后切换到仅从第二卷获取的样本(损失急剧增加),依此类推。我希望每批128个样本是从所有训练量中提取的样本的大致均匀混合。
我尝试将sample_per_volume设置为batch_size的大约1/3,以便为每次迭代重新选择样本,但这会将每次迭代的速度从大约2秒减慢到50-60秒。
我是不是误解了什么?或者有没有一种方法可以确保我的批次是由来自所有训练数据的混合样本组成的?谢谢。
发布于 2018-06-28 00:38:09
示例填充.ini文件中给出的长度为queue_length的队列。然后,从队列中随机抽取它们以填充批处理。
我会让queue_length参数变得更大。然后,它将填充来自几个不同主题的数据。
https://stackoverflow.com/questions/49447477
复制相似问题