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

2024-05-14 20:47:51 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的论文中,我试图用tensorflow(V1.14)评估不同参数对我的主动学习对象检测器的影响。你知道吗

因此,我使用更快的rcnn\u inception\u v2\u coco标准配置从模型动物园和一个固定的随机种子(1). 你知道吗

为了确保我有一个有效的基线实验,我试着用相同的数据集、学习时间、池大小等运行对象检测器两次。你知道吗

不管怎样,20个主动学习周期后绘制的两个图是完全不同的,如您所见: enter image description here 有没有可能确保一个可比的神经网络性能?如果是,如何建立一个科学的实验设置,以比较参数变化的结果,如学习率,学习时间(这是一个约束在我们的积极学习周期!)池化。。。你知道吗


Tags: 对象模型参数tensorflow时间种子检测器v2
1条回答
网友
1楼 · 发布于 2024-05-14 20:47:51

要在CPU培训时实现确定性,应满足以下条件:

<强>1。设置所有种子

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

<强>2。将CPU线程限制为一个

session_config.intra_op_parallelism_threads = 1
session_config.inter_op_parallelism_threads = 1

3岁。数据集分片

如果您使用的是tf.data.Dataset,那么请确保碎片的数量限制为一个。你知道吗

4岁。渐变选通

对于确定性功能,某些类型的模型可能需要会话配置中的gate_gradients=tf.train.Optimizer.GATE_OP。你知道吗

5岁。霍洛沃德

如果您使用Horovod使用两个以上的GPU进行训练,就像这样

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

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


有关TensorFlow中决定论的最新信息(使用GPU时重点关注决定论),请查看NVIDIA请我驾驶的tensorflow-determinism项目。你知道吗

相关问题 更多 >

    热门问题