【深度学习系列】全面指南:安装TensorFlow的CPU和GPU版本

本博客旨在为初学者提供一份全面的指南,介绍如何根据个人电脑的配置选择并安装适合的TensorFlow版本。内容涵盖了如何查看电脑显卡型号以确定是安装CPU还是GPU版本的TensorFlow,创建Python虚拟环境,以及使用conda命令查找可用的TensorFlow版本。同时,文章还提供了安装过程中可能遇到的问题及其解决方法,确保读者能够顺利完成安装过程,并开始他们的机器学习或深度学习项目。

目录

一、安装anaconda

二、tensorflow安装cpu版本和gpu版本的区别

三、确定本电脑tensorflow安装cpu版本还是GPU版本

(一)查看显卡型号的步骤

(二) 点击性能

(三) 找到GPU,查看其型号

 (四)查看显卡的计算能力

 四、Tensorflow与Python、CUDA、cuDNN的版本对应表

五、安装CPU版本的tensorflow 

(一)创建虚拟环境

(二)查看虚拟环境

(三) 进入/激活虚拟环境

(四) 安装cpu版本的tensorflow

(五) 在jupyter中添加虚拟环境tensorflow-2.10.0的内核

六、使用conda search命令来查看所有可用的TensorFlow版本

 七、安装GPU版本的tensorflow

八、可能出现的报错

报错一:

出现报错一的原因: 

报错一的解决方法(切换镜像源)

 报错二及解决方法:

报错三及解决方案:

 报错四及解决方案:

报错五及解决方案:

一、安装anaconda

Anaconda | The Operating System for AI

anaconda想必大家都很熟悉了,就不在这里过多陈述。

二、tensorflow安装cpu版本和gpu版本的区别

TensorFlow 的 CPU 版本适用于普通计算机,无需特殊硬件,适合轻量级任务和小规模数据处理。

而 GPU 版本则需要 NVIDIA GPU 及相关驱动支持,能显著提升计算速度,适合大规模数据集和复杂模型的训练。选择版本时,应考虑硬件条件和任务需求。

三、确定本电脑tensorflow安装cpu版本还是GPU版本

下边是我在网上找到的参考:

首先,查看自己电脑显卡的型号。如果显卡是NVIDIA系列的,继续下面步骤;如果显卡不是NVIDIA系列的,直接装CPU版。 

注意:显卡是NVIDIA系列的,同样可以安装cpu版本。

步骤如下:

(一)查看显卡型号的步骤

①在电脑菜单栏里输入“任务管理器”,然后打开

(二) 点击性能

(三) 找到GPU,查看其型号

发现本电脑GPU是NVIDIA系列系列中的Geforce RTX 2060

 (四)查看显卡的计算能力

在CUDA GPU | NVIDIA 开发者这个链接,点击自己显卡对应的系列,查看显卡计算能力(computer capability)。如下图,本电脑显卡是 NVIDIA系列系列中的Geforce RTX 2060,其对应的计算能力是7.5。(官方文档中写的75,不知道为啥没有加小数点),故可以安装GPU版本。

 四、Tensorflow与Python、CUDA、cuDNN的版本对应表

在 Windows 环境中从源代码构建  |  TensorFlow (google.cn)

Tensorflow与Python、CUDA、cuDNN的版本对应表_tensorflow版本对应-CSDN博客

五、安装CPU版本的tensorflow 

这里我选择安装tensorflow-2.10.0,对应的python版本是3.7-3.10

(一)创建虚拟环境

打开Anaconda的Prompt命令窗口,在进入Prompt后,默认的是你的base环境。(不明白这里也没事)

为了方便管理,我们在此创建一个新的虚拟环境,用来使用2.10.0版本的tensorflow

创建了一个新的conda环境,名为"tensorflow-2.10.0",并指定在这个环境中使用Python 3.9版本,代码命令如下:

conda create -n tensorflow-2.10.0 python=3.9

选择y 

这样就是创建虚拟环境成功了,下边我们再验证一下。

(二)查看虚拟环境

输入conda info -e 或者conda env list可以查看你当前conda中的环境。若创建成功,prompt中显示如下:

下图有四个虚拟环境,最左列是虚拟环境的名字,最右列是对应的位置。

