当前位置: 首页 > article >正文

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

前言

        在这个由数据驱动的时代,深度学习已经成为了推动技术进步的核心力量。而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文件,输入以下代码并运行:

import torch

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

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


http://www.kler.cn/a/394755.html

相关文章:

  • C语言从入门到放弃教程
  • Python|Pyppeteer实现自动化获取reCaptcha验证码图片以及提示词(29)
  • Arduino驱动DS18B20测量环境温度
  • 微服务篇-深入了解 XXL-JOB 分布式任务调度的具体使用(XXL-JOB 的工作流程、框架搭建)
  • 2.利用docker进行gitlab服务器迁移
  • Spring AOP 中记录日志
  • golang分布式缓存项目 Day4 一致性哈希
  • 前端权限控制代码
  • 计算机毕业设计 | SpringBoot社区物业管理系统 小区管理(附源码)
  • 14.最长公共前缀-力扣(LeetCode)
  • CSS:怎么把网站都变成灰色
  • uniapp解析蓝牙设备响应数据bug
  • 3588 yolov8 onnx 量化转 rknn 并运行
  • spark的学习-06
  • k8s 1.28.2 集群部署 docker registry 接入 MinIO 存储
  • leveldb存储token的简单实现
  • 数据结构-布隆过滤器和可逆布隆过滤器
  • vue中 通过cropperjs 实现图片裁剪
  • 开源项目低代码表单设计器FcDesigner扩展右侧组件的配置规则
  • Spring Cloud Gateway(分发请求)
  • 边缘提取函数 [OPENCV--2]
  • 数据结构的时间复杂度和空间复杂度
  • 推荐一款CFD/CAE可视化分析软件:Tecplot 360 EX
  • Unity 中使用 C# 对 Vector2 向量朝向进行顺时针排序及复杂排序场景处理
  • Leetcode 存在重复元素II
  • 深入探索:Scrapy深度爬取策略与实践