【深度学习系列】全面指南:安装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`成功安装了所需的版本。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

厂里资讯之异步通知文章上下架

kafka及异步通知文章上下架 1)自媒体文章上下架 需求分析 2)kafka概述 消息中间件对比 特性ActiveMQRabbitMQRocketMQKafka开发语言javaerlangjavascala单机吞吐量万级万级10万级100万级时效性msusmsms级以内可用性高(主从)高(主从&#…

在 iPhone 上恢复已删除联系人的 5 种简便方法

想象一下:您正在 iPhone 上滚动并搜索要拨打的联系人,但却找不到任何结果。然后您想起昨晚您试图删除一个名字相似的联系人,但不知何故删除了错误的联系人。或者您的孩子错误地删除了一些联系人。这些情况足以让您感到迷茫。但别担心&#xf…

五种HTTP数据传输方式

在前端开发过程中,后端主要提供 http 接口来传输数据,而这种数据传输方式主要有五种: url paramqueryform-urlencodedform-datajson 下面就让我们一起来了解一下在Nest.js中如何使用这五种HTTP数据传输方式: 一,创建项目 使用nest new 创建一个nest的项目 nest new 项目名称 …

1panel OpenResty 设置网站重定向

当我们部署网站时需要,输入"cheshi.com"域名回车,希望他自动跳转https://cheshi.com/indx/,而不是直接跳转https://cheshi.com时可以利用重定向来实现, 这里演示的是 1panel 如何设置(nginx 貌似也是这样配…

IPv6 address status lifetime

IPv6 地址状态转换 Address lifetime (地址生存期) 每个配置的 IPv6 单播地址都有一个生存期设置,该设置确定该地址在必须刷新或替换之前可以使用多长时间。某些地址设置为“永久”并且不会过期。“首选”和“有效”生存期用于指定其使用期限和可用性。 自动配置的…

程序猿大战Python——面向对象——继承进阶

方法重写 目标:掌握方法的重写。 当父类的同名方法达不到子类的要求,则可以在子类中对方法进行重写。语法: class 父类名(object):def 方法A(self):代码... class 子类名(父类名):def 方法A(self):代码... 例如,一起来完成&…

八爪鱼现金流-025-工作的终极目标,不是为了成为更好的员工

工作的终极目标,不是为了成为更好的员工。 而是解放时间和收入自动化 打造自己的被动收入!!! 八爪鱼现金流 八爪鱼

学生选课管理系统(JAVA课设)PS:有前端界面

1.课设要求描述 实现系统的所有功能,包括但不限于: 学生信息管理(增加、删除、修改、查询)课程信息管理选课操作成绩管理 2.制作思路及基础讲解 此项目主要是用于完成大二下半学期的JAVA大作业,也可当作课设&…

SpringMVC系列七: 手动实现SpringMVC底层机制-上

手动实现SpringMVC底层机制 博客的技术栈分析 🛠️具体实现细节总结 🐟准备工作🍍搭建SpringMVC底层机制开发环境 实现任务阶段一🍍开发ZzwDispatcherServlet🥦说明: 编写ZzwDispatcherServlet充当原生的DispatcherSer…

摄像头画面显示于unity场景

🐾 个人主页 🐾 🪧阿松爱睡觉,横竖醒不来 🏅你可以不屠龙,但不能不磨剑🗡 目录 一、前言二、UI画面三、显示于场景四、结语 一、前言 由于标题限制,这篇文章主要是讲在unity中调用摄…

【网络安全常用术语解读 :什么是0day、1day、nday漏洞】

脆弱性攻击的时间窗被称作脆弱性窗口。通常情况下,一个安全漏洞的时间越久,攻击者就会有更多的机会去攻击它。 2. 0day 漏洞 0天漏洞,也被称作"零日漏洞",是指尚未由供应商公布的缺陷,表示攻击者已知晓该缺…

Go 与 Java 字符编码选择:UTF-8 与 UTF-16 的较量

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

仿饿了么加入购物车旋转控件 - 自带闪转腾挪动画 的按钮

, mWidth - mCircleWidth, mHeight - mCircleWidth); canvas.drawRoundRect(rectF, mHintBgRoundValue, mHintBgRoundValue, mHintPaint); //前景文字 mHintPaint.setColor(mHintFgColor); // 计算Baseline绘制的起点X轴坐标 int baseX (int) (mWidth / 2 - mHintPaint.m…

Vue3+TypeScript项目实战——打造雨雪交加的智慧城市

个人简介 👀个人主页: 前端杂货铺 ⚡开源项目: rich-vue3 (基于 Vue3 TS Pinia Element Plus Spring全家桶 MySQL) 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 &#x1…

将WIN10的wifi上网分享给以太网接口

目录 打开网络设置设置属性点这里的设置将wlan主机的以太网接口IP设为自动获取 如果连接不成功,拔网线重连一次 打开网络设置 设置属性 点这里的设置 将wlan主机的以太网接口IP设为自动获取 如果连接不成功,拔网线重连一次

Interview preparation--elasticSearch倒排索引原理

搜索引擎应该具备哪些要求 查询速度快 优秀的索引结构设计高效率的压缩算法快速的编码和解码速度 结果准确 ElasiticSearch 中7.0 版本之后默认使用BM25 评分算法ElasticSearch 中 7.0 版本之前使用 TP-IDF算法 倒排索引原理 当我们有如下列表数据信息,并且系统…

网易被裁,腾讯面试被怼,幸得字节内推,5面顺利拿下offer

幸好经过师兄的内推拿到了字节跳动的面试机会,最终历经5面斩获了字节跳动(抖音Android岗)offer,不得不感叹一下自己的工作生涯实在是太顺了。下面简单分享一下我这次5面字节跳动的一个真题情况,希望能够对大家有所帮助…

Redis 学习笔记(2)

目录 1 Redis的持久化1.1 RDB持久化方案1.2 AOF持久化方案 2 Redis架构2.1 主从复制架构2.2 哨兵集群设计2.3 哨兵集群设计 3 Redis事务机制4 Redis过期策略与内存淘汰机制4.1 过期策略4.2 内存淘汰机制 5 Redis高频面试题4.1 缓存穿透4.2 缓存击穿4.3 缓存雪崩 1 Redis的持久化…

Centos 配置安装Mysql

linux安装配置mysql的方法主要有yum安装和配置安装两种,由于yum安装比较简单,但是会将文件分散到不同的目录结构下面,配置起来比较麻烦,这里主要研究一下配置安装mysql的方法 1、环境说明 centos 7.9 mysql 5.7.372、环境检查 …

Day2: 双指针977 滑动窗口209 循环不变量原则59

题目977. 有序数组的平方 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<int> sortedSquares(vector<int>& nums) {int left0;int rightnums.size()-1;vector<int> result(nums.size(),0);int iright;while(left<right){i…