深度学习笔记(二)——Tensorflow环境的安装
本篇文章只做基本的流程概述,不阐述具体每个软件的详细安装流程,具体的流程网上教程已经非常丰富。主要是给出完整的安装流程,以供参考
环境很重要
一个好的算法环境往往能够帮助开发者事半功倍,入门学习的时候往往搭建好环境就已经成功了一半。
在机器学习或者深度学习的设计研究中,人们往往会使用已经有的网络框架来构建网络模型和设计各种识别分类或者生成算法。
主要可以给我们学习和使用的框架这里推荐两个:Tensorflow或者Pytorch。
当然也有很多其它优秀的框架等待我们学习和使用,例如国内有百度的PaddlePaddle飞桨、Caffe等。后面的内容我们首先在Tensorflow或者Pytorch上开展,毕竟这是大家使用最多的两个框架。
下面是一些主流的网络框架及其标志

1、安装Python
安装python想必各位都已经看过网上各种各样的教程了。但是这里还是多说一句,希望大家无论在windows平台还是linux平台上,都安装conda等环境管理工具使用。学习的过程中往往需要复现他人的大量算法,学习别人撰写代码的经验,所以会经常安装不同类型的环境,使用conda能够极大的便捷我们在环境上的使用。关于python的安装版本,在研究19年以前的算法上推荐使用python3.6,近几年的算法则3.7 3.8均可。安装conda时注意系统环境变量的设置。
常用的conda命令和pip安装命令可以参考:
conda常用命令
2、需要一个好用的IDE或者编辑器
这里推荐使用Pycharm或者VSCode,提示一下,Pycharm的专业版对学生可以申请免费使用, 用学信网的学历认证进行申请,每次更新一次。当然,也完全可以使用免费的VSCode
3、对于GPU设备,安装CUDA工具包
如果你的设备有英伟达的CPU设备,那么你可以进一步安装CUDA和cuDNN,CUDA是利用GPU中CUDA进行计算的关键软件和驱动,cuDNN则专门针对深度学习提供了一些开发接口,二者是利用GPU进行深度学习的关键,同时CUDA和cudnn的版本之间存在严格对应关系。

上图是英伟达官网的版本要求,特点要关注表格第一列和第二列。下载对应版本的CUDA和cudnn安装。
考虑实际,往往会安装多个CUDA版本来适应不同版本的深度学习框架,注意安装时在系统环境变量中设置清楚。
对windows用户,安装CUDA前最好安装Visual Studio并安装C++工作负载。新卡安装2019,旧卡安装2017(当然VS得选项并非必要条件,如果以后想深入学习NN算法,那最好先行安装一个。后面的内容默认安装了19,或17的任何一个版本,来对windows提供完整的C++支持)

值得注意:在最新的RTX30系列显卡以及之后的显卡中不在支持CUDA11以前的版本。意味着CUDA10.0和10.1,10.2三个大版本将无法直接在新显卡使用,Tensorflow2.4.0以及之前版本,Pytorch1.7.1及以前的版本无法正常使用,如果有需要可以在英伟达官网下载适配新卡的专用包安装使用。
安装cuda前请先明确是否有特定的版本限制,深度学习框架一搬均有特定版本cuda限制。
4、给python安装相关包
在正确安装conda后,这里我们举例构建一个初学Tensorflow的基础环境
第一步,创建虚拟环境并打开虚拟环境:
# bash / Shell
conda create -n tensorflow260 python=3.7conda activate tensorflow260
第二步,安装相关工具包,以下未指定版本,pip将安装最新版本,只适用学习,复现程序时需要安装指定版本的包,这步在环境配置中及其重要,正确安装完整的,对应版本的包是后续研究的基础。
# bash / Shell
# 跟新pip
pip install --upgrade pip# 检查当前环境中包情况,并无任何ERROR和WORNING
pip list# 直接安装指定版本tensorflow:pip install tensorflow==x.x.x
pip install tensorflow
# pip会自动安装需要的各种依赖包,下载过慢的话可以选择切换下载服务器(下例为中科大镜像):
pip install tensorflow -i https://pypi.mirrors.ustc.edu.cn/simple/# 安装TensorBord
pip install tensorbord# 安装绘图工具
pip install matplotlib# 安装机器学习常用库
pip install scikit-learn
5、TensorFlow旧版本对CUDA的支持情况
在安装旧版本TensorFlow前需要先安装对应的CUDA和cudnn。

