PyTorch——从入门到精通:PyTorch简介与安装(最新版)【PyTorch系统学习】

devtools/2024/11/16 12:35:31/

前言

        在这个由数据驱动的时代,深度学习已经成为了推动技术进步的核心力量。而PyTorch,作为当今最流行的深度学习框架之一,以其动态计算图、易用性和灵活性,受到了全球开发者和研究者的青睐。为了帮助更多的学习者和开发者掌握这一强大的工具,我决定在CSDN开设一个专注于PyTorch的学习专栏。

        这个专栏将是一个系统的学习资源,旨在从基础到高级,逐步引导读者入门并精通PyTorch的使用方法。在本专栏中,我将以PyTorch代码为基准,系统分享PyTorch的基础知识、核心概念、实际案例以及最佳实践。我们不仅会探讨如何使用PyTorch构建和训练神经网络,还会深入讨论如何优化模型、处理数据以及部署应用。此外,我还会定期更新最新的PyTorch特性和行业动态,确保内容的时效性和前瞻性。

        让我们一起开启这段激动人心的学习之旅,探索深度学习的无限可能。无论你是初学者还是有经验的开发者,我都期待与你在我的CSDN专栏 PyTorch:从入门到精通 中相遇!

PyTorch简介

        

        1. Torch 的起源

        Torch是一个开源的科学计算框架,最初由Facebook的人工智能研究团队(FAIR)以及其他团队共同开发,旨在满足深度学习和计算机视觉的需求。Torch的设计和实现基于Lua语言,专注于提供高效的数值计算能力,尤其是在矩阵操作和自动求导方面表现出色。Torch最早的版本大约在2002年就已经出现,但直到2010年,Torch版本才开始受到深度学习研究社区的广泛关注。

        Torch的主要优势包括:

  • 1. 高效性:它利用了高效的C和Fortran库(例如BLAS和ATLAS)进行数值计算。
  • 2. 灵活性:提供了众多灵活的工具,用于构建和实现机器学习模型。
  • 3. 开源性:代码完全开放,便于与全球的研究人员和开发者进行协作。

        然而,尽管Torch具有着上述的优势,但基于Lua语言开发的限制使其在深度学习领域的普及度相对较低,尤其是与已经成为机器学习领域主流语言的Python相比,而这大大限制了Torch在开发者中的使用范围。

        2.PyTorch — Torch的Python版本

        PyTorch 是基于 Torch 设计并开发的,作为Torch的Python版本,由 Soumith Chintala 等人于 2016 年创建。PyTorch的设计宗旨是继承Torch的灵活性,并结合Python语言的普及度、易用性以及其强大的生态系统。自推出以来,PyTorch迅速在深度学习研究和工业应用中崭露头角,成为最受欢迎的深度学习框架之一。

        PyTorch 的核心特点:

  • 动态图(Dynamic Computational Graph):与 TensorFlow 1.x 中的静态计算图不同,PyTorch 使用动态计算图(动态图)。这意味着计算图是在执行时动态生成的,而不是在运行之前就定义好,极大提高了灵活性,特别是对于调试、修改模型结构和研究新算法非常方便。

  • 深度集成 Python:PyTorch 的核心使用 Python 编写,并且与 Python 的数据处理库(如 NumPy、SciPy、Pandas 等)深度集成,使得它对 Python 开发者非常友好。

  • 强大的自动求导功能(Autograd):PyTorch 提供了自动求导机制,可以自动计算梯度,非常方便实现反向传播算法。

PyTorch安装

        在机器学习和深度学习领域,开发者经常需要使用一系列成熟的库和框架来构建和训练模型。手动安装这些库不仅耗时,而且常常会遇到版本兼容性和依赖关系的问题,这些问题可能导致环境配置失败或运行不稳定 。

        Anaconda 和 Miniconda 上述问题提供了一种高效的解决方案 。Anaconda 是一个全面的Python发行版,它预装了大量用于科学计算的库,如NumPy、Pandas、SciPy和Matplotlib,以及深度学习和机器学习框架,如TensorFlow和PyTorch 。Miniconda 则是Anaconda的轻量级版本,它只包含了Python和conda包管理器,用户可以根据自己的需求安装所需的库 。Miniconda的轻量级特性使其在需要快速部署Python环境,或者在磁盘空间有限、网络环境较差的情况下具有优势。而无论是Anaconda还是Miniconda,用户都可以轻松创建隔离的虚拟环境,这样可以为不同的项目配置独立的环境,避免package版本冲突 。

Step 1:安装Anaconda/miniconda

        这里以Anaconda为例,访问Anaconda官网,选择系统DownLoad,具体的安装版本可以参考Anaconda官网的相应介绍。        

 Step 2:检测是否安装成功

        安装完成以后在开始页面中,在最近添加和anaconda包中都能找到anaconda prompt。

