在GPU上将Flair与TensroFlow结合使用会产生错误

时间:2020-01-31 13:01:57

标签: python tensorflow nlp gpu flair

当我尝试结合使用Flair标记器和Universal Sentence Encoder(USE)来嵌入所有内容时,在CPU和GPU上运行良好:

self._session = tf_session.TF_NewSessionRef(self._graph.c_graph, opts)
tensorflow.python.framework.errors_impl.InternalError: cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version

我知道CUDA,CUDA运行时和cuDNN是正确的,因为我用documantion进行了检查。我使用了Docker,所以我对它们的版本有所把握。 TF.Session设置为允许GPU增长。

奇怪的是,仅使用Flair起作用,而仅使用TensorFlow(未导入Flair)效果很好。 版本出现问题:

torch==1.3.1
tensorflow-gpu==1.14.0
tensorflow-hub==0.7.0
numpy==1.17.1
flair==0.4.4

1 个答案:

答案 0 :(得分:0)

问题似乎仅在于Flair库是在TF之前导入的,并且阻止了其使用GPU的尝试。

最近,他们修复了错误。因此,如果可能的话,我建议使用Flair 0.4.5版或更高版本。

如果由于某些原因您仍然需要使用Flair版本0.4.4,我发现它可以很好地工作: 始终在导入Flair之前先导入tensorflow(即使您不在当前文件中使用它也是如此)。

该版本的Pillow和Torchvision软件包也有问题。我建议将它们安装在以下版本中:Pillow==6.2.1torchvision==0.4.2。 希望它会有用。如果之前有类似这样的帖子存在,那将节省我几天的调试时间。