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

  • vivox70pro+怎么开启电池百分比(vivox70pro怎么开启无线充电)

    vivox70pro+怎么开启电池百分比(vivox70pro怎么开启无线充电)

  • 荣耀X30max怎么换壁纸(荣耀30后屏怎么换)

    荣耀X30max怎么换壁纸(荣耀30后屏怎么换)

  • iphone密码忘记了怎么解锁(iphone密码忘记了,面容也不能解怎么办)

    iphone密码忘记了怎么解锁(iphone密码忘记了,面容也不能解怎么办)

  • 苹果如何设置自动开机(苹果如何设置自动关机)

    苹果如何设置自动开机(苹果如何设置自动关机)

  • excel浅红色填充色深红色文本怎么设置(excel设置浅红色填充)

    excel浅红色填充色深红色文本怎么设置(excel设置浅红色填充)

  • 微信突然提示未注册(微信显示未成年是怎么回事)

    微信突然提示未注册(微信显示未成年是怎么回事)

  • surface充电白灯不亮(surface充电白灯闪烁后不亮)

    surface充电白灯不亮(surface充电白灯闪烁后不亮)

  • 多媒体课件制作工具可以分为哪四类(多媒体课件制作实训总结)

    多媒体课件制作工具可以分为哪四类(多媒体课件制作实训总结)

  • 隐藏会话是什么意思(隐藏会话有提示吗)

    隐藏会话是什么意思(隐藏会话有提示吗)

  • 芒果TV超前点播是什么意思(芒果tv超前点播覆流年)

    芒果TV超前点播是什么意思(芒果tv超前点播覆流年)

  • 华为mate30pro怎么装双卡(华为mate30pro怎么刷机)

    华为mate30pro怎么装双卡(华为mate30pro怎么刷机)

  • 微信解冻收不到验证码怎么办(微信解冻为什么解冻不了)

    微信解冻收不到验证码怎么办(微信解冻为什么解冻不了)

  • 华为手机暂不支持此类文件(华为手机暂不支持HDR视频)

    华为手机暂不支持此类文件(华为手机暂不支持HDR视频)

  • 苹果11屏幕发黄怎么调(苹果11屏幕发黄怎么回事)

    苹果11屏幕发黄怎么调(苹果11屏幕发黄怎么回事)

  • 苹果11怎么开启电池百分比(苹果11怎么开启定位功能)

    苹果11怎么开启电池百分比(苹果11怎么开启定位功能)

  • 数控编程6个步骤(数控编程6个步骤是什么)

    数控编程6个步骤(数控编程6个步骤是什么)

  • 苹果微信视频能美颜吗(苹果微信视频能录音吗)

    苹果微信视频能美颜吗(苹果微信视频能录音吗)

  • 亲密付对方看到订单吗(亲密付对方看到什么显示)

    亲密付对方看到订单吗(亲密付对方看到什么显示)

  • 小度怎么添加设备(小度怎么添加设备扫码扫哪个码)

    小度怎么添加设备(小度怎么添加设备扫码扫哪个码)

  • vivo手机更改图标外观(vivo手机更改图标大小)

    vivo手机更改图标外观(vivo手机更改图标大小)

  • switch日版有中文吗(switch日版和国行)

    switch日版有中文吗(switch日版和国行)

  • 1699是苹果什么型号(苹果1699是什么意思)

    1699是苹果什么型号(苹果1699是什么意思)

  • 千库网如何用微信密码登录(怎么在千库网挣钱)

    千库网如何用微信密码登录(怎么在千库网挣钱)

  • python如何将相对路径转换为绝对路径?(python对应位置相乘)

    python如何将相对路径转换为绝对路径?(python对应位置相乘)

  • 公车私车税收区别
  • 普通发票为什么只能领一张
  • 弃置费用的财务费用可以税前扣除吗
  • 个体户免税金额现在是多少
  • 制作费开票属于什么科目
  • 客户维护费计入什么科目
  • 分公司企业所得税汇总缴纳还是单独缴纳
  • 正版手写
  • 自用电管理
  • 房屋建筑物折旧率计算
  • 政府补助的会计核算形式有哪些
  • 公司房租发票是专票还是普票
  • 应付账款坏账准备的会计分录
  • 应付票据保证金的会计分录怎么写
  • 多交的应交税费怎么算
  • 自产自销免税物品包括哪些
  • 企业计提固定资产折旧
  • 出口预收货款发生的时间和报表上的时间不一样怎么办
  • 以前的服务发票当期确认收入怎么做账
  • 无偿划转财政厅
  • 个税手续费返还计入哪个科目
  • 离职补偿金个税计算器2022
  • 外汇网上申报操作流程图
  • 企业出售已使用过的固定资产税率
  • 收到厂房租金要交税吗
  • 库存周转天数计算实例
  • 发票的开具时效为
  • 营改增后一般纳税人税率是多少
  • 电脑开始菜单在右边怎么调回来
  • 无形资产增值税计入入账价值吗
  • 开红字发票后再开蓝字发票应如何入账?
  • 建筑行业收到工程款会计分录
  • pps影音怎么看电视直播
  • 指定的网络名不再可用 共享打印机00x0000040
  • php字符串定义
  • php string函数
  • 费用发票开的是跨年的账务处理?
  • 特许权使用费属于销售收入吗
  • 查补的增值税能抵留抵吗
  • 跨站脚本攻击是什么
  • 马德拉海岛
  • yarn install报错
  • php 查找数组元素
  • 持有至到期投资在资产负债表怎么填
  • 保险公司赔付进项税
  • phpstudy配置
  • 企业新产品销售收入数据
  • 前端开发软件哪个最好
  • 机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测
  • 租金没有发票可以退税吗
  • 目前功能最强大的手机
  • 发票开预付卡充值可以计入费用吗
  • 汽油费入什么会计分录
  • sqlserver怎么显示结果窗口
  • 关联表的作用
  • 消费税出口退税吗
  • 远期支票最长期限
  • 没收到电费账单怎么办
  • 盘亏应该怎么处理
  • 航空公司变更起飞时间赔偿
  • 汇算清缴资产总额全年季度平均值怎么算
  • 什么叫建账
  • sql中函数 判断是否是null
  • kdeskcore.exe是什么
  • window7电源设置
  • win8一直在开始界面
  • js实现图片放大功能
  • vim按键
  • CCProgressTimer 进度条动画在cocos2dx+lua中的使用
  • windows与苹果
  • node.js快速入门
  • python 进阶
  • 有关于js构造函数的题
  • vue 分页 实现
  • js如何使用
  • jquery不生效的原因
  • jquery 选择
  • 签订税务三方协议
  • 安徽省税务干部学校
  • 收购烟叶支付的价外补贴怎么处理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设