第四个环境名称是tensorflow-2.10.0,就是我们刚刚创建的那个,说明创建成功了。

(三) 进入/激活虚拟环境

输入"conda activate 环境名" 可以进入新环境,如:

conda activate tensorflow-2.10.0

这样就从最开始的base环境切换到名称为 tensorflow-2.10.0虚拟环境下了。

(四) 安装cpu版本的tensorflow

conda install tensorflow==2.10.0

 如果没有报错的话九安装成功啦!

接下来可以使用pip list 或者conda list,查看一下我们本地安装好的包,如下:

发现有了2.10.0版本的tensorflow

接着我们进入python环境,输入下方两行代码,第一行代码作用是再python中导入tensorflow,没有报错就再次验证成功安装好tensorflow了。

第二行代码,是查看tensorflow的版本。

import tensorflow as tf
tf.__version__

 从下图结果中可以看出,tensorflow的版本正是2.10.0

(五) 在jupyter中添加虚拟环境tensorflow-2.10.0的内核

在tensorflow-2.10.0这个虚拟环境中,命令行输入conda install ipykernel安装ipykernel

安装完成后进入Jupyter Notebook,创建文件时可以发现有了tensorflow-2.10.0这个内核

同样,打开一个文件后,可以在kernel->change kernel下选择想要的内核。 

六、使用conda search命令来查看所有可用的TensorFlow版本

conda search tensorflow 命令查看的是当前镜像下的所有可用的TensorFlow版本

此命令将检索当前配置的镜像源中所有可获取的TensorFlow版本,这包括了不同版本号、适配不同环境(如CPU或GPU)的版本。使用者可以通过这个命令来查找适合自己需求的TensorFlow版本,从而进行安装。

conda search tensorflow

按下回车键后,你会看到一个包含TensorFlow不同版本及其对应途径的列表。

conda search tensorflow-gpu -c conda-forge

 如果你想查看特定类型的版本(如GPU版本),可以在搜索命令后加上-c conda-forge,因为GPU版本的TensorFlow通常在conda-forge库中提供。

 七、安装GPU版本的tensorflow

可以参照下方两个链接中的步骤进行安装gpu版本的tensorflow

tensorflow-gpu版本安装教程(过程详细)_tensorflow gpu版本安装-CSDN博客

Tensorflow-gpu安装教程(详细)!!!_安装tensorflow-gpu-CSDN博客

我在网上看到许多评论提到,通过使用conda安装gpu版本的tensorflow,例如执行命令:conda install tensorflow-gpu==2.6.0,无需单独下载cuda和cudnn。然而,这种方法在我的尝试中并未成功。

同样,直接使用pip进行安装也未能成功,这是我参考的第二篇博客中提到的前两种方法。

因此,我决定接下来手动下载cuda和cudnn,并进行相应的配置以安装gpu版本的tensorflow。

待我最近有空时,会继续更新这一进程。

补充:

conda config --show能够显示出所有conda的config信息。

conda config --show channels只显示channels的信息

八、可能出现的报错

报错一:

出现报错一的原因: 

  1. 版本不兼容:Anaconda channels(镜像)可能不包含特定的2.15.0版本,特别是对于较旧的版本。

  2. 镜像源问题:尝试安装的特定版本可能在当前的镜像源中不可用。可以尝试更换其他可用的 Anaconda 或者 TensorFlow 的官方镜像源,或者更新到较新的版本。

报错一的解决方法(切换镜像源)

打开cmd切换到国内的其它镜像源

这里提供两个镜像源,分别是清华镜像、中科大镜像、,其它的小伙伴们可以在网上自行搜索

切换成清华镜像源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

切换成中科大镜像源

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/

切换成阿里云像源

conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/free/
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/main/

切换成华为云像源

conda config --add channels https://mirrors.huaweicloud.com/anaconda/pkgs/free/
conda config --add channels https://mirrors.huaweicloud.com/anaconda/pkgs/main/

切换成上海交通大学像源

conda config --add channels https://mirrors.sjtug.org/anaconda/pkgs/free/
conda config --add channels https://mirrors.sjtug.org/anaconda/pkgs/main/

