赞
踩
本人大数据专业,最近在学习机器学习,想用自己的电脑跑程序,因此想研究一下tenforflow的使用
CPU就是中央处理器,常见的有AMD系列的R3、R5、R7和intel系列的i3、i5、i7、i9等等
GPU是图形处理器,也是常说的显卡,常见的有NVIDIA的GT、GTX、RTX系列,也有AMD的和intel的。显卡区分集显(主板自带显卡)、核显(CPU自带显卡)、独显(独立安装的显卡)、双显(同时有核显和独显)
(1)组成:
CPU | GPU | |
ALU(运算单元) | 25% | 90% |
Control(控制单元) | 25% | 5% |
Cache(缓存单元) | 50% | 5% |
(2)区别:
CPU核心数量较少,常见的只有16核
GPU核心数量较多,常见的有上千个核心
(3)形象比喻:
GPU核心是一群小学生,扎堆算加减法,做的是并行运算;CPU核心是几个老教授,能解微积分,CPU的核比GPU复杂得多。
(4)机器学习使用GPU的原因
然而机器学习中的一个重要概念——神经网络,其结构就是高度并行的,当然也有一些其他原因,因此使用GPU跑机器学习的程序,要比CPU速度快的多(同等级别下)。
(5)引文:
(1)介绍:
Aanconda是基于conda的Pythn数据f科学和机器学习开发平台,其包含了conda、Python、numpy在内的超过180个科学包及其依赖项,可以说是为了数据处理量身定制。
(2)虚拟环境:
在Python的使用过程中,我们常常由于不同Python版本以及不同第三方库版本的支持情况与相互之间的冲突情况,而需要创建不同的Python虚拟环境;在Anaconda的帮助下,这一步骤就变得十分方便
(3)Conda:
conda是包及其依赖项和环境的管理工具,本文中要用conda创建虚拟环境,因此需要介绍一下codna对虚拟环境的增删查操作
(4)虚拟环境操作:
- #a.创建虚拟环境
- conda create -n your_env_name python=X.X
- #your_env_name:虚拟环境名称
- #python=X.X:虚拟环境 python 版本
-
- #b.查看虚拟环境
- #查看创建的所有虚拟环境:
- conda env list
- #查看虚拟环境中安装的库文件:
- conda list
- #更新所有库文件:
- conda update --all
- #安装库文件:
- conda install package
- #更新库文件:
- conda update package
-
- #c.打开虚拟环境
- conda activate your_env_name
-
- #d.关闭虚拟环境(本质是切换回base虚拟环境)
- conda deactivate
-
- #e.删除虚拟环境
- conda remove -n your_env_name --all
(5)与Python的对应版本:
网上有很多Anacodna和对应Python版本的文章,然而更新最及时,最准确的还是官方的发行说明文档。在下方引文——Anaconda发行说明_官方中可以跳转到官方的发行说明,右侧是Anaconda各个版本,中间部分往下翻就可以找到其中内置Python的版本。
(6)下载Anaconda:
引文——Anaconda历史版本下载_官方、Anaconda清华镜像源下载
(7)修改虚拟环境存储路径
一般情况下,Anaconda的虚拟路径会存储在C盘中,如果C盘空间有限,可以将存储路径存放到其他位置,例如Anaconda下的env文件夹
先看效果:通过查看虚拟环境的命令可以看到,两个虚拟环境base和test的存储位置的都在F盘Anaconda下的env文件夹
方法:
首先找到C盘用户下的“.condarc”的文件,这里的用户应该是安装了anaconda的那个用户,如果没有找到,请跳转到引文——Anaconda新建的虚拟环境总是在c盘如何解决_CSDN。
随后在该文件的最后,加上
envs_dirs:
- F://Anaconda3//envs
- F:指定你路径所在的盘符
//Anaconda//envs:指定你要设置的路径
可以直接复制鄙人的
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
envs_dirs:
- F://Anaconda3//envs
(8)引文:
(1)介绍:
TensorFlow 是由 Google 团队开发的深度学习框架之一,它是一个完全基于 Python 语言设计的开源的软件。TensorFlow 的初衷是以最简单的方式实现机器学习和深度学习的概念,它结合了计算代数的优化技术,使它便计算许多数学表达式。
TensorFlow 可以训练和运行深度神经网络,它能应用在许多场景下,比如,图像识别、手写数字分类、递归神经网络、单词嵌入、自然语言处理、视频检测等等。TensorFlow 可以运行在多个 CPU 或 GPU 上,同时它也可以运行在移动端操作系统上(如安卓、IOS 等),它的架构灵活,具有良好的可扩展性,能够支持各种网络模型(如OSI七层和TCP/IP四层)。
TensorFlow 这个词由 Tensor 和 Flow 两个词组成,这两者是 TensorFlow 最基础的要素。Tensor 代表张量(也就是数据),它的表现形式是一个多维数组;而 Flow 意味着流动,代表着计算与映射,它用于定义操作中的数据流。
(2)引文:
(1)CUDA
(2)cuDNN
(3)引文
语言 | Python |
操作系统 | windows11 |
Python环境 | Anaconda |
Python版本 | 3.9.12 |
机器学习库 | tensorflow |
程序运行环境 | GPU |
版本 | |
IDE | Pycharm |
GPU | NVIDIA RTX 3060 |
CUDA | |
cuDNN |
大坑:如果你的操作系统是windows,请注意tensorflow的gpu版本对win的支持只到2.10.0版本,即时你的CUDA和cuDNN版本正确,也千万不要使用大于2.10.0的版本!!!
(1)首先确定电脑中是否有独显
右键文件资源管理器或者桌面的此电脑,点击管理,打开计算机管理
或者windows搜索计算机管理,打开计算机管理窗口
随后在计算机管理(本地)——设备管理器——显示适配器中,找到设备中安装的独显
(2)查看显卡算力
在下面的网站中查看该显卡的算力(仅适用于NVIDIA显卡),如果显卡算力低于5.0,则不建议使用tensorflow-gpu
如果你和鄙人一样是GeForce系列的显卡,在本网页中点击CUDA-Enabled GeForce and TITAN Products(支持CUDA的GeForce和TITIAN产品)就可以查看到不同显卡和对应的算力
(3)随后查看设备中显卡对应的最高CUDA版本
windows输入NVIDIA Control Panel进入NVIDIA控制面板,或者右键NVIDIA GeForce驱动程序进入NVIDIA控制面板
在控制面板的左下角,找到系统信息,点击组件,找到NVCUDA64.DLL,确定CUDA版本,鄙人的CUDA版本是12.3,说明所使用CUDA版本不能超过12.3
如果你找不到NVIDIA的控制面板,也可以在cmd中输入nvidia-smi查看相关信息
在Tensorflow官网确定要使用的版本
这里要注意官方网站给到的提示(非常重要)
Note: GPU support on native-Windows is only available for 2.10 or earlier versions, starting in TF 2.11, CUDA build is not supported for Windows. For using TensorFlow GPU on Windows, you will need to build/install TensorFlow in WSL2 or use tensorflow-cpu with TensorFlow-DirectML-Plugin
翻译过来是
注意:本机Windows上的GPU支持仅适用于2.10或更早版本,从TF 2.11开始,Windows不支持CUDA构建。要在Windows上使用TensorFlow GPU,您需要在WSL2中构建/安装TensorFlow,或者将TensorFlow cpu与TensorFlow DirectML插件一起使用
这提示已经很直白了,就是你如果是windows系统,要使用tensorflow-gpu的话,最高只能安装2.10版本的,除非你是用WSL2(Windows Subsystem for Linux)。鄙人最开始并没有注意到这个提示,直接去使用了2.12版本,CUDA和cuDNN则使用的是11.2和8.1,结果一切准备就绪之后发现测试程序找不到我的GPU,从头翻过来找问题的时候才注意到这问题,所以接下来的演示都会基于tensorflow-gpu2.10版本,所以Python版本,CUDA版本,cuDNN版本都随之确定。
Python | 3.7-3.10 |
CUDA | 11.2 |
cuDNN | 8.1 |
其实这里还有一个tensorflow的问题,就是tensorflow在2.12版本之后,将tensorflow和tensorflow-gpu进行合并了,只需要配置CUDA和cuDNN就可以直接调用gpu跑程序,然而现在windows只支持到2.10版本,所以不需要考虑这个问题。
如果你已经安装了Anaconda,则可以通过cmd查看python的版本
如果python版本后边有Anaconda,查看到的python版本是Anaconda内置的python,否则有可能是其他环境中的python版本
Anaconda的版本主要通过Python版本确定
CUDA下载地址:
cuDNN下载地址:
CUDA和cuDNN安装:
这里可以看这个博主的文章,我会结合自身的情况进行补充
CUDA、CUDNN在windows下的安装及配置-CSDN博客
鄙人的安装目录情况如下所示
nvcc.exe在F:\CUDA\CUDA Development\bin这个目录下
cuti64_101.dll在F:\CUDA\CUDA Development\extras\CUPTI\lib64这个目录下
cuDNN合并的bin、lib、include目录在F:\CUDA\CUDA Development这个目录下(lib目录合并时,合并的是lib下的x64目录)
鄙人的环境变量配置情况如下
1.创建conda虚拟环境
windows搜索Anaconda Prompt,并以管理员身份运行
使用下面的命令创建名为test的虚拟环境,python版本最好与anaconda内置的python版本相同
conda create -n test python=3.9.12
可以用conda env list进行查看
2.安装tensorflow
将当前虚拟环境设置为刚才创建的虚拟环境
conda activate test
可以看到最前面的base切换成了tset
随后使用命令
pip install tensorflow-gpu==2.10.0
如果出现下面的报错,有可能是python环境是32位的原因,详情在下面的网址
- ERROR: Could not find a version that satisfies the requirement tensorflow (from versions: none)
- ERROR: No matching distribution found for tensorflow
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
3.tensorflow测试
在创建的conda虚拟环境中,进入python命令行
import tensorflow as tf
tf.__version__
这样就可以在pycharm中使用该环境进行编写了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。