Использование Flair в сочетании с TensroFlow на GPU приводит к ошибкам
Когда я попытался использовать теггеры Flair в сочетании с универсальным кодировщиком предложений(USE) для встраивания, все работало хорошо на ЦП и ГП, возникла ошибка:
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 был настроен так, чтобы разрешить рост графического процессора.
Как ни странно, использование только 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 ответ
Проблема возникла только тогда, когда библиотека Flair была импортирована до TF и блокировала попытки использовать GPU.
Недавно они исправили свою ошибку. Поэтому, если есть возможность, я рекомендую использовать Flair версии 0.4.5 или новее.
Если по какой-то причине вам все еще нужно использовать Flair версии 0.4.4, я обнаружил, что это работает хорошо: всегда импортируйте тензорный поток перед импортом Flair (даже если вы не используете его в текущем файле).
В этой версии также были проблемы с пакетами Pillow и torchvision. Рекомендую устанавливать их в версиях:Pillow==6.2.1
а также torchvision==0.4.2
. Надеюсь, это будет полезно. Если бы такой пост существовал раньше, это сэкономило бы мне пару дней на отладку.