完全相同的代码在不同设备上获得完全不同的Tensorboard结果

时间:2018-08-21 05:29:27

标签: python tensorflow gpu tensorboard

我具有完全相同的代码来创建TFRecord文件,并分别在两台计算机上训练我的模型(使用GPU)。

1关于硬件:

一个是我的MacBook,配备了NVIDIA GTX1080 eGPU,tf1.6。另一个是具有NVIDIA M4000 ,tf1.6和

的Ubuntu 16服务器

2关于代码:

我使用

  

tf.set_random_seed(FLAGS.seed)

  

np.random.seed(FLAGS.seed)

  

FLAGS.seed = 1

我需要使用随机函数的任何地方。

  

我没有关于设备的任何代码

3张TensorBoard输出:

macbook: enter image description here

Ubuntu服务器: enter image description here

val的精度和mIOU几乎不变

4次其他尝试

  1. 我更改了损失函数,但问题仍然存在。
  2. 我将Ubuntu中的tensorflow升级到tf1.10,但问题仍然存在。

5个我的猜想

M4000支持64位计算,而1080仅支持32位,也许原因与此有关?

6个我的问题

此问题的原因是什么,我该如何修复?

1 个答案:

答案 0 :(得分:0)

我发现了我的问题的可能原因。

由于我的数据集功能很复杂,在我发布此问题后,我在问题中多次看到类似“ Ubuntu Server”的张量板曲线,但经过一段时间后,“ acc”和“ mIOU”曲线看起来像“ macbook”的结果。

所以我想cuDNN中存在一些与硬件相关的功能,这些功能导致细微的差异。