Al instalar tensorflow, usando import tensorflow, hubo un error que indicaba que no se podía encontrar el archivo dll. Consulté muchos blogs y soluciones de flujo de pila, y descubrí que solo el número de versión no coincidía, pero no especifiqué qué versión es adecuada. correcto, así que escriba esta guía para evitar hoyos a mano. Gracias nuevamente a Brother Function por su orientación y ayuda.
El entorno del autor:
python 版本3.6
tensorflow版本1.14
ImportError: Could not find 'cudart64_100.dll'
Respuesta corta:
-
Analice detenidamente el tipo y la causa del error
-
Descubra su propia versión de tensorflow y CUDA
-
Utilice la versión correspondiente para resolver el problema, complete la adaptación de cuda y tf, la adaptación de cudnn y cuda, la adaptación de protobuf y tf
1. Razones del tipo de error
El problema es que no se puede encontrar el módulo del archivo dll del sistema cuda, y le indica que debe descargar CUDA10.0, luego primero verifique si el archivo existe en la ruta de cuda : acceda a cuda a
través de la C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA
ruta, y busque el cudart64_100.dll
módulo en su directorio bin.
Si lo hay, compruebe si se agregó la variable de entorno; si no, puede ser un problema de coincidencia entre la versión cuda y la versión tensorflow
2. Descubra su tensorflow y la versión de CUDA
Ingrese al entorno de la línea de comandos, primero python --version
confirme que su versión de python es 3.6
y luego pip list
verifique la versión de tensorflow instalada. La versión del autor es 1.14.
Al nvcc --version
verificar la versión de cuda, la versión anterior de cuda del autor es V9.0.176;
Encuentre la información de la versión correspondiente en el sitio web oficial de Tesnsorflow de la siguiente manera:
Puede ver que cuando la versión de Tensorflow> = 1.13, la versión de CUDA debe ser 10.0 y el número de versión de cudnn debe ser mayor que 7.4.1 ;
aquí elegí para desinstalar la versión de cuda para aplicar la versión de tensorflow
Introduzca directamente la C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA
ruta para eliminar la carpeta y elimine la variable de entorno.
Encontré un enlace de descarga del servidor creado por estudiantes de secundaria. La velocidad de descarga aquí será más rápida:
enlace de descarga relacionado con tensorflow
3. Coincide con la versión correspondiente de cuda de cudnn correspondiente
Después de instalar la versión cuda, abrí jupyter nuevamente import tensorflow
y descubrí que no fue exitoso, y apareció 'cudnn64_7.dll'
un error que no se pudo encontrar :
ImportError: Could not find 'cudnn64_7.dll'
Este mensaje indica que falta el archivo dll del módulo cudnn. Según el documento de tensorflow, correspondiente a la versión 1.13 o superior de tensorflow, cudnn debe ser una versión> 7.4.1, descargar la versión cudnn y la estructura de directorios de cudnn es el siguiente:
coloque los archivos en el directorio cudnn correspondientemente en el directorio cuda
Cuatro. Coincide con el protobuf correspondiente versión tf correspondiente
En este punto, no debería haber ningún problema, seguí ejecutando import tensorflow
, MMP, no funcionó sin problemas, apareció un mensaje de 'descriptor'
error:
ImportError: cannot import name 'descriptor'
Resumen de problemas de instalación de tf en stackflow
Buscando en stackflow, encontré que el motivo del error es que las versiones de protobuf y tf no se corresponden, porque hay una dependencia entre tf y pro, así que primero desinstalo pro, luego desinstalo tf y finalmente reinstalo tf, tf corregirá automáticamente La dependencia pro está instalada.
Hubo un pequeño episodio en el medio. El autor usó el entorno virtual py de virtualenv, así que después de instalar la versión, todavía habrá 'descriptor'
errores, así que lo probé en el entorno py nativo y descubrí que tf se puede importar. Entonces, la razón es que es posible que el sistema no pueda encontrar el paquete del sitio en el entorno virtual py. Establezca el directorio bajo py-bin del entorno virtual como una variable de entorno para llamarlo normalmente.
El resultado final se importa con éxito: