欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PyTorch入门(一)--PyTorch基础

程序员文章站 2022-07-06 12:38:11
...

1. PyTorch与TensorFlow的区别

PyTorch和TensorFlow的底层都是由C++编写的, 所以运行起来都比较快,那么二者的区别是什么呢?以一个基本的运算为例:

a = x*y;
b = a + z;
c =(b);

该运算的运算图为:
PyTorch入门(一)--PyTorch基础
TensorFlow的实现代码为:
PyTorch入门(一)--PyTorch基础
PyTorch的实现代码为:
PyTorch入门(一)--PyTorch基础
二者最大的区别是:

  • TensorFlow是先生成静态运算图,然后在进行运算,而且运算图是静态的,一经生成无法更改。
  • PyTorch生成的运算图是动态的,可以一边生成动态运算图,一边进行运算
    详细的区别入下图所示:
    PyTorch入门(一)--PyTorch基础

2. PyTorch基本数学形式

神经网络最核心的部分就是数学运算,在PyTorch中最基本的数学形式有三个:

  • 向量(Vector): 一列数
  • 矩阵(Matrix): “二维向量”
  • 张量(Tensor): “三维向量”或者“三维矩阵”
    神经网络的核心部分是向量、矩阵、张量之间的相乘与相加。
    在PyTorch中生成三种数学形式的代码如下所示:
# 导入torch包
import torch

#定义向量
vector = torch.tensor([1,2,3,4])

#定义矩阵
matrix = torch.tensor([[1,2],[3,4]])

#定义张量
tensor = torch.tensor([[[1,2],[3,4]],[[1,2],[3,4]]])

3. 关于Tensor

Tensor是PyTorch中重要的数据结构,可认为是一个高维数组。Tensor和numpy的ndarrays类似,但是Tensor可以使用GPU加速。需要注意的是,Tensor和numpy对象共享内存,所以他们之间的转换很快,而且几乎不会消耗资源。这意味着,如果其中一个变了,另外一个也会随之改变。
PyTorch中新建的Tensor方法有很多,具体为:
PyTorch入门(一)--PyTorch基础
Tensor有不同的数据类型,如下表所示:
PyTorch入门(一)--PyTorch基础
对于tensor的常用逐元素操作如下表所示:
PyTorch入门(一)--PyTorch基础
对于tensor的常用归并操作如下表所示:
PyTorch入门(一)--PyTorch基础

相关标签: •PyTorch入门