禁用GPU使我的CNTK程序工作。为什么?

时间:2018-01-09 04:16:35

标签: c++ cntk

我有一个使用CNTK的C ++程序,可以在几十台PC上正常运行。但是在这台特定的PC上,它在从磁盘加载神经网络时崩溃 - 在程序启动时。最后,我禁用GPU(从Windows,而不是从任何CNTK代码),然后它加载,运行,并正常工作。那么,为什么存在GPU会导致这个问题 - 据我所知,我没有在我的CNTK代码中使用GPU。 知道了吗?谢谢!

1 个答案:

答案 0 :(得分:0)

回答我自己的问题:我检查了我的代码,然后注意到/回想起LoadModel调用将DeviceDescriptor作为参数。对于我的一些网络,我将其设置为DefaultDevice,即GPU。我将它们改为CPUDevice - 问题就消失了。因此,对于这个特定的GPU来说一定是“错误的” - 因为我的代码的旧版本在所有类型的机器上都很好。在我的情况下,我在eval时间不需要GPU,所以看起来确保我只是在我的运行时代码中指定CPU会更安全,以防万一其他系统有像这个PC那样的“GPU问题” (仍然不明白这个问题,真的)