位置: 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是如何保证安全的

  • 小米蓝牙耳机只能连接一个(小米蓝牙耳机只能连接一个怎么办)

    小米蓝牙耳机只能连接一个(小米蓝牙耳机只能连接一个怎么办)

  • 抖音消息界面怎么变动了(抖音消息界面怎么变横排)

    抖音消息界面怎么变动了(抖音消息界面怎么变横排)

  • 安卓数据线始终无法给苹果手机充电(安卓数据线不能用了怎么办)

    安卓数据线始终无法给苹果手机充电(安卓数据线不能用了怎么办)

  • 电脑电源有滋滋声怎么解决(电脑电源有滋滋滋的电流声)

    电脑电源有滋滋声怎么解决(电脑电源有滋滋滋的电流声)

  • 电话号码是空号怎么回事(电话号码是空号是啥意思)

    电话号码是空号怎么回事(电话号码是空号是啥意思)

  • 微信收到的文件下载不了(微信收到的文件保存在哪里)

    微信收到的文件下载不了(微信收到的文件保存在哪里)

  • 联想80ww什么型号(联想 80ww)

    联想80ww什么型号(联想 80ww)

  • 酷睿10代什么时候上市(10代酷睿什么时候降价)

    酷睿10代什么时候上市(10代酷睿什么时候降价)

  • cydia是什么软件(cydia是啥)

    cydia是什么软件(cydia是啥)

  • 微信怎么解除黑名单中的人(微信拉黑怎么移除出来)

    微信怎么解除黑名单中的人(微信拉黑怎么移除出来)

  • 手机tp保护膜是什么膜(手机tp保护膜多少钱)

    手机tp保护膜是什么膜(手机tp保护膜多少钱)

  • console线是什么线(console线长什么样)

    console线是什么线(console线长什么样)

  • 支付宝锁屏密码在哪里设置(怎么设置支付宝锁屏密码)

    支付宝锁屏密码在哪里设置(怎么设置支付宝锁屏密码)

  • iphone在线啥意思(iphone在线是什么)

    iphone在线啥意思(iphone在线是什么)

  • vivo手机怎么改微信铃声(vivo手机怎么改时间)

    vivo手机怎么改微信铃声(vivo手机怎么改时间)

  • 电脑开始菜单取消隐藏(电脑开始菜单里)

    电脑开始菜单取消隐藏(电脑开始菜单里)

  • iphone11多长多宽(苹果11多少厘米宽)

    iphone11多长多宽(苹果11多少厘米宽)

  • 虾米音乐怎么解绑淘宝(虾米音乐版权解除)

    虾米音乐怎么解绑淘宝(虾米音乐版权解除)

  • 怎么取消icloud储存空间自动续费(怎么取消icloud储存空间续费)

    怎么取消icloud储存空间自动续费(怎么取消icloud储存空间续费)

  • ps怎么把图片拉大拉小(ps怎么把图片拉直)

    ps怎么把图片拉大拉小(ps怎么把图片拉直)

  • 微视怎么激活免流量(微视领取vip)

    微视怎么激活免流量(微视领取vip)

  • 华为p30pro屏幕供应商(华为p30pro屏幕供电引脚在哪里)

    华为p30pro屏幕供应商(华为p30pro屏幕供电引脚在哪里)

  • 酷狗音乐自动续费怎么取消(酷狗音乐自动续费了怎么退款)

    酷狗音乐自动续费怎么取消(酷狗音乐自动续费了怎么退款)

  • 蘑菇街如何解绑银行卡(蘑菇街怎么解绑微信号)

    蘑菇街如何解绑银行卡(蘑菇街怎么解绑微信号)

  • directx.exe是病毒程序吗 directx进程安全吗(directx安全吗)

    directx.exe是病毒程序吗 directx进程安全吗(directx安全吗)

  • vue中动态引入图片为什么要是require, 你不知道的那些事(vue导入动图)

    vue中动态引入图片为什么要是require, 你不知道的那些事(vue导入动图)

  • 职工福利费的税额
  • 开具增值税发票未报送是什么意思?
  • 其他应付款二级明细
  • 润滑油怎么做账务处理
  • 负数发票要给购票人吗
  • 企业之间资金借贷需要交税吗
  • 公司补缴社保协议书
  • 预算内往来款
  • 电脑怎么写记事本
  • 不能确认收入的应收账款怎么做账
  • 公司名义看望病人合法吗
  • 什么叫社保人员
  • 出口退免税是什么意思
  • 开发项目的会议纪要
  • 纳税人证明是完税证明吗
  • 制作费用怎么转入成本
  • 小规模企业现金规定最新
  • 总资产平均余额是资产总额吗
  • 剑灵配置要求2020官方
  • php 生成opcode
  • PHP:pg_last_notice()的用法_PostgreSQL函数
  • 进程process
  • 购买性支出和转移性支出的区别可以归纳为()
  • 代开专用发票的流程资料要求
  • 关联企业拆借资金的税务处理
  • 动态模型图如何制作
  • yii2框架结构
  • reset fields
  • winform开发技术有哪些
  • 可视化思考
  • tensorflow gan
  • 旅游景点html代码
  • ajax提交表单数据
  • 保险公司的应收账款有哪些
  • 建筑业的印花税是按含税还是不含税?
  • 帝国cms栏目可以看吗
  • 500元以下开收据要交税吗
  • 第二季度所得税可以弥补以前年度亏损吗
  • 工会收取的工会经费应缴纳增值税
  • Python打开文件的代码
  • python numpy 删除元素
  • 帝国cms简介标签
  • 独立核算的分公司可以享受六税两费减半吗
  • 免税农产品范围目录的文件
  • 日常费用报销表格
  • 向农业生产者收购的原木 进项
  • 什么是叫资产负债表项目
  • 所得税汇算清缴调整后要账务处理吗
  • 小规模纳税人销售自己使用过的物品
  • 进项税可以跨年结转吗
  • 党委经费是国家政府出吗?
  • 过账发票和不过票的区别
  • 建筑公司可以收工程款发票吗
  • 日记账是否必须全部建立
  • mysql日志记录
  • Windows Server 2003下DHCP服务器的安装与简单配置图文教程
  • ubuntu设置u盘启动项
  • 怎么把html转换成psd
  • windows10自带磁盘修复工具
  • mac 怎么复制文件
  • win10系统无法运行exe文件
  • win7 windows安全中心
  • 微软认为
  • Unity Socket TCP
  • 深入理解typescript 豆瓣
  • js获取时间精确到毫秒
  • js跨域请求json数据
  • windows下安装python环境
  • js实现盒子移动
  • js selectionchange
  • javascript总结笔记
  • javascript教程完整版
  • node优秀库
  • javascript要学到什么程度
  • python multinomial
  • 怎么查询电子票是否被红冲
  • 携程怎么订
  • 未开票收入下月开票会计分录
  • 公司收购农民的农产品能贴我公司标签吗
  • 2018年3月增值税申报期限
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设