Python easyOCR即使在GPU上也会分配GPU=False

Python easyOCR即使在GPU上也会分配GPU=False,python,tensorflow,pytorch,gpu,Python,Tensorflow,Pytorch,Gpu,我需要为一个相当复杂的任务使用多个(我的)TF CNN模型。我还需要时不时地使用easyOCR(PyTorch)。然而,easyOCR的使用非常罕见,与TF模型相比,任务非常小。因此,我在easyocr.Reader构造函数中使用gpu=False。尽管如此,一旦easyocr预测到任何情况,GPU就会分配给pyTorch(这是一个已知的错误,我已经检查了easyocr的github问题),任何TF模型都会抛出错误: Failed to get convolution algorithm. Th

我需要为一个相当复杂的任务使用多个(我的)TF CNN模型。我还需要时不时地使用easyOCR(PyTorch)。然而,easyOCR的使用非常罕见,与TF模型相比,任务非常小。因此,我在
easyocr.Reader
构造函数中使用
gpu=False
。尽管如此,一旦easyocr预测到任何情况,GPU就会分配给pyTorch(这是一个已知的错误,我已经检查了easyocr的github问题),任何TF模型都会抛出错误:

Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so tr
y looking to see if a warning log message was printed above.
如果我先使用任何TF模型进行预测,easyocr模型会抛出:

RuntimeError: cuda runtime error (2) : out of memory at /pytorch/aten/src/THC/THCCachingHostAllocator.cpp:278
我已经找到了一个解决方案,但把这样的东西投入生产似乎相当危险


有没有更安全的方法来实现这一点?

您的tensorflow模型使用了多少GPU内存?如果它们低于您在链接的解决方案中设置的限制,则此类代码并不危险。我们的生产环境中运行着大量类似于它的代码。只要确保所有GPU使用量的总和低于可用的GPU内存总量就可以了——我使用7-8种不同的CNN型号来完成这项任务。然而,它们中的大多数应该是安全的(或者我可以稍微降低批量大小以进行推断)。但这应该是安全的。从长远来看,我不确定easyOCR是否需要内存。如果没有更好的办法,我将被迫使用这个解决方案。