Problèmes courants et solutions d'installation de tensorflow-gpu


Je rencontre souvent des problèmes lors de l'installation de tensorflow-gpu. Je l'ai installé plusieurs fois et je rencontre souvent des problèmes identiques ou similaires, donc je prévois de l'enregistrer et j'espère aider les autres.

Informations basiques

  • tensorflow-gpu
  • Installation de pip (virtualenv et autres installations virtuelles sont en fait des installations de pip, mais ne construisent qu'un environnement indépendant, n'affecteront pas l'environnement système, il est plus facile de vérifier le problème, tout au plus de recréer un environnement propre et de revenir)

Après l'installation, vous allez utiliser import tensorflow pour voir si l'installation a réussi et le résultat est une erreur. Il existe principalement deux types de messages d'erreur rencontrés:

1.ImportError: échec du chargement de la DLL: impossible de trouver le pywrap_tensorflow.py du module spécifié

Il y a beaucoup de scripts liés à pywrap_xxx dans le message d'erreur:

Traceback (most recent call last):
  File "E:\study\machinelearning\ENV\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "E:\study\machinelearning\ENV\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "E:\study\machinelearning\ENV\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
  File "E:\study\machinelearning\ENV\lib\imp.py", line 242, in load_module
    return load_dynamic(name, filename, file)
  File "E:\study\machinelearning\ENV\lib\imp.py", line 342, in load_dynamic
    return _load(spec)
ImportError: DLL load failed: 找不到指定的模块。

Ce type d'erreur se produit le plus, principalement en raison de plusieurs causes principales:

(1) Microsoft Visual C ++ 2015 Redistributable Update 3 n'est pas installé

Cela s'est produit lors de la première installation. Après avoir téléchargé vc_redist.x64.exe , ce sera correct.

  • Vague de régénération Quand
    je l'ai installé à nouveau aujourd'hui, je l'ai téléchargé et j'ai constaté qu'il ne pouvait pas être installé. En regardant le journal, j'ai dit que ma version vs est relativement nouvelle, donc elle ne peut pas être installée. À ce moment, vous pouvez vérifier s'il existe le fichier MSVCP140.DLL sous le system32 de votre machine locale.

  • Autres solutions
    Certains internautes ont déclaré qu'ils utilisent le plus récent tensorflow, il suffit d'installer le package redistribuable 2017, vous pouvez également essayer

Après avoir réinstallé le package 2017 et vérifié que j'avais déjà le fichier MSVCP140.DLL dans mon système, j'ai toujours signalé la même erreur

(2) Les versions de cuda et cudnn sont incohérentes

Ce problème est également très nombreux. J'ai installé cuda plusieurs fois et je n'ai pas réussi à l'installer, mais j'ai rencontré des incohérences avec la version de cudnn. Parce que le cuda téléchargé par défaut est la dernière version de cuda10.0, et que le cudnn que j'ai téléchargé était l'ancien, c'est-à-dire pour cuda9.0, je l'ai donc modifié plus tard pour résoudre le problème.

  • cuda download
    Insérez la description de l'image ici
    J'ai obtenu le dernier cuda10-win10 par défaut après avoir cliqué sur la configuration de mon système (win10x64). Vous pouvez cliquer sur les versions héritées à l'extrême droite pour voir une version antérieure

  • installation et vérification de cuda La
    méthode suivante ne semble pas avoir rencontré de problème.
    Vérification: entrez nvcc -V sous la ligne de commande pour voir s'il est OK.
    De plus, les deux sous l'exemple sont deviceQuery.exe et bandwidthTest.exe.

  • cudnn download
    Pour vous connecter au compte développeur nvidia,
    Insérez la description de l'image ici
    cliquez sur les versions archivées de cuDNN en bas pour voir plus de versions, car j'ai téléchargé cuda-9.0. Pour des raisons de sécurité, la version de cudnn que j'ai téléchargée est: Télécharger cuDNN v7.0.5 (5 décembre , 2017), pour CUDA 9.0,
    selon le principe ici, Télécharger cuDNN v7.5.0 (21 février 2019), pour CUDA 9.0 devrait également être possible, veuillez le confirmer la prochaine fois.

  • installation de cudnn
    Dans la page de téléchargement, vous pouvez ouvrir le guide d' installation pour consulter le guide d'installation de cudnn pour windows. Les principales opérations sont les suivantes
    (1) Copier les fichiers sous les trois dossiers bin, lib et inclure sous l'installation cudnn to cuda décompressée Le
    chemin cuda sous le répertoire du même nom sous le répertoire : C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v9.0
    (2) Ajoutez le chemin CUDA au CUDA_PATH de la variable d'environnement
    Insérez la description de l'image ici
    cuda Ce livre installera cuda lors de l'installation Le chemin de la variable d'environnement ajoutée par le chemin ( remarque : il est à l'avant du chemin et n'est pas facile à voir), vous n'avez donc pas besoin d'ajouter le chemin cuda au chemin vous-même

Ici, je mets le cudnn décompressé sur le lecteur d, par exemple: D \ cuda, puis je mets D: \ cuda \ bin dans le chemin, car certaines personnes sur Internet le suggèrent. Mais je ne l'ai pas mentionné dans le guide d'installation de cudn, donc je pense que cela ne devrait pas être nécessaire

Dommage qu'aujourd'hui je garantisse toujours que cette version sera toujours rapportée ==

(3) La version de tensorflow-gpu est incohérente

Lors de l'installation de tensorflow-gpu, les instructions par défaut sont généralement utilisées:

pip install --upgrade tensorflow-gpu

Le résultat est que la dernière version de tensorflow-gpu sera installée. Ma version est la suivante:
(1) python: 3.6.0
(2) cuda-9.0
(3) cudnn-7.0
(4) tensorflow-gpu-1.13.0

Le dernier cuda est 10.0, mais j'ai installé 9.0, j'ai donc installé tensorflow-gpu à 1.12.0, puis j'ai résolu le problème parfaitement. _

pip uninstall tensorflow-gpu==1.13.0
pip install tensorflow-gpu==1.12.0

Cela montre que tensorflow-gpu1.13.0 est estimé utiliser le contenu de la dernière version de cuda, ce qui peut être considéré comme une incohérence de version.

Si, comme moi, les problèmes ci-dessus sont résolus, vérifiez si la version est trop nouvelle ou trop ancienne. Il y a un épisode ici, parce que j'ai commencé à perdre accidentellement 1.12.0 à 1.2.0, mais le résultat n'est toujours pas bon, ne pas faire attention au résultat est une perte de temps.

(4) Autres problèmes de version de bibliothèque python, etc.

Certaines personnes sur Internet ont également rencontré des problèmes tels que numpy et d'autres versions de bibliothèque python, mais je ne l'ai pas rencontré car lors de l'installation de tensorflw-gpu, tous les packages dépendants seront téléchargés.

Problème d'installation du pip 2.TensorFlow: impossible d'importer le nom 'descripteur' 之 graph_pb2.py

Les informations d'erreur sont les suivantes: Le script lié à graph_xxx signale des erreurs:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "F:\study\machinelearning\ENV\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
    from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
  File "F:\study\machinelearning\ENV\lib\site-packages\tensorflow\python\__init__.py", line 59, in <module>
    from tensorflow.core.framework.graph_pb2 import *
  File "F:\study\machinelearning\ENV\lib\site-packages\tensorflow\core\framework\graph_pb2.py", line 6, in <module>
    from google.protobuf import descriptor as _descriptor
  File "F:\study\machinelearning\ENV\lib\site-packages\google\protobuf\descriptor.py", line 47, in <module>
    from google.protobuf.pyext import _message
ImportError: DLL load failed: 找不到指定的程序。

Je l'ai rencontré deux fois, et la raison en est que la version de protobuf est plus élevée. C'est aussi la raison pour laquelle je l'ai trouvé sur Internet. J'ai réduit la version de protobuf de 3.6.1 à 3.6.0

pip list
pip uninstall protobuf
pip install protobuf==3.6.0
pip list

Référence

[1] Erreur d'importation: échec du chargement de la DLL

Publié 41 articles originaux · loué 7 · 20 000+ vues

Je suppose que tu aimes

Origine blog.csdn.net/pkxpp/article/details/88925868
conseillé
Classement