Pytorch教程入门系列3

导读:本篇文章讲解 Pytorch教程入门系列3,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

系列文章目录

第一章 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


总结

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/73224.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!