Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何确保神经网络性能的可比性?_Python_Tensorflow_Machine Learning_Data Science_Object Detection - Fatal编程技术网

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

Python 如何确保神经网络性能的可比性?,python,tensorflow,machine-learning,data-science,object-detection,Python,Tensorflow,Machine Learning,Data Science,Object Detection,在我的论文中,我试图用tensorflow(V1.14)评估不同参数对我的主动学习对象检测器的影响 因此,我使用的是来自ModelZoo的更快的\uRCNN\uInception\uV2\uCoco标准配置和一个固定的random.seed(1) 为了确保我有一个有效的基线实验,我尝试使用相同的数据集、学习时间、池大小等运行对象检测器两次 无论如何,20个主动学习周期后绘制的两个图是完全不同的,如您所见: 是否有可能确保可比较的神经网络性能?如果是,如何设置科学实验设置,比较参数变化结果,如学习

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

因此,我使用的是来自ModelZoo的更快的\uRCNN\uInception\uV2\uCoco标准配置和一个固定的random.seed(1)

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

无论如何,20个主动学习周期后绘制的两个图是完全不同的,如您所见:
是否有可能确保可比较的神经网络性能?如果是,如何设置科学实验设置,比较参数变化结果,如学习率、学习时间(这是我们主动学习周期中的一个限制!)池化,

要在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\u gradients=tf.train.Optimizer.gate\u OP

5。霍洛沃德

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

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

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


有关TensorFlow中决定论的最新信息(使用GPU时关注决定论),请查看NVIDIA付钱让我驾驶的项目