• 04 Pytorch tensor


     一:老版本的 variable

    二:新版 tensor

    曾经:求导相关

    如今:数据相关 

    –dtype: 张量的数据类型,三大类,共9种。torch.FloatTensor, torch.cuda.FloatTensor
    –shape: 张量的形状。如:(64,3,224,224)
    –decive: 所在设备

    三:tensor创建方法 

    Tensor创建一:直接创建 (共享内存:out)

    1)

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

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

    1. import torch
    2. import numpy as np
    3. arr = np.array([[1, 2, 3], [4, 5, 6]])
    4. t = torch.from_numpy(arr)
    5. t[0, 0] = -1
    6. print(arr)
    7. print(t)

    Tensor创建二:依据数值创建(等差,均分,单位矩阵)

    4.2 依据数值创建

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

    torch.zeros(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)
    1. 21torch.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,数值) 等差创建 

       6.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)

    Tensor创建三:依据概率创建(正太,标准正太,伯努利分布)

    第二章:Tensor 操作与线性回归

    2.1:张量的操作:拼接、切分、索引和变换
    2.1.1拼接:
    • torch.cat(): 将张量按维度dim进行拼接
    1. t_0 = torch.cat([t, t], dim=0)
    2. t_1 = torch.cat([t, t], dim=1)

    torch.Size([4, 3])

    torch.Size([2, 6]) 

    • torch.stack():在新建的维度dim上进行拼接
    1. t = torch.ones((2, 3))
    2. t_0 = torch.cat([t, t], dim=0)
    3. t_1 = torch.stack([t, t], dim=0)
    4. print(t_0)
    5. print(t_0.shape)
    6. print(t_1)
    7. print(t_1.shape)
    2.1.2 切分

    按维度dim进行平均切分: torch.chunk(input, chunks, dim)

    1. t = torch.ones((2, 7))
    2. print(t)
    3. list_of_tensor = torch.chunk(t, dim=1, chunks=3)
    4. print(list_of_tensor)

    指定切分:torch.split()  [2,2,3]切分三个,每个都有特定的te'zheng'sh

    1. t = torch.ones((2, 7))
    2. print(t)
    3. list_of_tensor_2 = torch.split(t, 3, dim=1)
    4. print(list_of_tensor_2)
    5. list_of_tensor_3 = torch.split(t, [2, 2, 3], dim=1)
    6. print(list_of_tensor_3)
    2.1.3 reshape

        torch.reshape: 变换张量形状
        notice: 注意事项:当张量在内存中是连续时,新张 量与input共享数据内存

    1. # torch.reshape
    2. t = torch.randperm(8)
    3. print(t)
    4. t_reshape = torch.reshape(t, (2, 4))  # -1代表不关心
    5. print(t_reshape)

    2.2张量的数学运算

    2.3线性回归

    用wx+b 去拟合谁?

    逻辑回归:

    Deepshare-Pytorch/作业/第二周作业1/第二周作业1.md at master · 799609164/Deepshare-Pytorch · GitHub

  • 相关阅读:
    自动驾驶的关键在于安全、智能与舒适
    C#中.NET Framework4.8 Windows窗体应用通过EF访问数据库并对数据库追加、删除记录
    hadoop集群搭建
    Python-Flask快速上手
    2022年金九银十Java面试手册宝典,横扫春招+校招+社招+秋招
    day03 mybatis
    imu预积分处理
    ggplot画热图 合并细胞组合细胞 单细胞基因整体表达量 合并多个细胞整体表达量条形热图 合并热图
    制作一个简单HTML电影网页设计(HTML+CSS)
    React 全栈体系(六)
  • 原文地址:https://blog.csdn.net/Spirit_321/article/details/139759396