【花书笔记|PyTorch版】手动学深度学习1:预备知识(上)

本文是PyTorch版手动学习深度学习的预备知识部分,涵盖了数据操作如张量创建、运算、广播机制、索引切片及格式转化;数据处理包括数据集读取与数据预处理;还介绍了线性代数的基础,如张量理解、基本性质、降维、点积和矩阵乘法等。
摘要由CSDN通过智能技术生成
2021.11.20 新坑!!!
本文包括内容:2章预备知识: 2.1数学操作、 2.2数据预处理 、2.3线性代数

二 预备知识

2.1 数据操作

2.1.1 入门操作

  • 创建torch型数据
import torch
x = torch.arange(12)
x
tensor([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
  • reshape()来变形
x.reshape(3,4)
tensor([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
x
tensor([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
  • 我们发现,操作都是临时的 所以要改变形态,要赋一个名字(可以是同名)

  • torch的类型为tensor,是张量,可以理解成是向量的总成(后面会介绍)

  • .shape来看张量的形态

x.shape
torch.Size([12])
  • .numel()来看元素个数
x.numel()
12
  • 赋0 赋1
torch.zeros((2, 3, 4))
tensor([[[0., 0., 0., 0.],
         [0., 0., 0., 0.],
         [0., 0., 0., 0.]],

        [[0., 0., 0., 0.],
         [0., 0., 0., 0.],
         [0., 0., 0., 0.]]])
torch.ones((2, 3, 4))
tensor([[[1., 1., 1., 1.],
         [1., 1., 1., 1.],
         [1., 1., 1., 1.]],

        [[1., 1., 1., 1.],
         [1., 1., 1., 1.],
         [1., 1., 1., 1.]]])
  • randn()随机赋值
  • 其中的每个元素都从均值为0、标准差为1的标准高斯(正态)分布中随机采样。
torch.randn(3, 4)
tensor([[ 2.5246,  0.2407, -1.5535, -0.1901],
        [-0.1046, -0.9095, -0.0242,  2.6962],
        [ 1.3211,  2.3679, -0.0362,  0.2089]])
  • 直接创建张量
torch.tensor([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])
tensor([[2, 1, 4, 3],
        [1, 2, 3, 4],
        [4, 3, 2, 1]])

2.1.2 运算

  • 一般情况是元素之间做运算
x = torch.tensor([1.0, 2, 4, 8])
y = torch.tensor([2, 2, 2, 2])
x + y, x - y, x * y, x / y, x ** y  # **运算符是求幂运算
(tensor([ 3.,  4.,  6., 10.]),
 tensor([-1.,  0.,  2.,  6.]),
 tensor([ 2.,  4.,  8., 16.]),
 tensor([0.5000, 1.0000, 2.0000, 4.0000]),
 tensor([ 1.,  4., 16., 64.]))
  • torch.exp()e的指数运算
torch.exp(x)
tensor([2.7183e+00, 7.3891e+00, 5.4598e+01, 2.9810e+03])
  • torch.cat()做两个张量的连接操作,操作双方都是张量
  • dim = 0是第一参考坐标系操作【行操作】
  • dim = 1是第二参考坐标系操作【列操作】
X = torch.arange(12, dtype=torch.float32).reshape((3,4))
Y = torch.tensor([[2.0, 1, 4, 3], [1, 2, 3, 4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羊老羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值