注意!如果切换镜像后还是出现下载不了的情况,就先切换回默认源,然后再修改另一个可以使用的conda源(一定要先恢复默认,再换另一个!!!)

切换回默认源

conda config --remove-key channels

​​

 报错二及解决方法:

这个错误提示表明你遇到了"429 Too Many Requests",即请求次数过多,导致服务器暂时无法处理你的请求。这通常是因为在短时间内发送了过多的安装请求。为了解决这个问题,你可以按照以下步骤操作:

  1. 等待一段时间

  2. 检查网络状况

  3. 更换镜像源

报错三及解决方案:

有时,在安装特定版本的TensorFlow后,尝试导入时可能会遇到与numpy版本冲突的错误。解决这种冲突通常需要升级或降级numpy版本以使其与TensorFlow兼容。然而,当你解决了TensorFlow和numpy之间的兼容性问题后,可能会发现numpy又与scipy不兼容。如果调整numpy版本以适配scipy,那么它与TensorFlow的兼容性问题又会再次出现。

在这种情况下,我们可以考虑使用与TensorFlow兼容的Python版本来解决兼容性问题。每个版本的TensorFlow都支持多个Python版本,例如,安装2.10.0版本的TensorFlow时,它可能与Python 3.7、3.8、3.9和3.10等版本兼容。如果我们选择的是Python 3.7版本,但遇到了兼容性问题,我们可以尝试使用其他版本的Python来解决这个问题。

 报错四及解决方案:

有一个问题那就是在某些情况下,设置好镜像源后仍不能下载,可能是因为镜像源没有相关资源而导致没有安装到正确版本,每个人情况不同,或多或少会出现这样的问题。那么就尝试换其它镜像源。

报错五及解决方案:

在尝试安装2.15.0版本的tensorflow时,我使用了conda进行安装,但遇到了各种问题。最常见的问题是在当前channel下找不到此版本,即使更换了channel也无法正常安装。后来,我考虑使用pip install进行安装,通过运行`pip install tensorflow==2.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple`成功安装了所需的版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/735228.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Vercel 搭建自己的Dashy导航页

背景 Dashy 是一个开源的自托管导航页面配置服务,它具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。用户可以利用 Dashy 将自己常用的一些网站聚合起来,形成一个个性化的导航页面。 同类的竞品还有Heimdall, Flare 等。 可以通过Docker 等…

DAMA学习笔记(二)-数据治理

1.引言 数据治理(Data Governance,DG)的定义是在管理数据资产过程中行使权力和管控,包括计划、监控和实施。在所有组织中,无论是否有正式的数据治理职能,都需要对数据进行决策。建立了正式的数据治理规程及…

深入学习Java1213新特性

一、关于Java生态圈 二、Java老矣,尚能饭否? 三、JDK各版本主要特性 四、JDK与IDE的下载与安装 五、Java12新特性 1.switch表达式(预览)

以太坊==MetaMask获取测试币最新网址

估算分数https://community.infura.io/t/unable-to-receive-sepolia-eth-from-faucet/7715 Gitcoin Passport 水龙头地址,填入自己的测试地址 水龙头项目地址 GitHub - pk910/PoWFaucet: Modularized faucet for EVM chains with different protection methods (…

DNF手游攻略:云手机辅助流光星陨刀详细攻略大全!

DNF手游中,流光星陨刀是鬼剑士的专属神器之一,拥有快速的攻击速度和优秀的物理与法术攻击属性,因其出色的性能和未来升级的潜力,成为广大玩家关注的焦点。 流光星陨刀的背景与起源 流光星陨刀作为鬼剑士的标志性武器之一&#xf…

Go 语言学习笔记之数组与切片

大家好,我是码农先森。 数组与切片的区别 在 Go 语言中,数组和切片是两种不同的数据结构,它们之间有以下主要区别。 参数长度: 数组(Array):数组的长度是固定的,在创建时就需要指…

CMMM Plus+ Calculus Update 超级游戏大作 游戏说明

