Pytorch打卡第1天:PyTorch简介及环境配置;PyTorch基础数据结构—张量

参考:百度云盘的课程Pytorch的PDF课件~

一、学习路径



二、安装

1)验证成功

>>> import torch
>>> a=torch.ones(2,2)
>>> a
tensor([[1., 1.],
        [1., 1.]])
>>> 
  1. 查看pytorch版本
print ("hello pytorch {}".format(torch.__version__))

3)查看是否支持GPU

print (torch.cuda.is_available())


三、张量的概念:多维数组

Tensor与Variable

–Variable:主要用于封装Tensor,进行自动求导
–data:被封装的Tensor
–grad:data的梯度
–grad_fn:创建Tensor的Function,是自动求导的关键
–requires_grad:指示是否需要梯度
–is_leaf:指示是否是叶子

从Pytorch0.4.0版本开始,Variable并入Tensor
–dtype: 张量的数据类型,三大类,共9种。torch.FloatTensor, torch.cuda.FloatTensor
–shape: 张量的形状。如:(64,3,224,224)
–decive: 所在设备


四、张量的创建

4.1 直接创建

1)

torch.tensor(data, dtype=None, device=None, requires_grad=False, pin_memory=False)

2) 从numpy创建tensor : torch.from_numpy(ndarray)
注意:共享内容

import torch
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
t = torch.from_numpy(arr)

t[0, 0] = -1
print(arr)
print(t)

4.2 依据数值创建

1)torch.zeros():按照size创建全0张量

torch.zeros(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)


  1. torch.zeros_like()
torch.zeros_like(input, dtype=None, layout=None, device=None, requires_grad=False)

  1. torch.ones()
  2. torch.ones_like()
  3. torch.full()
  4. torch.full_like()
  5. torch.arange(),创建等差数列,区间:[start, end)
t = torch.arange(start=0, end=100, step=1, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)

  1. torch.linspace(),创建均分数列,区间:[start, end]
    注意:step是步长;steps是长度
t = torch.linspace(start=0, end=100, steps=5, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)

9)torch.logspace(),创建对数均分的1维张量
注意:长度steps,底是base默认为10

t = torch.logspace(start=0, end=100, steps=5, base=10, out=None, dtype=None, layout=torch.strided, device=None,
                   requires_grad=False)
                   

10) torch.eye(),创建单位对角矩阵(2维张量)
n: 矩阵行数; m:矩阵列

4.3 依概率分布创建张量

1)torch.normal():生成正太分布, 高斯分布
四种模式:mean和std各为标量和张量

torch.normal(mean, std, out=None)
torch.normal(mean, std, size, out=None)

2)torch.randn()
3) torch.randn_like(), 生成标准正态分布
注意:size指的是张量的形状

torch.randn(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)

4)torch.rand()
5) torch.rand_like() , 在区间[0, 1]上,生成均匀分布

6)torch.randint()
7) torch.randint_like(),在[low, high)生成整数均匀分布

8)torch.randperm(), 生成从0–n-1的随机排列
9)torch.bernoulli(),生成伯努利分布


五、总结

Pytorch打卡第1天:PyTorch简介及环境配置;PyTorch基础数据结构—张量_第1张图片

你可能感兴趣的:(Pytorch打卡学习,PyTorch入门)