6、检查环境
检查cuda:
# 查看cuda版本
nvcc -V
检查cudnn,在cuda安装目录中执行测试程序,例如在路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\extras\demo_suite下执行bandwidthTest.exe和deviceQuery.exe,不报错则说明安装成功。
检查tensorflow对gpu支持
# 激活虚拟环境后:
pythonimport tensorflow as tf
# tensorflow1,如果返回True则说明安装成功
print(tf.test.is_gpu_available())
# tensorflow2,如果列表不为空说明成功
print(tf.config.list_physical_devices('GPU'))
应用实例
考虑tensorflow目前具有众多版本,所以后面相关的tf博客除非特殊说明,均使用以下软件环境:
cuda = 11.8 # CUDA也可以使用11.2版本
python=3.7
numpy==1.19.5
matplotlib== 3.5.3
notebook==6.4.12
scikit-learn==1.2.0
tensorflow==2.6.0
keras==2.6.0
同时在安装好CUDA后记得检查环境变量,系统PATH中应该包含:

相关文章:
深度学习笔记(二)——Tensorflow环境的安装
本篇文章只做基本的流程概述,不阐述具体每个软件的详细安装流程,具体的流程网上教程已经非常丰富。主要是给出完整的安装流程,以供参考 环境很重要 一个好的算法环境往往能够帮助开发者事半功倍,入门学习的时候往往搭建好环境就已…...
Java实现在线编辑预览office文档
文章目录 1 在线编辑1.1 PageOffice简介1.2 前端项目1.2.1 配置1.2.2 页面部分 1.3 后端项目1.3.1 pom.xml1.3.2 添加配置1.3.3 controller 2 在线预览2.1 引言2.2 市面上现有的文件预览服务2.2.1 微软2.2.2 Google Drive查看器2.2.3 阿里云 IMM2.2.4 XDOC 文档预览2.2.5 Offic…...
阿里云OSS上传视频,可分片上传
uniappH5实现 阿里云OSS上传视频 示例图: 上传视频完整示例代码: 使用npm安装SDK开发包,安装命令为 npm install ali-oss --save accessKeyId 和 accessKeySecret 还有 bucket 替换成你的就行。 multipartUpload 的第一个入参是&#x…...
Linux第三次课后作业
1.使用while和until语句编写脚本程序,计算1到100的和。 i1 s0 while(i<100) {sii} echo(s)sum0 i0 until test $num -eq 101 do #下面两个均为反斜杠 sumexpr $sum $i iexpr $num 1 done echo "the result is $sum"2.编写脚本程序备份用户指定的文件…...
WordPress后台仪表盘自定义添加删除概览项目插件Glance That
成功搭建WordPress站点,登录后台后可以在“仪表盘 – 概览”中看到包括多少篇文章、多少个页面、多少条评论和当前WordPress版本号及所使用的主题。具体如下图所示: 但是如果我们的WordPress站点还有自定义文章类型,也想在概览中显示出来应该…...
.Net6使用SignalR实现前后端实时通信
代码部分 后端代码 (Asp.net core web api,用的.net6)Program.cs 代码运行逻辑: 1. 通过 WebApplication.CreateBuilder(args) 创建一个 ASP.NET Core 应用程序建造器。 2. 使用 builder.Services.AddControllers() 添加 MVC 控…...
基于SpringBoot+Vue的时装服饰商城购物系统
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
近4w字吐血整理!只要你认真看完【C++编程核心知识】分分钟吊打面试官(包含:内存、函数、引用、类与对象、文件操作)
🌈个人主页:godspeed_lucip 🔥 系列专栏:C从基础到进阶 🏆🏆关注博主,随时获取更多关于C的优质内容!🏆🏆 C核心编程🌏1 内存分区模型🎄…...
pytest学习和使用-pytest如何进行分布式测试?(pytest-xdist)
1 什么是分布式测试? 在进行本文之前,先了解些基础知识,什么是分布式测试?分布式测试:是指通过局域网和Internet,把分布于不同地点、独立完成特定功能的测试计算机连接起来,以达到测试资源共享…...
虚拟ip可以解决所有的安全问题吗
虚拟IP(Virtual IP)是一种网络技术,可以把多台物理服务器或设备组合成一个逻辑集群,并且使用同一个IP地址对外提供服务。虚拟IP具有负载均衡、故障切换和高可用性等优势,同时还可以作为一种安全措施来增加系统的抗攻击…...
【数据库原理】(27)数据库恢复
在数据库系统中,恢复是指在发生某种故障导致数据库数据不再正确时,将数据库恢复到已知正确的某一状态的过程。数据库故障可能由多种原因引起,包括硬件故障、软件错误、操作员失误以及恶意破坏。为了确保数据库的安全性和完整性,数…...
施工企业工程管理信息化、智能化需求分析
一、引言 随着科技的飞速发展,信息化、智能化技术正在逐步改变各行各业的工作方式。对于施工企业而言,传统的工程管理方式已难以满足现代工程项目的复杂需求。为了提高效率、降低成本并确保工程的安全与质量,施工企业工程管理迫切需要进入信…...
Centos7 安装与卸载mysql
卸载 ps ajx | grep mysql : 查看当前服务器是否有mysql 没有的话就不需要卸载咯。 centos7 通过yum下载安装包通常是以.rpm为后缀,rpm -qa 可以查看当前服务器上所有的安装包: rpm -qa | grep mysql | xargs yum -y remove :将查询到的mysql…...
ASP.NET Core 的 Web Api 实现限流 中间件
Microsoft.AspNetCore.RateLimiting 中间件提供速率限制(限流)中间件。 它是.NET 7 以上版本才支持的中间件,刚看了一下,确实挺好用,下面给大家简单介绍一下: RateLimiterOptionsExtensions 类提供下列用…...
Mysql字段的各种时间类型
DATE: 特点:存储日期,不包含时间。示例: CREATE TABLE example_date (id INT PRIMARY KEY, event_date DATE ); INSERT INTO example_date (id, event_date) VALUES (1, 2023-01-11); TIME: 特点:存储时间,不包含日…...
Armv8-R AArch32 architecture概念学习
提示 该博客主要为个人学习,通过阅读官网手册整理而来(个人觉得阅读官网的英文文档非常有助于理解各个IP特性)。若有不对之处请参考参考文档,以官网文档为准。阅读该文章,可以先查看AArch64 Exception Model学习&…...
linux手动安装 vscode-server
适用场景 很多时候,我们需要在本机(比如windows)通过remote ssh访问远程服务器(一般是ubuntu),但经常出现 vscode 一直连不上远程服务器的情况,看一下 log: 这个log表示远程服务器…...
【Maven】009-Maven 简单父子工程搭建
【Maven】009-Maven 简单父子工程搭建 文章目录 【Maven】009-Maven 简单父子工程搭建一、需求说明1、结构2、第三方库 二、工程搭建1、父工程第一步:创建父工程第二步:引入公共依赖 lombok 和管理 hutool 依赖版本 2、公共子模块第一步:创建…...
verilog编程题
verilog编程题 文章目录 verilog编程题序列检测电路(状态机实现)分频电路计数器译码器选择器加减器触发器寄存器 序列检测电路(状态机实现) module Detect_101(input clk,input rst_n,input data,o…...
What is `addArgumentResolvers` does in `WebMvcConfigurer` ?
addArgumentResolvers 在SpringMVC框架中,主要用于向Spring容器注册自定义的参数解析器。在处理HTTP请求时,SpringMVC会使用这些参数解析器将请求中的数据(如查询参数、路径变量、表单数据等)转换并注入到控制器方法的参数中。 使…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
