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

    技术2022-07-17  62

    目录

    参考:百度云盘的课程Pytorch的PDF课件~ 一、学习路径二、安装三、张量的概念:多维数组四、张量的创建4.1 直接创建4.2 依据数值创建4.3 依概率分布创建张量 五、总结

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

    一、学习路径


    二、安装

    1)验证成功

    >>> import torch >>> a=torch.ones(2,2) >>> a tensor([[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) torch.zeros_like() torch.zeros_like(input, dtype=None, layout=None, device=None, requires_grad=False) torch.ones()torch.ones_like()torch.full()torch.full_like()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) 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(),生成伯努利分布


    五、总结

    Processed: 0.010, SQL: 9