我正在训练的模型中遇到NaN值。
我有2个tensorflow队列。第一个是由独立的加载器线程提供,第二个线程是从第一个队列读取,执行预处理,然后加载到第二个队列。
所有这些都发生在CPU上。然后模型从第二个队列中读取批次并在GPU上进行训练。
我通过可变数量的步骤得到NaN,通常是10-20的数量级。
我可以通过两种方式解决问题:
因此,只有当我运行多个线程从不同设备访问队列时才会遇到此问题。
或者看起来,到目前为止,我还没有成功地将问题提炼成最小的测试用例。对此的简化测试似乎有效。
想知道是否有任何已知的相关问题。
我在2个运行TF 1.0.1的系统和1个运行1.1.0-rc1的系统上重现了这个。我已经尝试了CUDNN 5和CUDNN 6库。
答案 0 :(得分:0)
这个问题似乎与在GPU上定义的一些{{1}}处理函数有关,但是从CPU上的队列中提供数据。我不希望这是一个问题,但只要我将这些操作绑定到CPU使用一切正常。