PyTorch 之 简介、相关软件框架、基本使用方法、tensor 的几种形状和 autograd 机制-1

简介: PyTorch 是一个基于 Torch 的 Python 开源机器学习库,用于自然语言处理等应用程序。它主要由 Facebook 的人工智能小组开发,不仅能够实现强大的 GPU 加速,同时还支持动态神经网络,这一点是现在很多主流框架如 TensorFlow 都不支持的。

文章目录

一、PyTorch 简介

二、PyTorch 软件框架

1. Anaconda 下载

2. Anaconda 安装

3. Anaconda Navigator 打不开问题(不适用所有)

4. PyTorch 环境创建

5. PyTorch 下载

6. Jupyter 中配置 PyTorch

三、PyTorch 基本使用方法

四、tensor 的几种形状

1. Scalar(标量)

2. Vector(向量)

3. Matrix(矩阵)

五、PyTorch 的 autograd 机制

1. autograd 机制

2. 举例说明

3. 一个简单的线性回归模型

本文参加新星计划人工智能(Pytorch)赛道:https://bbs.csdn.net/topics/613989052


一、PyTorch 简介

111.png


PyTorch 是一个基于 Torch 的 Python 开源机器学习库,用于自然语言处理等应用程序。它主要由 Facebook 的人工智能小组开发,不仅能够实现强大的 GPU 加速,同时还支持动态神经网络,这一点是现在很多主流框架如 TensorFlow 都不支持的。

PyTorch 提供了两个高级功能:

(1) 具有强大的 GPU 加速的张量计算(如 Numpy 库等)。

(2) 包含自动求导系统的深度神经网络。

TensorFlow 和 Caffe 都是命令式的编程语言,而且是静态的,首先必须构建一个神经网络,然后一次又一次使用相同的结构,如果想要改变网络的结构,就必须从头开始。但是对于 PyTorch,通过反向求导技术,可以零延迟地任意改变神经网络的行为,而且实现速度快。

这一灵活性是 PyTorch 对比 TensorFlow 的最大优势。除此以外,PyTorch 的代码对比 TensorFlow 而言,更加简洁直观,底层代码也更容易看懂,这对于使用它的人来说理解底层肯定是一件令人高兴的事。

所以,总结一下 PyTorch 的优点:

(1) 支持 GPU。

(2) 灵活,支持动态神经网络。

(3) 底层代码易于理解。

(4) 命令式体验。

(4) 自定义扩展。

当然,现今任何一个深度学习框架都有其缺点,PyTorch 也不例外,对比 TensorFlow,其全面性处于劣势,目前 PyTorch 还不支持快速傅里叶、沿维翻转张量和检查无穷与非数值张量;针对移动端、嵌入式部署以及高性能服务器端的部署其性能表现有待提升;其次因为这个框架较新,使得他的社区没有那么强大,在文档方面其大多数没有文档。


二、PyTorch 软件框架

1. Anaconda 下载

  • 访问 Anaconda 官网,点击页面中的 Download,这个直接是 Windows 版本。

dbce8ca3bc4d4d9ca4568eb3183506a6.png

如果是其他版本的,点击 Download 下的三个按钮,分别对应 Windows,MacOS 和 Linux 三种。此时再下载对应的版本即可。

5dac5593c6bf44c584ba724cf079af79.png


  • 在其中选择适合我们的版本即可,镜像网站只有 5.3.1 之前的版本,建议下载 5.3.1 版本。

2. Anaconda 安装

  • 下载完成后,即可开始安装。双击安装文件,进入欢迎界面,点击 Next。
  • aa4a1cac6c8f44c2a9a96aaa0bbd7cf5.png


点击同意,进入到下一步。

1866b339ac7b472c825cf92d3aaac188.png


  • 选择软件使用权限,是指针对当前登录用户还是所有用户,二者都行,无特殊要求。
  • 93ac4e69a8e747da872c634814225543.png
  • 选择安装位置,完成安装。


8f4f7b2ae1464e02a2c6d5dddc93b134.png



如果出现此页面,需要勾选配置环境变量选项。

9350c70bc9bb4f4ca80305baecc1cdbf.png



无需安装 VS Code,直接跳过即可。

bf27b1b99ec748f5bfec837b0ed5a31f.png

  • 之后便安装完成了。
  • 最后对是否安装成功进行验证,在 CMD 中输入
conda --version
• 1
  • 若出现像这样的 conda 版本号即安装成功。


79b9b8af31054e9198bbf51f2299cf09.png

3. Anaconda Navigator 打不开问题(不适用所有)


当我们打开 Anaconda Navigator 先是出来几个命令框,然后就找不到 Anaconda Navigator 了,再点击 Anaconda Navigator 时,显示已经打开。

