和李沐老师学深度学习--2.数据操作部分代码实现(学习笔记)

大家对代码有不懂地方都可以上网去查找,最好是有一定的数据分析基础比较容易理解,李沐老师课程视频链接我放在这里了大家有不懂都可以观看课程进行学习04 数据操作 + 数据预处理【动手学深度学习v2】_哔哩哔哩_bilibili

深度学习课程电子书:大家可以使用翻译插件观看书的内容

Preface — Dive into Deep Learning 1.0.3 documentation

深度学习github项目:https://github.com/d2l-ai/d2l-zh-pytorch-slides

学习交流和机器学习项目:中文版 - D2L Discussion

更多机器学习内容文档:Practical Machine Learning — Practical Machine Learning

1)导入torch库: import torch

2)张量表示一个数值组成的数组,这个数组可以有多个维度

     x = torch.arange(12)
     x

3)通过张量的shape属性访问张量的形状和数据元素的总数

      x.shape

      x.numel()

4)要改变一个张量的形状而不改变元素数量和元素值,我们可以调用reshape函数

      x = x.reshape(3,4)
      x

5)使用全0全1,其他变量或者从特定分布中随机采样的数字

      torch.zeros((2,3,4))

      torch.ones((2,3,4))

6)通过提供包含数值的python的列表(或嵌套列表)来为所需要张量中的每个元素赋予确定值

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

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

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

7)常见的标准算术运算符(+,-,,/,*)都可以被升级为按元素运算

      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

8)进行指数的计算

      torch.exp(x)

9)把多个张量连接到一起

      X = torch.arange(12, dtype=torch.float32).reshape((3,4))
      Y = torch.tensor([[2.0,1,4,3],[1,2,3,4],[4,3,2,1]])
      torch.cat((X,Y), dim=0), torch.cat((X,Y), dim=1)

10)通过逻辑运算符构建二元张量

        X==Y

11)对张量中的所有元素进行求和会产生一个只有一个元素的张量

       X.sum()

12)即使形状不同,我们仍然可以通过调用广播机制来执行按元素操作

        a = torch.arange(3).reshape((3,1))
        b = torch.arange(2).reshape((1,2))
        a,b

        a+b

13)可以使用[-1]选择最后一个元素,可以用[1:3]选择第二个和第三个元素

        X[-1], X[1:3]

 14)除了读取,我们可以通过指定索引将元素写入矩阵

         X[1,2] = 9
         X 

15)为多个元素赋相同的值,我们只需要索引所有元素,然后为他们赋值

        X[0:2, :] = 12
        X

16)运行一些操作可能会造成为新结果分配内存

        before = id(Y)
        Y = Y+X
        id(Y) == before

17)执行原地操作

        Z = torch.zeros_like(Y)
        print('id(Z):', id(Z))
        Z[:] = X+Y
        print('id(Z):', id(Z))

18)如果在后续计算中没有重复使用X, 我们也可以使用X[:] = X+Y或 X +=Y来减少操作的内存开销

       before = id(X)
       X +=Y
       id(X) == before

       

       before = id(X)
       X[:] = X + Y
       id(X) == before

19)转换为NumPy张量

        A = X.numpy()
        B = torch.tensor(A)
        type(A), type(B)

20)将大小为1的张量转换为Python的标量

         a = torch.tensor([3.5])
         a, a.item(), float(a), int(a)

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值