完全相同的代码在不同的设备上得到完全不同的 Tensorboard 结果
The exactly same code gets completely different Tensorboard results on different devices
我有完全相同的代码来创建 TFRecord 文件并分别在两台计算机上训练我的模型(使用 GPU)。
1 关于硬件:
一台是我的 MacBook,配备 NVIDIA GTX1080 eGPU,tf1.6。另一个是 Ubuntu 16 服务器,带有 NVIDIA M4000, tf1.6,
2 关于代码:
我用
tf.set_random_seed(FLAGS.seed)
和
np.random.seed(FLAGS.seed)
和
FLAGS.seed = 1
任何需要使用随机函数的地方。
I don't have any code about device
3 TensorBoard 输出:
苹果电脑:
Ubuntu 服务器:
val的准确率和mIOU几乎没有变化
4 次其他尝试
- 我更改了我的损失函数,但问题仍然存在。
- 我将 Ubuntu 中的 tensorflow 升级到 tf1.10,但问题仍然存在。
5 我的猜测
M4000支持64位运算,1080只支持32位,可能与此有关?
6 我的问题
这个问题是什么原因,我该如何修复??
我找到了我的问题的可能原因。
因为我的数据集特征比较复杂,在我post这个问题之后,我在我的问题中多次看到像'Ubuntu Server'这样的tensorboard曲线,但是在一些epoch之后,'acc' 和 'mIOU' 曲线看起来像 'macbook'.
的结果
所以我猜cuDNN中存在一些与硬件相关的函数,导致了细微的差异。
我有完全相同的代码来创建 TFRecord 文件并分别在两台计算机上训练我的模型(使用 GPU)。
1 关于硬件:
一台是我的 MacBook,配备 NVIDIA GTX1080 eGPU,tf1.6。另一个是 Ubuntu 16 服务器,带有 NVIDIA M4000, tf1.6,
2 关于代码:
我用
tf.set_random_seed(FLAGS.seed)
和
np.random.seed(FLAGS.seed)
和
FLAGS.seed = 1
任何需要使用随机函数的地方。
I don't have any code about device
3 TensorBoard 输出:
苹果电脑:
Ubuntu 服务器:
val的准确率和mIOU几乎没有变化
4 次其他尝试
- 我更改了我的损失函数,但问题仍然存在。
- 我将 Ubuntu 中的 tensorflow 升级到 tf1.10,但问题仍然存在。
5 我的猜测
M4000支持64位运算,1080只支持32位,可能与此有关?
6 我的问题
这个问题是什么原因,我该如何修复??
我找到了我的问题的可能原因。
因为我的数据集特征比较复杂,在我post这个问题之后,我在我的问题中多次看到像'Ubuntu Server'这样的tensorboard曲线,但是在一些epoch之后,'acc' 和 'mIOU' 曲线看起来像 'macbook'.
的结果所以我猜cuDNN中存在一些与硬件相关的函数,导致了细微的差异。