位置: IT常识 - 正文

Pytorch中的广播机制(Broadcast)(pytorch广播相乘)

编辑:rootadmin
Pytorch中的广播机制(Broadcast) 1. Pytorch中的广播机制

推荐整理分享Pytorch中的广播机制(Broadcast)(pytorch广播相乘),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:pytorch broadcast,pytorch audio,python 广播函数,pytorch 广播,pytorch broadcasting,python的广播运算,python的广播运算,pytorch 广播,内容如对您有帮助,希望把文章链接给更多的朋友!

如果一个Pytorch运算支持广播的话,那么就意味着传给这个运算的参数会被自动扩张成相同的size,在不复制数据的情况下就能进行运算,整个过程可以做到避免无用的复制,达到更高效的运算。 广播机制实际上是在运算过程中,去处理两个形状不同向量的一种手段。 pytorch中的广播机制和numpy中的广播机制一样, 因为都是数组的广播机制。

2. 广播机制的理解

以数组A和数组B的相加为例, 其余数学运算同理 核心:如果相加的两个数组的shape不同, 就会触发广播机制:       1)程序会自动执行操作使得A.shape==B.shape;       2)对应位置进行相加运算,结果的shape是:A.shape和B.shape对应位置的最大值,比如:A.shape=(1,9,4),B.shape=(15,1,4),那么A+B的shape是(15,9,4)

3. 两个张量进行广播机制的条件

3.1 两个张量都至少有一个维度

#像下面这种情况下就不行,因为x不满足这个条件。x=torch.empty((0,))y=torch.empty(2,2)Pytorch中的广播机制(Broadcast)(pytorch广播相乘)

3.2 按从右往左顺序看两个张量的每一个维度,x和y每个对应着的两个维度都需要能够匹配上。什么情况下算是匹配上了?满足下面的条件就可以:       a.这两个维度的大小相等       b. 某个维度 一个张量有,一个张量没有       c.某个维度 一个张量有,一个张量也有但大小是1 如下举例:

x=torch.empty(5,3,4,1)y=torch.empty( 3,1,1)

如上面代码中,首先将两个张量维度向右靠齐,从右往左看,两个张量第四维大小相等,都为1,满足上面条件a;第三个维度大小不相等,但第二个张量第三维大小为1,满足上面条件b;第二个维度大小相等都为3,满足上面条件a;第一个维度第一个张量有,第二个张量没有,满足上面条件b,因此两个张量每个维度都符合上面广播条件,因此可以进行广播。 两个张量维度从右往左看,如果出现两个张量在某个维度位置上面,维度大小不相等,且两个维度大小没有一个是1,那么这两个张量一定不能进行广播。

4 当两个张量满足可广播条件后,具体怎么进行广播x=torch.empty(5,3,4,1)y=torch.empty( 3,1,1)

如上面代码所示:      a. 首先第一步,将上面条件b的类型变成条件c的类型,也即是把第二个张量在缺失维度的位置上新增一个维度,维度大小为1,新增的维度如下面所示。

统一前:x=torch.empty(5,3,4,1)y=torch.empty( 3,1,1)统一后:x=torch.empty(5,3,4,1)y=torch.empty(1,3,1,1)

     b. 第二步,x、y对应维度不等的位置,把size为1的维度会被广播得和对应维度一样大,比如y中0维的1会变成5,y中2维的1会变成4,最后两个张量的维度大小变成一样,然后再进行张量运算,转变的维度如下所示。

统一前:x=torch.empty(5,3,4,1)y=torch.empty(1,3,1,1)统一后:x=torch.empty(5,3,4,1)y=torch.empty(5,3,4,1)5. 从空间上理解广播机制

5.1 一维张量进行广播,b被自动广播得和a一样的维度大小,完成了张量相乘运算,如下图所示。

a = torch.tensor([1,2,3])b = torch.tensor([2])c = a*ba,a.shape,b,b.shape,c,c.shape输出结果如下:(tensor([1, 2, 3]), torch.Size([3]), tensor([2]), torch.Size([1]), tensor([2, 4, 6]), torch.Size([3]))

5.1 二维张量进行广播,b被自动广播得和a一样的维度大小,完成了张量相加运算,如下图所示。