资源链接 关卡编辑器 ◽️使用 WASD 移动视图。 ◽️LMB 放置单元格。 ◽️Space LMB 删除单元格。Ctrl Space LMB 删除所有相同类型的单元格。 ◽️Q / E 旋转单元格。 ◽️Z / X 在单元格类别之间切换。 ◽️键 1-9 快速选择单元格。 ◽️按 F 显示可拖动的图块。 ⌨️控…

机器学习好神奇,来看看Lasso的超参数调整与模型选择

目录 一、什么是机器学习?二、稀疏建模介绍三、Lasso回归简介四、Lasso超参数调整与模型选择 一、什么是机器学习? 机器学习是一种人工智能技术,它使计算机系统能够从数据中学习并做出预测或决策,而无需明确编程。它涉及到使用算…

贪心算法——最少跳跃步数(C++)

未来,未来。 ——2024年6月17日 题目描述 给定一个含n(1≤n≤1000)个非负整数数组nums(0≤nums[i]≤1000),数组中的每个元素表示在该位置可以跳跃的最大长度,假设总是可以从初始位置0到达最后一…

【C++】————类和对象(中)

作者主页: 作者主页 本篇博客专栏:C 创作时间 :2024年6月22日 一、类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情 况下&#x…

MySQL数据库中的索引知识

MySQL数据库中索引的作用是用来加快数据的查询速度。 索引 index(表的层面) 在数据库中使用select来查询数据的时候会一条一条得去查询符合要求的数据,而索引就相当于在这张表中依据某一个字段的数值给这张表的数据创建了一个目录。目录帮…

MK的前端精华笔记

文章目录 MK的前端精华笔记第一阶段:前端基础入门1、(1)、(2)、 2、3、4、5、6、7、 第二阶段:组件化与移动WebAPP开发1、(1)、(2)、 2、3、4、5、6、7、 第三…

发布微信小程序需要icp证吗?

微信小程序需要办理ICP许可证吗? 微信小程序需不需要办理ICP许可证,具体要看你的小程序类目是什么,还要看你的小程序具体是做什么的? 根据《互联网信息服务管理办法》 第四条 国家对经营性互联网信息服务实行许可制度&#xff1b…

微信小程序反编译 2024 unveilr.exe

ps:一开始用的反编译工具是wxappUnpacker,后面改为 unveilr.exe 1.先找到小程序安装目录“E:\聊天记录\WeChat Files\Applet”,要反编译小程序的包 文件夹下的名字对应的是小程序ID,如果不确定是哪个,可以删除->打…

Open3D点云处理学习

Color ICP Colored point cloud registration — Open3D 0.11.0 documentation Colored point cloud registration - Open3D 0.18.0 documentation 展示了使用color-icp结果 对比gicp错误处理结果 intel自己的论文 Colored Point Cloud Registration Revisited 优化方程 参…

JVM专题六:JVM的内存模型

前面我们通过Java是如何编译、JVM的类加载机制、JVM类加载器与双亲委派机制等内容了解到了如何从我们编写的一个.Java 文件最终加载到JVM里的,今天我们就来剖析一下这个Java的‘中介平台’JVM里面到底长成啥样。 JVM的内存区域划分 Java虚拟机(JVM&…

51单片机STC89C52RC——6.1 中断系统

一,文字层面理解 反正我看下面的几段文字时脑壳没有正常运转。一个头几个大 中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。 当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这…

springboot优雅shutdown时异步线程安全优化

前面针对graceful shutdown写了两篇文章 第一篇: https://blog.csdn.net/chenshm/article/details/139640775 只考虑了阻塞线程,没有考虑异步线程 第二篇: https://blog.csdn.net/chenshm/article/details/139702105 第二篇考虑了多线程的安全…

Linux DNS配置文档

一、问题描述 1. 无法在浏览器通过域名访问百度; 2. 无法在终端 ping 通百度,例如:ping www.baidu.com 3. 可以 ping 通公网地址,例如:ping 114.114.114.114 或 ping 8.8.8.8 二、问题原因 域名解析 DNS 配置错误&am…

如何快速绘制logistic回归预测模型的ROC曲线?

临床预测模型,也是临床统计分析的一个大类,除了前期构建模型,还要对模型的预测能力、区分度、校准度、临床获益等方面展开评价,确保模型是有效的! 其中评价模型的好坏主要方面还是要看区分度和校准度,而区分…