如何确保神经网络性能的可比性?

问题描述 投票:0回答:1

就我的论文而言,我正在尝试使用张量流(v 1.14)评估不同参数对我的主动学习对象检测器的影响。

因此,我正在使用来自Zoo模型的fast_rcnn_inception_v2_coco标准配置和固定的random.seed(1)。

[为了确保我有一个正常的基准实验,我尝试使用相同的数据集,学习时间,poolingsize等两次运行对象检测器。

无论如何,经过20个活跃的学习周期后,两个绘制的图有很大不同,您可以在此处看到:enter image description here是否有可能确保可比的神经网络性能?如果是,如何设置科学实验设置,以比较参数变化的结果,例如学习率,学习时间(这是我们积极学习周期的约束!)poolingsize,...

python tensorflow machine-learning data-science object-detection
1个回答
0
投票

为了在使用CPU进行培训时获得确定性,以下内容就足够了:

1。设置所有种子

SEED = 123
os.environ['PYTHONHASHSEED']=str(SEED)
random.seed(SEED)
np.random.seed(SEED)
tf.set_random_seed(SEED)

2。限制CPU读为1

session_config.intra_op_parallelism_threads = 1
session_config.inter_op_parallelism_threads = 1

3。数据集工作者

如果使用tf.data.Dataset,请确保工人人数限制为一个。

4。 HOROVOD

[如果您使用Horovod使用两个以上的GPU进行训练,

os.environ['HOROVOD_FUSION_THRESHOLD']='0'

为了更清楚地检查运行之间的确定性,我建议使用我已记录的方法here。我还建议您使用这种方法来确认两次跑步之间的初始权重(在训练的第一步之前)完全相同。


[有关TensorFlow中确定性的最新信息(请关注使用GPU时的确定性),请查看NVIDIA请我驾驶的tensorflow-determinism项目。

© www.soinside.com 2019 - 2024. All rights reserved.