a = torch.tensor([[0],[10],[20],[30]])b = torch.tensor([1,2,3])c = a+ba,a.shape,b,b.shape,c,c.shape输出结果如下:(tensor([[ 0], [10], [20], [30]]), torch.Size([4, 1]), tensor([1, 2, 3]), torch.Size([3]), tensor([[ 1, 2, 3], [11, 12, 13], [21, 22, 23], [31, 32, 33]]), torch.Size([4, 3]))

上面二维张量和一维张量相加运算进行广播过程为:a的形状是(4,1),b的形状是(3),如果a和b要匹配上,第一步给b新添一个维度,我们有:a的形状是(4,1),b的形状是(1,3);第二步二者各自把为1的维度进行广播,就如上图中那样进行广播,最后运算完成。

本文链接地址:https://www.jiuchutong.com/zhishi/300164.html 转载请保留说明!

上一篇:Vue懒加载(vue懒加载机构树刷新)

下一篇:https是如何保证安全的

  • 投资性房地产采用成本模式计量
  • 职工薪酬支出及纳税调整
  • 电费发票隔月开如何做账
  • 城镇土地使用税的计税依据
  • 企业注册资金需要拿钱出来吗
  • 投资收益纳税调整明细表怎么填
  • 销售白酒是否要交消费税?
  • 结转和分配制造费用会计分录
  • 工会经费支付福利方案
  • 报税软件费用可以退吗
  • 营改增后哪些费用可以抵扣
  • 房地产企业的收入信息披露范围进一步扩大
  • 出口退税代理费用大概多少
  • 未完工的工程款怎么支付
  • 4s店改装车后卖车合法吗
  • 地税人工费税率计算是怎样的?
  • 一般纳税人提供服务税率
  • 无票收入如何做账
  • 定额发票有效期是多长时间?你知道吗?
  • 免租与转租分别什么意思
  • 电梯维护费怎么做账
  • 想要房贷利息抵税怎么办
  • 更正申报增值税会产生滞纳金吗
  • 资产负债表用来调节利润的负债
  • 汇算清缴所得税账务处理
  • 增值税做账做错怎么处理
  • 固定资产移交给别的单位怎么做账
  • 电子商务出来干嘛
  • 报销单据粘贴单样本
  • 去年的记账凭证错了怎么办
  • 报销冲销借款
  • php和mysql的结合是目前web开发中的黄金组合
  • 应付职工薪酬的明细科目有哪些
  • 企业缴纳的所得税应以净利润为基础
  • 社会保险个人部分计入什么科目
  • php不能通过浏览器运行吗
  • 4s店试驾车出售收益为什么不能做主营业务收入
  • 真相 百科
  • swatch of
  • 为什么电子章打印出是黑色的
  • 小规模增值税减征额怎么算
  • 劳务派遣差额征税的账务处理实例
  • wordpress站点地址如何设置
  • 织梦模板安装完整教程
  • 合租物业费按人头还是按房间分
  • 营业收入在财务报表上用什么字母表示
  • 银行承兑汇票如果到期了企业没有兑付
  • 小规模纳税人免税怎么做账
  • 会计从业资格证取消了吗
  • 公司法人的车辆给公司用可以报销费用吗
  • 境外所得税税收抵免操作指南
  • 应收账款的会计要素
  • 车船税怎么计账
  • 非正常损坏的商品计入哪个会计科目
  • 购入财务软件如何入账
  • 小企业无形资产取得的账务处理
  • 赠品视同销售价格如何确定?
  • 各大银行网银转账限额
  • 免税企业开了含税吗
  • 会计中的一级科员是什么
  • 弥补亏损的会计处理
  • 商业企业流程图
  • sqlserver索引语句
  • sqlserver获取当天零点时间
  • ubuntu支持软件
  • win10系统预览版
  • linux root用户登陆
  • win8创建我的电脑
  • perl 批量注释
  • perl脚本foreach
  • angularjs4
  • nodejs后端教程
  • jquery开发项目
  • 基于JAVASCRIPT实现的可视化工具是
  • 如何终止promise
  • Javascript字符串出现次数
  • jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
  • 国家税务局陕西电子税务局app
  • 留抵退税退回的款如何做账
  • 怎么打印个人所得税扣缴申报表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设