产生上述的问题主要是没更新客户端(-client),采取如下步骤解决问题。

(1) 使用管理员运行:conda prompt。

(2) 输入 conda update conda 更新 conda,再输入conda update anaconda-navigator 更新。

如果出错,则需要修改 .condarc 文件,该文件的目录为:c:\user\你的用户名.condarc,如果没有打开方式就使用文本方式打开。

以文本方式打开 .condarc 文件后:先删除 default 那一行,然后将所有 https 都改成 http 即可。

接下来执行conda update anaconda-navigator,一般可以执行更新了

(3) 重置 Navigator:anaconda-navigator --reset。

(4) 执行命令:conda update anaconda-client,更新 Anaconda 客户端。

(5) 执行命令:conda update -f anaconda-client。

(6) 能打开 Navigator 了。


4. PyTorch 环境创建


  • PyTorch 的环境创建分为如下几步。
  • (1) 以管理员方式运行 Anaconda Prompt,在命令行格式下,输入代码,完成调用清华镜像、建立 PyTorch 环境、安装 PyTorch 、测试 PyTorch 过程。
  • (2) 使用清华镜像源,分别输入以下四句代码。
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 --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
  • (3) 创建 PyTorch 环境,这里我的 Python 版本是 3.7,输入如下代码。
conda create -n pytorch python=3.7
  • 之后,弹出提示,输入 y,即可安装。然后,查看环境是否安装成功。
conda info --envs

这里我们可以看到 base 和 pytorch 两个环境,* 表示当前正处于的环境。

28b67134e80a44a3b5e6c5a39cd00bb7.png

  • (4) 输入如下代码,进入 pytorch 环境当中,我们在此环境下安装 PyTorch。
activate pytorch

此时,如果我们每一行最初的(base)变为(pytorch )就说明上述步骤已完成。

5. PyTorch 下载

  • (1) 进入到 PyTorch 的官网:https://pytorch.org/,选择对应的安装版本。由于电脑配置的相关问题,这里选择安装 PyTorch-CPU 版本。

9fe5df0d9ac4460fb32afd97b6654b21.png

  • (2) 输入官网提供的运行代码,这里每个人的运行代码都不相同,大家输入自己的即可,弹出提示,输入 y,即可完成安装,显示 done。
pip3 install torch torchvision torchaudio


跟 Anaconda 的问题相同,在官网上下载速度实在是过于缓慢,因此大家可以使用清华镜像源进行安装,此处就不过多叙述,本人直接官网下载安装的。

(3) 在 PyTorch 下载完成后,对其是否安装完成进行测试。

激活 PyTorch :activate pytorch

进入 PyTorch :python

测试 numpy:import numpy

测试 PyTorch :import torch

如果以上步骤都没问题,那么安装成功。

cdedbbc34c6346deaf478c387c483ba1.png

6. Jupyter 中配置 PyTorch

  • (1) 打开 Anaconda Prompt。
  • (2) 进入安装好的 PyTorch 环境。
conda activate pytorch #pytorch3.8 是之前建立的环境名称,可修改为自己建立名称

2adec276da364416b70f5aec898f9ee0.png

  • (3) 安装 package:nb_conda。
conda install nb_conda
  • (4) 安装完成后,输入 jupyter notbook 就可以打开 Jupyter 了。
jupyter notbook

30e379d7ef5e472a8b3e2f04aa574448.png


如果中间出现了解决 python.exe 无法找到程序输入点 … 于动态链接库 …pythoncom37.dll 的弹窗提示这类问题,只需要找到对应目录,将 pythoncom37.dll 删除即可。

三、PyTorch 基本使用方法

我们可以通过 torch.__version__ 查看自己的 PyTorch 版本,我的是 CPU 版本的 1.13.1,示例如下:

import torch
torch.__version__
#'1.13.1+cpu'
  • 我们可以通过 torch.empty() 生成一个矩阵,但未初始化。
x = torch.empty(5, 3)
x
#tensor([[8.9082e-39, 9.9184e-39, 8.4490e-39],
#        [9.6429e-39, 1.0653e-38, 1.0469e-38],
#        [4.2246e-39, 1.0378e-38, 9.6429e-39],
#        [9.2755e-39, 9.7346e-39, 1.0745e-38],
#        [1.0102e-38, 9.9184e-39, 6.2342e-19]])
  • 我们可以通过 torch.rand() 生成一个随机值的矩阵。
x = torch.rand(5, 3)
x
#tensor([[0.1452, 0.4816, 0.4507],
#        [0.1991, 0.1799, 0.5055],
#        [0.6840, 0.6698, 0.3320],
#        [0.5095, 0.7218, 0.6996],
#        [0.2091, 0.1717, 0.0504]])
  • 我们可以通过 torch.zeros() 生成一个全零矩阵。
