![c4f8dc00e4e17b20ce21defb0af741ca.png](https://i-blog.csdnimg.cn/blog_migrate/6986978c2bdc96cf8514f81ade9bc41b.jpeg)
做机器学习的朋友一定绕不开Tensorflow和Keras,跑模型又会要用到GPU的CUDA框架,其中各种版本兼容问题经常导致刚从一个坑里出来,又立刻掉到另一个坑里.....
于是,踩坑无数的我,总结了一篇教程,希望可以帮助到大家少走些弯路。
1. 确认显卡是否支持CUDA
NVIDIA官网有明确标出支持CUDA的显卡都有哪些,直接去官网查询自己的显卡型号是最高效的(只要在列表里出现了就是支持的),附链接:
CUDA GPUsdeveloper.nvidia.com![fe76ac06cb63553c342c1a3c8f786d18.png](https://i-blog.csdnimg.cn/blog_migrate/0aa7723de97263bcb4b50517762256c6.jpeg)
![be5f7166162faf9ddd9c92f89a4b723a.png](https://i-blog.csdnimg.cn/blog_migrate/49d7be8d6eab02b1a4533d9d063bcf99.jpeg)
确认显卡支持就可以进入下一步了;如果显卡不支持,Tensorflow也提供了cpu版本供大家使用(就那个没有-gpu后缀的)
2. 安装VS
CUDA运行的时候需要VS的环境,所以要先安装Visual Studio,下载链接:
Visual Studio IDE、代码编辑器、Azure DevOps 和 App Center - Visual Studiovisualstudio.microsoft.com![3d4089e4457ca3bc960bf3b576d2ddc2.png](https://i-blog.csdnimg.cn/blog_migrate/26c8a3e678557cf7fca5c952ade18f66.jpeg)
![13ba643da172f98fc197285e0fc6b015.png](https://i-blog.csdnimg.cn/blog_migrate/b79997581cd09b81c4eeb4d9a01b5d46.jpeg)
下载完成,开始安装:
![d762c97b8b6702ce75dbd6f1df58ec34.png](https://i-blog.csdnimg.cn/blog_migrate/cb96fc97030f2d23d1a4deb414cddd61.jpeg)
安装完毕:
![d3ceee02d855340e561ef787a025e159.png](https://i-blog.csdnimg.cn/blog_migrate/238c3be796edf09c9328eb1d78ec0313.jpeg)
现在可以开始准备安装CUDA了
3. 检查显卡支持的CUDA版本号
在下载驱动之前要先检查一下自家显卡支持什么版本的CUDA。
查询步骤:开始菜单 - 设置 - 控制面板 - 硬件和声音 - NVIDIA控制面板 - 帮助 - 系统信息 - 组件 - 查‘NVCUDA ALL’后面跟的产品名称:
![fa9412744b77bf44706b5cedaf2f095b.png](https://i-blog.csdnimg.cn/blog_migrate/2c1034075871d822bf068080faa5bf17.png)
![905d1ba2d761a8971a4552522f7b8aa3.png](https://i-blog.csdnimg.cn/blog_migrate/7af45e9706aed91a78323703cd6ca426.jpeg)
![a65cab19d1800d03469db99194739ae9.png](https://i-blog.csdnimg.cn/blog_migrate/686ecb12c66bced8efafe4565fee343d.png)
![d6a094d8f42567e072b5c6353970b50c.png](https://i-blog.csdnimg.cn/blog_migrate/6d29a48a029310b2ea26e6a51e02eef0.png)
4. 下载CUDA Toolkit工具
再次前往NVIDIA官网,附上链接:
CUDA Toolkit 9.0 Downloadsdeveloper.nvidia.com这次我们去下载显卡驱动。
依次选择:操作系统,构架,CUDA Toolkit版本(版本号对应上一步查到的产品名称),安装方式(选择本地即可):
![df728c4959657d1e46ec39a867f9921a.png](https://i-blog.csdnimg.cn/blog_migrate/8faefe1ef2b314adfdb1c75ca492cd26.jpeg)
安装步骤:
![77235e3ac23edd08a0a6027231b591bd.png](https://i-blog.csdnimg.cn/blog_migrate/991b3bcf554b454c8e8e34c3b6539f20.png)
![ab3308098279e81811f4fd06bc915bff.png](https://i-blog.csdnimg.cn/blog_migrate/ac1021dc8ce2a6495203032e7148cf3b.jpeg)
![1ddc8c8f545aad200a26cbaa61d47bce.png](https://i-blog.csdnimg.cn/blog_migrate/2543e178243c6133a5bc23070ff2e63b.jpeg)
5. 下载cuDNN
还是在NVIDIA官网,这次是这个链接:
NVIDIA cuDNNdeveloper.nvidia.com![73f25c4fdfa3a6fd147e5cabd3a284f8.png](https://i-blog.csdnimg.cn/blog_migrate/77538d9cc654b60ef55c363e83d025da.jpeg)
cuDNN在下载的时候需要登陆账号,如果没有注册过帐号的小伙伴需要注册一下账号(如果注册过的小伙伴请忽略)。
![080317427182b706426e5a4eb2b1839c.png](https://i-blog.csdnimg.cn/blog_migrate/67aedee6dfeb3d59dc3cb8347d33edde.jpeg)
注册好了之后,根据CUDA Toolkit工具的版本选择cuDNN版本,找到操作系统对应的Library版本,点击下载:
![fcad713977bdef50a22fd98cdd7de134.png](https://i-blog.csdnimg.cn/blog_migrate/35278d40ccdb7873b60331702346099e.jpeg)
![2aa87f61040498ffc52629376e9067f6.png](https://i-blog.csdnimg.cn/blog_migrate/94b2c0626d772e7ec7915b0b955da7df.jpeg)
下载下来的是个压缩包,先解压:
![4b19d662c96555561dcd205698a5a5ac.png](https://i-blog.csdnimg.cn/blog_migrate/0ff340d9b917c7d34eec6d83182dc1fa.png)
然后需要把bin文件添加到环境变量里:
![a86d1ee85ffe01ba814cee8704e6454f.png](https://i-blog.csdnimg.cn/blog_migrate/54e1af9685219c9990d6317497469103.png)
![91492b6aae2893ced2823c2d39a58620.png](https://i-blog.csdnimg.cn/blog_migrate/74b11d018c6c5ab4434db353a7215b58.png)
6. 安装Anaconda
之所以安装Anaconda而不是pycharm,是因为Anaconda可以针对不同版本的python配置不同的环境,并且可以避免很多依赖问题,使用体验极佳。
依旧,附上官网下载链接:
Anaconda | Individual Editionwww.anaconda.com![c5a34a1f7d38ace98d7ba4e5431f3514.png](https://i-blog.csdnimg.cn/blog_migrate/6ac955ef5af17f7d3c2d32b5197fd9d3.png)
![d530abe0f260cb747eb4eb15b5475f56.png](https://i-blog.csdnimg.cn/blog_migrate/b48afde4ada75f6376886139be0f9afa.jpeg)
按部就班的安装,最后配置环境变量:
![1155f788ef20106cb263f97994d0b9e7.png](https://i-blog.csdnimg.cn/blog_migrate/253901fd667cfd28a13cca09e94ba940.png)
我自己用Anaconda给Tensorflow单独配了个环境,这个网上教程很多,在这里就不细说了。
7. 安装Tensorflow-GPU
还是先检查对应关系,根据自己安装的CUDA版本,找到适合的Tensorflow-GPU版本,这里需要留意一下自己的python版本是否合适。
ps:原则上Tensorflow-GPU选择尽量新的版本较好。
pps:python还是安装3以上的吧,毕竟2现在不更新了。
List of Available Environmentsdocs.floydhub.com![e84db4f2e0f26b5a4013f3db2234caf7.png](https://i-blog.csdnimg.cn/blog_migrate/fb62d8fd6be7a38cfdda592957054a33.png)
查到了适合自己的Tensorflow-GPU版本后,就可以开始安装啦,管理员身份打开CMD,开始pip,我已经提前从清华镜像上下载好了,所以写入了本地路径:
pip3 install --upgrade E:/Documents/tensorflow_gpu-2.2.0rc4-cp37-cp37m-win_amd64.whl
清华的镜像 https://pypi.tuna.tsinghua.edu.cn/simple/tensorflow-gpu
漫长的等待后:
![695c54a9af66f3c0f07d7994aef60dcf.png](https://i-blog.csdnimg.cn/blog_migrate/950c4e18ae3b70749aa372de6c793416.png)
测试一下:
import tensorflow as tf
a = tf.random_normal((10,10))
![cf0a33de87ea925ccf5a23beee30f8cf.png](https://i-blog.csdnimg.cn/blog_migrate/66eb1b1f8f1e8fe3992ab1e8ea8daed8.jpeg)
成功!可喜可贺!
8. 安装Keras
下面就是Keras的安装了,还是先查找对应关系,链接见7:
![09108ea24291c63317e582614f367995.png](https://i-blog.csdnimg.cn/blog_migrate/534cf1e138527d15b911ba831f3e409f.jpeg)
还是熟悉的pip:
pip3 install --upgrade E:/Documents/Keras-2.3.1-py2.py3-none-any.whl
安装完成:
![e929f02e12ca8101266065e98b8940fa.png](https://i-blog.csdnimg.cn/blog_migrate/06b3c4dfe20b9b6f6b43dc30d24bd4a0.png)
测试一下:
import keras
keras.__version__
![8e210fbc42b7e473423a086f79e71d34.png](https://i-blog.csdnimg.cn/blog_migrate/f859ca8196829aa6c31fd32a1e79b0f1.png)
成功运行!大功告成!
9. 最后总结一下我之前碰到的坑
我最开始是在笔记本上安装Tensorflow-GPU的。当时Anaconda,python都安装完了,按照教程直接安了Tensorflow-GPU,然后是Keras,结果运行的时候各种报错。。。
后来查了各种资料才知道还有这么多兼容问题。
下面贴出一些我碰到的坑,希望可以帮到大家:
首先是Keras报错问题:
- Keras requires TensorFlow 2.2 or higher.
- ModuleNotFoundError: No module named 'tensorflow.python.eager'
- AttributeError: module 'keras.backend.tensorflow_backend' has no attribute '_is_tf_1'
- ImportError: cannot import name 'np_utils'
以上这4个都是因为 tensorflow和keras的版本不对应 导致的,具体对应关系可以查看教程的7和8步
然后是Tensorflow的问题:
import tensorflow as tf
ImportError: No module named 'numpy.core._multiarray_umath'
ImportError: numpy.core.multiarray failed to import
解决方案:
pip install numpy --upgrade
2.
Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
下载TensorFlow的版本不支持cpu的AVX2编译导致(版本问题),解决方案:
卸载了重新安装正确的tf版本
最后祝大家都能一次成功!