Step3:创建虚拟环境 

        有些同学可能会对虚拟环境有些陌生,实际上,虚拟环境就相当于不同的工作间,因为处理任务的不同,在进行工作的环境配置也不相同,也不可能将不同用途的所有工作放在一个位置,这样不仅使得工具的管理更加困难,不能工具的使用之间还可能出现冲突。而虚拟环境的核心作用是为每个项目提供独立的依赖和配置,创建不同的工作间,从而避免不同项目之间的库版本冲突和依赖不兼容问题。通过隔离项目环境,开发者可以轻松管理和切换不同的依赖,确保项目的一致性和可重复性,同时支持不同的Python版本,简化协作和部署过程。通常这一过程,Linux在终端进行,Windows在Anaconda Prompt进行

        查看现存虚拟环境

        查看已经安装好的虚拟环境,操作指令如下:

conda env list

         创建新的虚拟环境

conda create -n env_name python==version 
# 注:将env_name 替换成你的环境的名称,version替换成对应的版本号,eg:3.8

Step4:安装PyTorch

        无论你的电脑是GPU还是CPU配置,都可以安装PyTorch并运行,区别在于GPU 版本的PyTorch能够提供更快的计算速度和更高的性能,特别是在处理大规模数据集和复杂模型时。GPU加速可以显著减少训练和推理时间,使得深度学习模型的开发和测试更加高效。然而,如果你的电脑只配置了CPU,PyTorch仍然可以运行,只是速度可能会慢一些,特别是在执行计算密集型任务时,因此在后续的学习实践中 ,可能会受到一些时间上的限制。

        比较简单的一种安装方法就是打开命令行,输入以下代码并回车:

pip install torch

        而由于PyTorch的安装版本与电脑的系统配置有着很大的关联,因此上述的简单安装方法并不推荐,另一种较为精准的安装方法是访问PyTorch官网,点击首页的Get started .

         然后在以下页面选择你的电脑配置,官网会自动给你对应的Command命令(Run this Command),将这段命令复制到命令行并回车即可。

 Step5:检测PyTorch是否安装成功

        打开任意空白Python文件,如.py 或.ipynb文件,输入以下代码并运行:

python">import torch

        若代码正确运行则已经安装成功~

感谢阅读,希望对你有所帮助~


http://www.ppmy.cn/devtools/134434.html

相关文章

C#入门 023 什么是类(Class)

什么是“类” 是一种数据结构 是一种数据类型 代表现实世界中的“种类” 构造器和析构器 析构器 析构器(Destructor)是一种特殊的成员方法,用于在对象被垃圾回收器(Garbage Collector, GC)回收之前执行清理操作。…

第五章 Vue 组件与生命周期

学习目标 5.1 Vue组件5.1.1 为什么要使用组件5.1.2 组件入门5.1.2.1 全局组件5.1.2.2 局部组件 5.2 组件通讯5.2.1 父子组件定义5.2.2 父组件给子组件传值5.2.3 子组件给父组件传值5.2.4 单向数据流 5.3 插槽5.3.1 匿名插槽5.3.2 具名插槽 5.4 生命周期钩子函数5.4.1 生命周期图…

Bootstrap和jQuery开发案例

目录 1. Bootstrap和jQuery简介及优势2. Bootstrap布局与组件示例:创建一个响应式的表单界面 3. jQuery核心操作与事件处理示例:使用jQuery为表单添加交互 4. Python后端实现及案例代码案例 1:用户登录系统Flask后端代码前端代码 5. 设计模式…

无人机应用场景:石油管道巡检技术详解

无人机在石油管道巡检中的应用,以其高效、便捷、灵活的特点,为石油管道的安全管理提供了有力支持。以下是对无人机在石油管道巡检技术方面的详细解析: 一、无人机巡检技术的概述 无人机巡检技术是指利用无人机搭载各种传感器和检测设备&…

大模型研究报告 | 2024年中国金融大模型产业发展洞察报告|附34页PDF文件下载

随着生成算法、预训练模型、多模态数据分析等AI技术的聚集融合,AIGC技术的实践效用迎来了行业级大爆发。通用大模型技术的成熟推动了新一轮行业生产力变革,在投入提升与政策扶植的双重作用下,以大模型技术为底座、结合专业化金融能力的金融大…

.NET 9 中 IFormFile 的详细使用讲解

在.NET应用程序中,处理文件上传是一个常见的需求。.NET 9 提供了 IFormFile 接口,它可以帮助我们轻松地处理来自客户端的文件上传。以下是 IFormFile 的详细使用讲解。 IFormFile 接口简介 IFormFile 是一个表示上传文件的接口,它提供了以下…

九、HttpMessageConverter

文章目录 1. RequestBody2. RequestEntity3. ResponseBody4. SpringMVC处理json5. SpringMVC处理ajax6. RestController注解7. ResponseEntity 1. RequestBody 2. RequestEntity 3. ResponseBody 4. SpringMVC处理json 5. SpringMVC处理ajax 6. RestController注解 7. Response…

VUE3中Element table表头动态展示合计信息(不是表尾合计)

一、背景 原型上需要对两个字段动态合计&#xff0c;输出摘要信息 原先想到是的Element的 :summary-method&#xff0c;发现不是动态&#xff0c;所以换监听来实现 二、vue代码 <el-table v-model"loading" :data"itemList"><el-table-column la…