深度学习的环境搭建(window+pytorch)

news2024/11/20 19:38:03

1.检查是否安装CUDA

CUDA(Compute Unified Device Architecture)是由 NVIDIA 推出的一种并行计算平台和编程模型,用于利用 NVIDIA GPU(Graphics Processing Unit)的强大计算能力进行高性能计算任务。CUDA 的主要特点是可以利用 GPU 上的数千个并行处理单元来加速计算,使得许多复杂的计算任务可以在较短时间内得到结果。

CUDA 在众多领域中得到了广泛应用,如机器学习、深度学习、计算机视觉、数值计算等。

NVIDIA GPU想要进行深度学习任务,那么CUDA是必须要安装的。以下是一些检查您是否已安装CUDA的方法:

在终端或命令提示符中输入以下命令:

nvcc --version

如果CUDA已正确安装,则将显示CUDA版本号和其他相关信息。
已安装的提示:
在这里插入图片描述

1.2.安装CUDA

通过运行以下命令来查看CUDA驱动程序的状态:

nvidia-smi

以此来查看自己可以安装的CUDA版本。
在这里插入图片描述

cuda下载地址:https://developer.nvidia.com/cuda-toolkit-archive

选择对应的版本进行下载!
在这里插入图片描述

cuda安装教程: cuda安装 (windows版)

1.3cuDNN的下载与配置

cuDNN(CUDA Deep Neural Network library):是NVIDIA打造的针对深度神经网络的加速库,是一个用于深层神经网络的GPU加速库。如果你要用GPU训练模型,cuDNN不是必须的,但是一般会采用这个加速库。

cuDNN下载地址:https://developer.nvidia.com/rdp/cudnn-download

需要注册账户登录下载!选择cuda对应的版本下载。

在这里插入图片描述
cuDNN 解压缩,会得到下面的文件:

在这里插入图片描述
解压后,有三个文件夹,把三个文件夹拷贝到cuda的安装目录下。

拷贝时看到,CUDA 的安装目录中,有和 cuDNN 解压缩后的同名文件夹,这里注意,不需要担心,直接复制即可。(以下为cuda自定义安装目录)

在这里插入图片描述

3.安装Anaconda

Anaconda是一个基于Python的数据科学平台,包含了众多数据科学工具和库,可以方便地进行数据分析、数据可视化、机器学习和深度学习等任务。Anaconda包含了conda包管理器和Anaconda Navigator图形化用户界面,可以方便地创建、管理和使用Python环境、软件包和工具。

官网访问速度慢。

清华镜像站下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

安装教程: 最新Anaconda3的安装配置及使用教程

4 使用conda安装深度学习所需包

深度学习框架是一种编程工具,用于实现和训练神经网络模型。以下是一些常见的深度学习框架:

TensorFlow: 由Google开发的开源深度学习框架,支持多种编程语言,包括Python、C++、Java等。TensorFlow具有高度灵活性和可扩展性,支持分布式训练和推理,并且在各种应用场景中都得到了广泛的应用。

PyTorch: 由Facebook开发的Python深度学习框架,提供动态计算图和自动求导功能,具有易用性和高效性。PyTorch在自然语言处理、计算机视觉、语音识别等领域中表现出色。

Keras: 一个高度模块化、易于使用的Python深度学习框架,支持多种后端引擎,包括TensorFlow、Theano和CNTK等。Keras具有良好的可读性和可扩展性,使得开发者可以轻松构建各种类型的神经网络模型。

扩展:
TensorFlow的API设计也比较底层,需要开发者对深度学习算法有一定的了解。

TensorFlow需要处理很多底层的技术细节,比如GPU加速、异步计算、分布式训练等,这些都需要开发者有一定的计算机科学背景和编程技能。

Keras是基于TensorFlow实现的,Keras提供的高级API是在TensorFlow低级API基础上进行封装的。因此,Keras用户可以使用TensorFlow的底层功能来更好地控制和调整模型的各个方面,而TensorFlow用户也可以通过Keras的高级API来更快地构建和迭代模型。

4.1 配置conda的国内源

为加快包的下载速度,可以配置国内源,如清华源。

在这里插入图片描述

找到如上文件修改为:

channels:
  - defaults
show_channel_urls: true
channel_alias: http://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

4.2 使用Anaconda的conda创建虚拟环境

环境管理是指在同一台计算机上创建和维护多个相互独立的软件开发环境的过程。在不同的软件开发项目中,通常需要使用不同的软件环境,包括特定版本的编程语言、库、工具和其他依赖项。环境管理的目标是使不同的开发项目之间的软件环境相互隔离,从而避免因依赖关系而产生的冲突问题。在Python语言中,有多种工具可以用于环境管理,其中较为常用的包括conda、pipenv和virtualenv等。

