python + tensorflow谁用谁知道
0. 机器爱学习
目前,TensorFlow 和PyTorch 框架是业界使用最为广泛的两个深度学习框架,TensorFlow 是Google 于2015 年发布的深度学习框架,得益于Google 的影响力和发布时间早积累了大量开发者。同时在TensorFlow1.0 版本时期,Facebook 基于Torch 框架推出PyTorch ,接口设计精良,获得广泛好评,不过由于Facebook 隐私泄露问题,加上TensorFlow 2.0的发布,TensorFlow 的使用程度依然比PyTorch 广泛,所以P为辅主T技能。
1. Tensorflow环境
-
tensorflow+CUDA+cuDNN
在安装tensorflow 之前需要安装NVIDIA 提供的GPU 加速库CUDA 程序和cuDNN 神经网络加速库,并配置Path环境变量。
在windows10环境下,直接在环境里安装cpu和gpu版本两个版本即可,注意最好是相同的版本号。
不过NVIDIA显卡驱动中是自带CUDA的,自行安装可能是直接调用API和间接调用的区别,如果遇到tensorflow+CUDA+cuDNN版本问题的报错,最快的解决办法是删除tensorflow和tensorflow-gpu,直接用conda安装。
conda install tensorflow-gpu
-
关于
Could not create cudnn handle:
之类的报错如果后面说的是dll文件找不到,这种情况就是版本不匹配造成的报错,对应的dll文件名字有变动,这些地方设计的不太好,重新下载对应版本就行,很浪费时间,但是没得选。
如果是
CUDNN_STATUS_ALLOC_FAILED
,如下设置为仅在需要时申请显存即可。# 设置为仅在需要时申请显存 # 限制GPU资源的使用,此处allow_growth=True是动态分配显存,需要多少,申请多少,不是一成不变、而是一直变化 config = tf.compat.v1.ConfigProto(gpu_options=tf.compat.v1.GPUOptions(allow_growth=True)) sess = tf.compat.v1.Session(config=config)
-
在Linux环境下(ubuntu20.04)
环境变量根目录下
.bashrc
文件:
sudo gedit ~/.bashrc
安装多版本cuda:
# 查询CUDA版本号 apt-cache madison cuda # 安装指定版本CUDA sudo apt-get install cuda=10.0.130-1 # 修改环境变量即可
2. cpu和gpu的切换
tensorflow优先使用gpu版本,如果仅仅用tf做简单的处理(如最小二乘法拟合函数),cpu明显少调用些许文件,执行比gpu版本快,可用如下办法切换至cpu:
import os
#下面这行注释掉就是使用gpu,不注释就是使用cpu
os.environ [ "CUDA_VISIBLE_DEVICES" ] = "-1"