Tensorflow亲妈级安装教程(CPU和GPU版)
目录
一.Tendorflow
上来先讲个笑话:献丑了(手动滑稽)
二.Anaconda安装
参考下面这篇文章
安装anaconda的几个避坑点_深海鱼肝油ya的博客-CSDN博客
三.Tensorflow安装
参考文章如下:
tensorflow详细安装教程(Win10, Anaconda,Python3.9)_Yan_Yancy的博客-CSDN博客_tensorflow安装教程
环境搭建04——如何选择安装的TensorFlow版本?_命名无能的博客-CSDN博客_tensorflow哪个版本
CUDA、cuDNN、Pytorch、TensorFlow、Keras以及Python的对应版本总结_WaitFoF的博客-CSDN博客_cuda和python版本对应关系
TensorFlow安装教程_诸神缄默不语的博客-CSDN博客_tensorflow安装
那就记录一下过程吧,要装就装GPU版本的,还有CPU版本的?狗都不装!
首先得搞明白自己电脑的驱动版本,然后是python版本,还要确定一下自己想要安装的tensorflow版本,由想要安装的tensorflow版本来确定CUDA版本和cuDNN版本。
至于的关系可以看下面那篇文章
深度学习之CUDA与cuDNN_知更鸟k的博客-CSDN博客_cuda cudnn区别
我在开启这个系列的文章之前,重装了我的python环境,现在用的anaconda,其python解释器的版本是 3.9.13,然后查看一下自己的驱动版本,一般我们在电脑的右下角就可以到驱动的小图标,点一下,
可以看到我的显卡的驱动是451.67,显卡是(GeForce 940MX),在官网上(参考上面几篇博客)可以查到我的显卡的算力是5.几(没记错的话),≥3.5即可安装GPU版本的,否则就去下CPU版本吧。
点击右下角系统信息,会有详细信息
然后咱们参考上面几篇文章可以知道,python3.9版本对应的tensorflow,CUDA,cuDNN的版本分别可以是哪些,经过查阅之后,发现又一件事,就是我本科的时候装过cuda,版本是10.0.130,这就难受了,因为我的显卡驱动版本装不了更高的,但是10.0和python3.9又不匹配,所以我就得去升级驱动,才能再升级CUDA(因为CUDA的版本也受显卡驱动版本的限制),再下载对应版本的cuDNN。
现在的情况是这样的,我的python版本可以匹配到2.几版本的tensorflow,但是这样的话,我就得升一下驱动,然后重装一下cuda和cuDNN;另一种解决办法是直接把python降级,降成3.7的。至于使用哪种办法,明早再说!睡觉!
睡了一觉很舒服,就是前几天一直晚睡早起,这种状态得不到持续,昨天和今天都睡到八点多,还是要早睡早起呢,不说了,干活!
今天早起又向师哥请教了一下,直接在anaconda下创建按一个python3.7的环境就行了,用惯了原生的python解释器,anaconda的很多功能还是比较生,习惯习惯就好了,简单,省事,冲!
创建虚拟环境参考下面两篇文章:
anaconda创建一个新的虚拟环境_准时准点睡觉的博客-CSDN博客_anaconda创建虚拟环境
Anaconda创建虚拟环境_HDD615的博客-CSDN博客_anaconda创建虚拟环境
然后在此虚拟环境下安装指定版本的GPU版的tensorflow,参考下面的文章:
安装指定版本的tensorflow-gpu_Young__Fan的博客-CSDN博客
但是安装完成之后用jupyter notebook测试却又报如下错误:
No module named 'tensorflow'
直接在命令行下测试报错如下:
TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
1. Downgrade the protobuf package to 3.20.x or lower.
2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).
More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
这时候就体现出英语好的重要性了,看第一条解决方案,把protobuf包降级到3.20.x或者更低。
降级就直接执行安装语句即可,如下:
pip install protobuf==3.20.0
然后再导入就没问题了啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈(舒服,又能开开心心的学习了)
四.测试是否安装成功及GPU是否可用
测试代码:
import tensorflow as tf
if __name__=="__main__":
a = tf.constant(1.)
b = tf.constant(2.)
print(a + b)
print(tf.__version__)
print(tf.test.gpu_device_name())
print(tf.test.is_gpu_available())
输出如下:
tf.Tensor(3.0, shape=(), dtype=float32)
2.0.0
/device:GPU:0
True
可以看到使用的GPU是0号GPU,打开任务管理器–>性能,而咱们要用这个性能高的1号GPU(可以在网上查到哪个性能好)
然后我仔细看了一下程序的输出信息,发现好像设备0就是英伟达的显卡GT 940MX,md,那我白搞半天???焯!!!下面是我提取的是部分信息。可以看到就是我的独显940MX。
2022-10-30 18:53:02.754919: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Found device 0 with properties:
name: GeForce 940MX major: 5 minor: 0 memoryClockRate(GHz): 1.189
2022-10-30 18:53:02.755774: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Adding visible gpu devices: 0
name: GeForce 940MX major: 5 minor: 0 memoryClockRate(GHz): 1.189
2022-10-30 18:53:04.475985: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1304] Created TensorFlow device (/device:GPU:0 with 1384 MB memory) -> physical GPU (device: 0, name: GeForce 940MX, pci bus id: 0000:01:00.0, compute capability: 5.0)
那就先不管了,后面等到跑项目的时候再说吧,现在跑跑吴老师课后的demo,效率上的差异看不大出来。
然后下来再解决一下jupyter notebook如何在虚拟环境下正常运行,之前导入tensorflow显示没有这个模块。
#查看anaconda中现在有哪些虚拟环境(base是最初的)
conda env list
#激活某个虚拟环境
conda activate 虚拟环境名
然后解决这个问题请看下面的这篇文章
Jupyter Notebook如何切换Anaconda虚拟环境_ㄣ知冷煖★的博客-CSDN博客_jupyter notebook 切换anaconda环境
配置好了之后在要运行的文件所在的目录下开启cmd,输入jupyter notebook即可,然后按照上面那篇文章里说的且换内核即可。so easy!
安装时如果需要设置清华源,也可以设置为临时用清华源,格式如下:
pip install package -i https://pypi.tuna.tsinghua.edu.cn/simple
五.降级
我学完机器学习之后,就开始了深度学习的课程,网上吴老师的深度学习课程可以搜到的免费资源是用的tf1.X版本的,所以我就把2.0.0降级到了1.15.0
方法和安装时一样:
pip install tensorflow-gpu==1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
安装时之前的安装2.0.0版本的tf及其相关包会自动检测并卸载。