conda是一个跨平台的包管理器和环境管理器,可以方便地创建、管理和分享不同的软件环境。conda支持多种语言和工具,包括Python、R、Julia等,因此可以在一个环境中同时安装多种语言和工具的软件包。

扩展: pip是Python语言中常用的包管理器,可以方便地安装、升级和卸载Python包。pip最初是由Python社区开发的一个包管理器,用于解决Python包之间的依赖问题。随着Python在科学计算、数据分析、机器学习等领域的广泛应用,pip也逐渐成为了Python生态系统中必不可少的工具之一。

创建环境:

conda create -n your_env_name python=X.X 
# 或
conda create --name your_env_name python=X.X

激活环境:

conda activate your_env_name

conda常用命令: conda常用命令汇总,随时查询

4.3 版本问题

Python
目前,Windows 上的 PyTorch 仅支持 Python 3.8-3.11;不支持 Python 2.x。

如果要在 Windows 上构建,还需要带有 Visual Studio的 MSVC 工具集 和 NVTX。

原因:
PyTorch是一个基于Python的开源机器学习框架,支持GPU加速计算,因此在安装时需要一些必要的依赖项。

MSVC工具集是Microsoft Visual Studio的一个组件,提供了一组用于编译和构建C++应用程序的工具和库。在安装PyTorch时,需要使用MSVC工具集来编译C++代码并构建PyTorch的二进制文件。这是因为PyTorch的底层代码是用C++实现的,而Python只是作为一个包装器来调用这些底层代码。

NVTX是一个用于GPU性能分析的工具,它允许开发人员在应用程序中插入时间戳和事件标记,以便更好地了解GPU计算的性能瓶颈和优化机会。在安装PyTorch时,NVTX可以帮助开发人员更好地分析和优化PyTorch的GPU计算性能。

NVTX是NVIDIA提供的一组C/C++函数和宏,用于在CUDA应用程序中添加注释和区域,以帮助分析和优化程序的性能。NVTX可以与各种性能分析工具一起使用,例如NVIDIA Nsight Systems、CUDA-MEMCHECK、CUDA-GDB等。

因此,安装PyTorch需要MSVC工具集和NVTX是为了支持PyTorch的编译和GPU性能分析。

判断计算机是否安装MSVC工具集:
a. 打开“控制面板”并选择“程序”或“程序和功能”。
b. 检查列表中是否存在Microsoft Visual Studio或Microsoft Visual C++ Redistributable等相关程序。如果存在,则计算机已安装MSVC工具集或其相关组件。

要判断计算机是否安装了NVTX,可以检查计算机上是否安装了NVIDIA CUDA Toolkit。NVTX是CUDA Toolkit的一部分,因此如果计算机上已安装CUDA Toolkit,则可以使用NVTX。

pytorch对应版本安装

5 安装Pytorch

5.1 使用conda命令安装

Pytorch分为CPU版本和GPU版本。GPU版本需要要 Nvidia显卡硬件支持。GPU版本的Pytorch可以利用NVIDIA GPU强大的计算加速能力,使Pytroch的运行更为高效,尤其是可以成倍提升模型训练的速度。

Pytorch官网地址: https://pytorch.org/get-started/locally/

在这里插入图片描述
此时给出的句子后有 -c pytorch,这是从官网下载会比较慢,所以这里更推荐通过清华镜像源进行下载,语句删去 -c pytorch即可。(如果清华源中没有对应的版本,可以选择配置官网源,科学上网安装)

Pytorch历史版本的安装命令:https://pytorch.org/get-started/previous-versions/

我安装的cuda为11.3版本,python为3.9

因此我的安装命令为:

# CUDA 11.3
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c pytorch

在这里插入图片描述
安装提示清华源没有对应的pytorch版本
在这里插入图片描述

5.2 使用pip指定包来源安装

清华源中没有对应的版本,使用pip指定特定包源进行安装。

使用pip指定特定包源进行安装:
在这里插入图片描述
anaconda prompt命令行中对应的环境后,执行如下安装命令即可完成安装:

pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113

显示安装成功(他会自动安装关联包):
在这里插入图片描述

5.3 到官网下载对应包到本机后再安装(繁琐不推荐)

官网下载对应包的地址:https://download.pytorch.org/whl/torch_stable.html

在这里插入图片描述
下载到本地后,在对应的环境下切换到.whl包的路径,在使用以下安装命令即可:

pip install torch-1.11.0xxxxxxxx-win_amd64.whl

5.4 Windows平台可能还需要安装VC : VC_redist.x64.exe

