首页 > 解决方案 > CNN 模型在 CPU 和 GPU 上 tensorflow 预测的差异

问题描述

我已经在 GPU 上训练了 FCN 网络并保存了模型(.pb 文件)。我在 GPU 上得到了正确的预测。但是,当我在 CPU 上运行预测时,我会为同一模型文件获取 NAN。是否需要设置任何 CPU/GPU 标志?还是CPU有溢出问题?

标签: tensorflowconvolutional-neural-network

解决方案


CPU 上没有特殊的溢出条件。两者都应该实现 IEEE 754。

一些高级函数可以通过不同的方式实现(tanh、sigmoid),它们在 GPU 和 CPU 上的实现方式不同,以利用平台。

每当您从模型中获得 NaN 时,很可能会出现问题。不要尝试用一些标志来修补它,而是尝试调试并查看发生了什么。在几乎所有情况下,您都有一个退化模型,该模型仅由于某些硬件的某些极端情况而起作用。

一旦发现问题,通常可以通过限制某些值或修改数据的表示方式(例如记录大数)来解决问题。


推荐阅读