Pytorch教程入门系列3

系列文章目录

第一章 pytorch的基本介绍
第二章 pytorch的基本操作
第三章 pytorch的小特性



前言

接下来我们介绍一个Pytorch 的小特性,初学者了解即可,不必深究。


一、什么是自动广播,向量化?

pytorch自动广播是不同形状的Tensor进行计算时,可自动扩展到较大的相同形状,再进行计算。
向量化则是在同一时间进行批量地并行计算,使用向量化直接对Tensor操作,避免低效率的for循环对元素逐个操作

二、自动广播注意点

1. tensor不能为空
2. 从尾部开始计算
3. 两个tensor的维度尺寸可以相等,不相等则要满足至少一个条件,维度为1或缺少
    >>> a=torch.ones(4,1,6)
    >>> b=torch.ones(  3,1)
    # 从尾部遍历维度,b1对应a6,b3对应a1,a4对应不存在,因此满足广播条件,最后求和后的维度为[4,3,6]
    >>> (a+b).size()
    torch.Size([4, 3, 6])
    >>> c=torch.ones(2,3)
    >>> (a+c).size()
    # a与c最后一维的维度为a6对应c3,不满足广播条件,因此报错
    Traceback (most recent call last):
     File "<stdin>",  line 1, in <module>
    RuntimeError: The size of tensor a (6) must match the size of tensor c (3)
    at non-singleton dimension 2

三、内存共享

PyTorch提供了一些原地操作运算,即in-place operation,不经过复制,直接在原来的内存上进行计算,节省内存开销。但本身的Tensor则会被改变。
主要有三种方式:

1 操作通过加后缀“_

2 Tensor与NumPy转换,是共用内存的

3 通过Tensor初始化、组合、变形等方式生成另一个Tensor


总结

以上就是今天要讲的内容,本文仅仅简单介绍了自动广播与向量化内存共享的使用,今后的学习中我们再更深切体会。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CV_Today

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

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

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

打赏作者

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

抵扣说明:

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

余额充值