如果安装后出现导入[WinError 126] 找不到指定的模块报错,需要安装VC_redist.x64.exe。

原因:
如果电脑没有安装Microsoft Visual Studio或Microsoft Visual C++ Redistributable等相关程序时需要安装。

在使用PyTorch时,有些PyTorch库的二进制包是使用Microsoft Visual C++编译器构建的,而这些库需要在Windows操作系统上运行。因此,在Windows平台上使用PyTorch时,需要安装Microsoft Visual C++ Redistributable的运行时库。

VC_redist.x64.exe是Microsoft Visual C++ Redistributable for Visual Studio 2015-2019的安装程序,它包含了运行使用Microsoft Visual C++编译器编译的应用程序所需的运行时组件。如果没有安装这些运行时组件,那么在运行使用Microsoft Visual C++编译器编译的应用程序时,可能会出现缺少dll文件或无法加载库等错误。

因此,安装VC_redist.x64.exe可以确保在Windows平台上使用PyTorch时,能够正常加载并使用使用Microsoft Visual C++编译器编译的库。

5.4 确认是否安装成功

为确保 PyTorch 已正确安装,我们可以通过运行示例 PyTorch 代码来验证安装。这里我们将构造一个随机初始化的张量。

输入以下代码:

import torch
x = torch.rand(5, 3)
print(x)

输出应该类似于:

tensor([[0.8355, 0.1659, 0.8832],
        [0.4836, 0.1315, 0.5727],
        [0.6396, 0.0573, 0.6313],
        [0.9368, 0.0829, 0.0042],
        [0.7551, 0.4536, 0.4494]])

在这里插入图片描述

此外,要检查您的 GPU 驱动程序和 CUDA 是否已启用并可被 PyTorch 访问,请运行以下命令以返回 CUDA 驱动程序是否已启用:

import torch
import sys   #sys模块提供了一系列有关Python运行环境的变量和函数

print(sys.version)
print(torch.__version__)
print(torch.cuda.is_available())

在这里插入图片描述

输出以上类似结果说明安装成功。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

logstash介绍和使用-ELK文章2

官方 Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。 下载和文档:https://www.elastic.co/cn/logstash/ docker部署:https://hub.docker.…

教你快速把heic格式转化jpg,4种方法操作简单

教你快速把heic格式转化jpg的方法,因为HEIC格式图片通常出现在苹果公司的iOS 11操作系统及之后的版本中,这是因为苹果公司在这些版本中采用了HEIF(高效图像格式)作为默认的照片格式来替代JPEG格式。同时,需要注意的是&…

asp.net+sqlserver社区小区流动人口管理系统

该系统的基本功能包括用户登录,管理员信息管理,社区组织管理,常住人口管理,流动人口管理,社区事务管理,社区服务管理,系统用户管理,修改密码等功能。 (3)功能…

项目分析v2

用户: 登录: 不能重复登录。 在服务端使用一个hashset记录用户的登录状态,如果用户id不在集合里面,就可以登录,登录时将用户id添加到集合中。用户下线时,将set中的元素删除。 登录成功后,服务端…

【语义分割】LinkNet从0到1和代码实现

文章目录 前言1.网络结构1.1 网络结构示意图1.2 创建LinkNet模型 2.代码2.1 各模块搭建2.1.1 卷积模块2.1.2 反卷积模块2.1.3 编码器模块 2.2 编码网络结构2.3 损失函数&训练2.4 训练 前言 已经有了U-net了,为什么需要linkNet? unet见这个文章【语义…

Docker基础篇(很详细)

一、简单介绍 (一)为什么用docker 开发人员发开完成就发布一个jar或者war包,其他的都交给运维人员来做;而现在,开发即运维,打包部署上线一套流程走完:开发人员会将项目及其附带的环境一起打包j…

UML类图使用介绍

文章目录 一、UML图1、什么是UML图2、类图概述3、类图的作用 二、类的表示方式举个栗子 三、类与类之间关系的表示方式1、关联关系(1)单向关联(2)双向关联(3)自关联 2、聚合关系3、组合关系4、依赖关系5、继…

安全加密基础—基本概念、keytool、openssl

前言 (1)本文不涉及源码、底层。只是讲解大概的密码演变过程和基本概念。能让接触到相关名词的人知道这些名词是干嘛的,为什么要有它。专业人士可以当作概念梳理,非专业人士可以当作科普。 (2)本文你将了解…

亿发工业互联网智能制造ERP系统,生产工厂信息化建设解决方案

