gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 09:03:22 26 4
gpt4 key购买 nike

在我的论文中,我试图使用 tensorflow (v 1.14)评估不同参数对我的主动学习对象检测器的影响。

因此,我使用模型动物园中的 fast_rcnn_inception_v2_coco 标准配置和固定的 random.seed(1)。

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

无论如何,经过 20 个主动学习周期后绘制的两个图表有很大不同,如下所示: enter image description here是否有可能确保类似的神经网络性能?如果是,如何设置科学实验设置,比较参数变化结果,例如学习率、学习时间(它是我们主动学习周期的限制!)池化大小,...

最佳答案

要在 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。梯度门控

为了实现确定性功能,某些类型的模型可能需要在 session 配置中使用 gate_gradients=tf.train.Optimizer.GATE_OP

<强>5。霍罗沃德

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

os.environ['HOROVOD_FUSION_THRESHOLD']='0'
<小时/>

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

<小时/>

有关 TensorFlow 中确定性的最新信息(重点是使用 GPU 时的确定性),请查看 tensorflow-determinism NVIDIA 慷慨地付钱让我负责这个项目。

关于python - 如何保证神经网络性能的可比性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59032574/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com