x = torch.zeros(5, 3, dtype=torch.long)
x
#tensor([[0, 0, 0],
#        [0, 0, 0],
#        [0, 0, 0],
#        [0, 0, 0],
#        [0, 0, 0]])
  • 我们可以直接将数据传入矩阵当中。
x = torch.tensor([5.5, 3])
x
#tensor([5.5000, 3.0000])
  • 我们可以通过 size() 查看矩阵的大小,也就是矩阵有几行几列。
x.size()
#torch.Size([5, 3])
  • 我们可以通过 view() 操作改变矩阵维度。
x = torch.randn(4, 4)
y = x.view(16)
z = x.view(-1, 8) 
print(x.size(), y.size(), z.size())
#torch.Size([4, 4]) torch.Size([16]) torch.Size([2, 8])
  • 同时,torch 也可以和 numpy 进行协同操作,具体可见如下示例:
  • 示例 1:
import numpy as np
a = torch.ones(5)
b = a.numpy()
b
#array([1., 1., 1., 1., 1.], dtype=float32)
  • 示例 2:
import numpy as np
a = np.ones(5)
b = torch.from_numpy(a)
b
#tensor([1., 1., 1., 1., 1.], dtype=torch.float64)
相关文章
|
1月前
|
存储 人工智能 PyTorch
基于PyTorch/XLA的高效分布式训练框架
基于PyTorch/XLA的高效分布式训练框架
195 2
|
1月前
|
机器学习/深度学习 存储 PyTorch
PyTorch基本数据类型tensor
PyTorch基本数据类型tensor
35 2
|
1月前
|
存储 PyTorch 算法框架/工具
PyTorch 中的 Tensor:属性、数据生成和基本操作
PyTorch 中的 Tensor:属性、数据生成和基本操作
61 0
|
1月前
|
机器学习/深度学习 算法 PyTorch
Pytorch自动求导机制详解
在深度学习中,我们通常需要训练一个模型来最小化损失函数。这个过程可以通过梯度下降等优化算法来实现。梯度是函数在某一点上的变化率,可以告诉我们如何调整模型的参数以使损失函数最小化。自动求导是一种计算梯度的技术,它允许我们在定义模型时不需要手动推导梯度计算公式。PyTorch 提供了自动求导的功能,使得梯度的计算变得非常简单和高效。
|
3天前
|
机器学习/深度学习 人工智能 PyTorch
PyTorch框架和MNIST数据集
6月更文挑战20天
31 2
|
6天前
|
存储 机器学习/深度学习 PyTorch
Pytorch-张量形状操作
PyTorch中,张量形状操作至关重要,如reshape用于改变维度而不变元素,transpose/permute用于维度交换,view改形状需内存连续,squeeze移除单维度,unsqueeze添加维度。这些函数帮助数据适应神经网络层间的转换。例如,reshape能调整数据适配层的输入,transpose用于矩阵转置或多维排列,而squeeze和unsqueeze则用于处理单维度。理解并熟练运用这些工具是深度学习中必要的技能。
|
1月前
|
机器学习/深度学习 数据可视化 PyTorch
TensorFlow与PyTorch框架的深入对比:特性、优势与应用场景
【5月更文挑战第4天】本文对比了深度学习主流框架TensorFlow和PyTorch的特性、优势及应用场景。TensorFlow以其静态计算图、高性能及TensorBoard可视化工具适合大规模数据处理和复杂模型,但学习曲线较陡峭。PyTorch则以动态计算图、易用性和灵活性见长,便于研究和原型开发,但在性能和部署上有局限。选择框架应根据具体需求和场景。
|
1月前
|
PyTorch 算法框架/工具 Python
【pytorch框架】对模型知识的基本了解
【pytorch框架】对模型知识的基本了解
|
1月前
|
机器学习/深度学习 存储 PyTorch
PyTorch深度学习基础:张量(Tensor)详解
【4月更文挑战第17天】本文详细介绍了PyTorch中的张量,它是构建和操作深度学习数据的核心。张量是多维数组,用于存储和变换数据。PyTorch支持CPU和GPU张量,后者能加速大规模数据处理。创建张量可通过`torch.zeros()`、`torch.rand()`或直接从Python列表转换。张量操作包括数学运算、切片和拼接。在深度学习中,张量用于神经网络模型的构建和训练。理解张量对于掌握PyTorch至关重要。
|
1月前
|
机器学习/深度学习 PyTorch TensorFlow
TensorFlow、PyTorch、Keras、Scikit-learn和ChatGPT。视觉开发软件工具 Halcon、VisionPro、LabView、OpenCV
TensorFlow、PyTorch、Keras、Scikit-learn和ChatGPT。视觉开发软件工具 Halcon、VisionPro、LabView、OpenCV
57 1

热门文章

最新文章