使用TensorFlow-GPU遇导入错误:无法导入'self_check',求解决方案
解决TensorFlow-GPU导入错误:
cannot import name 'self_check' 嘿,别慌,这个self_check导入错误我之前帮不少人搞定过,结合你用Python 3.5 + Anaconda + TensorFlow-GPU的场景,给你几个针对性的解决方案,一步步来:
先排查版本兼容性问题(最常见原因)
Python 3.5只支持TensorFlow 1.x系列(最高到1.15.x),如果你不小心装了2.x版本,必然会出现这类导入错误。先激活你的conda环境,执行下面的命令查看当前TensorFlow版本:conda list tensorflow如果显示是2.x版本,就卸载重装兼容的版本:
pip uninstall tensorflow tensorflow-gpu pip install tensorflow-gpu==1.15.0顺便提醒下,Keras版本也要和TensorFlow匹配,Keras 2.3.1是和TF1.15完美兼容的,所以同步安装:
pip install keras==2.3.1清理环境中的冲突依赖
有时候旧环境里残留的包会互相干扰,不如直接搞个干净的conda环境试试:- 先卸载当前环境里的相关包:
pip uninstall -y tensorflow tensorflow-gpu keras - 清理conda的缓存文件:
conda clean --all - 创建新的专属环境并激活:
conda create -n tf_gpu_env python=3.5 conda activate tf_gpu_env - 重新安装指定版本的包:
pip install tensorflow-gpu==1.15.0 keras==2.3.1
- 先卸载当前环境里的相关包:
确保Spyder关联到正确的conda环境
不少人踩过这个坑:Spyder默认用的是base环境,而不是你装了TensorFlow的环境。解决方法有两个:- 激活你的TensorFlow环境后,直接从命令行启动Spyder:
conda activate tf_gpu_env spyder - 或者在Spyder里手动设置解释器:打开Spyder后,依次点击
Tools > Preferences > Python interpreter,选择Use the following interpreter,然后找到你的conda环境下的Python路径(比如Anaconda3/envs/tf_gpu_env/python.exe),重启Spyder就生效了。
- 激活你的TensorFlow环境后,直接从命令行启动Spyder:
验证CUDA和cuDNN版本是否匹配
TensorFlow-GPU对CUDA和cuDNN版本要求很严格,TF1.15需要CUDA 10.0(不能是10.1或更高)、cuDNN 7.6.x。你可以执行下面的命令查看CUDA版本:nvcc --version如果版本不对,需要卸载当前CUDA,安装10.0版本,再把cuDNN 7.6的解压文件放到CUDA的安装目录里,同时确保系统环境变量里添加了CUDA的路径。
先从版本匹配和环境清理开始试,这两个是最容易解决问题的步骤。
内容的提问来源于stack exchange,提问作者Juan Gonzales
相关产品推荐
相关产品推荐