亿发工业互联网智能制造ERP系统,生产工厂信息化建设解决方案 随着制造水平的发展,传统工厂原有的生产组织模式和质量管理模式已不能满足先进制造水平的要求。确保公司战略目标的实现,有必要借助信息技术加强对各种业务流程的管理。而企业走向…

Leetcode506. 相对名次

Every day a leetcode 题目来源&#xff1a;506. 相对名次 解法1&#xff1a;STL vector 自定义排序 使用 vector<pair<int, int>> 数组v记录原来 score 数组的下标和成绩。 对v按成绩进行降序排序。 新建一个 vector<string> 数组 ans&#xff0c;遍历…

WiFi(Wireless Fidelity)基础(三)

目录 一、基本介绍&#xff08;Introduction&#xff09; 二、进化发展&#xff08;Evolution&#xff09; 三、PHY帧&#xff08;&#xff08;PHY Frame &#xff09; 四、MAC帧&#xff08;MAC Frame &#xff09; 五、协议&#xff08;Protocol&#xff09; 六、安全&#x…

FP斗篷,2023独立站必看指南

Cloak斗篷技术是一种网络隐身术&#xff0c;通过技术手段实现在网络上匿名和隐身&#xff0c;保护个人隐私和安全。斗篷技术的实现原理是通过使用虚拟专用网络&#xff08;VPN&#xff09;或代理服务器等技术&#xff0c;将用户的真实IP地址隐藏起来&#xff0c;使其在网络上的…

CentOS7离线升级SSH至9.1P1

1、离线安装telnet&#xff08;用telnet登录升级ssh&#xff0c;因为ssh升级时&#xff0c;ssh会话会断开&#xff09; &#xff08;1&#xff09;下载telnet、telnet-server、xinetd&#xff0c;并传到服务器上 http://rpmfind.net/linux/centos/7.9.2009/updates/x86_64/Pack…

目前电视盒子哪个最好?测评20款后整理网络电视盒子推荐

电视盒子是日常必备的数码单品&#xff0c;功能越来越丰富&#xff0c;但很多人不懂要如何选择电视盒子&#xff0c;芯片、内存外还应该考虑系统、技术优化和界面设计等因素。昨天刚刚结束了二十款电视盒子的测评&#xff0c;马上来介绍下我的测评结果&#xff0c;整理了网络电…

flutter mqtt的使用看这里,持续更新

mqtt网络协议&#xff0c;相信跟物联网相关的公司都会遇到&#xff0c;在Android,iOS原生开发是可以很好的实现&#xff0c;相关的资料也是很多&#xff01;但是在flutter里面还算比较尝鲜的一个领域吧&#xff01; 幸亏flutter里面 已经有一个还不错的第三库mqtt_client&…

Springcloud 之Gateway组件详解

目录 1.网关 1.1 网关简介 1.2 网关组件 1.2.1 Gateway介绍 1.2.2 Gateway实践 1.2.3 Gateway执行流程 1.2.4 断言工厂 1.2.5 过滤器 1.网关 1.1 网关简介 大家都都知道在微服务架构中&#xff0c;一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多…

Vmware ESXi 5.0 安装与部署

在虚拟化领域VMware、Citrix、Microsoft都有不错的解决方案而在服务器虚拟化领域VMware又占据着领导者地位游侠www.2cto.com今天也装了个平台与大家一起分享。   VMware的虚拟化产品就个人、小企业而言有Workstation、ESXivSphere免费版、VMwareServer免费版可以选择由于Work…

彩蛋丨利用R语言脚本实现批量合并Excel表格,再也不用手动点来点去了!

利用R语言脚本实现批量合并Excel表格 在整理数据的时候遇到一个问题&#xff1a;假如有很多个excel表&#xff0c;分别存放了一部分数据&#xff0c;现在想要快速把这些表格的数据汇总到一起&#xff0c;如何用R语言快速完成呢&#xff1f;本文分享一个脚本&#xff0c;能够自动…

分享2个教学视频录制的方法!

案例&#xff1a;如何录制教学视频&#xff1f; 【我是一名老师&#xff0c;我想录制一些教学视频发布在网络平台上&#xff0c;但是我不知道如何操作。有没有人知道录制教学视频需要什么工具&#xff1f;如何录制&#xff1f;】 随着在线教育的普及&#xff0c;越来越多的教…

【K8s】K8s介绍与集群环境搭建

文章目录 一、Kubernetes介绍1、背景2、kubernetes简介3、组件说明4、示例&#xff1a;部署nginx说明各组件的协作5、kubernetes核心概念 二、kubernetes集群环境搭建1、部署方式2、安装要求和最终目标3、环境准备4、环境初始化5、集群测试 一、Kubernetes介绍 1、背景 在部署…