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

  • 一加7tpro什么时候上市

    一加7tpro什么时候上市

  • 微信怎么设置双封(微信怎么设置双向封号)

    微信怎么设置双封(微信怎么设置双向封号)

  • 什么是程序设计的核心是程序设计的灵魂(什么是程序设计语言)

    什么是程序设计的核心是程序设计的灵魂(什么是程序设计语言)

  • ios13.4更新了什么功能(iphone13 更新了什么)

    ios13.4更新了什么功能(iphone13 更新了什么)

  • 抖音不花钱能上热门吗(抖音不花钱上热门的几率)

    抖音不花钱能上热门吗(抖音不花钱上热门的几率)

  • word图片裁剪怎么弄(word图片裁剪怎么操作方法)

    word图片裁剪怎么弄(word图片裁剪怎么操作方法)

  • 哔哩哔哩黑名单在哪(哔哩哔哩黑名单怎么解除)

    哔哩哔哩黑名单在哪(哔哩哔哩黑名单怎么解除)

  • 手机麻麻提现多久到账(手机麻麻提现成功钱到哪里去了)

    手机麻麻提现多久到账(手机麻麻提现成功钱到哪里去了)

  • 小米手机其他文件占用内存太多怎么办(小米手机其他文件40个G)

    小米手机其他文件占用内存太多怎么办(小米手机其他文件40个G)

  • 苹果手机有没有录屏功能(苹果手机有没有红外线功能)

    苹果手机有没有录屏功能(苹果手机有没有红外线功能)

  • 辅助触控怎么设置(辅助触控怎么设置返回)

    辅助触控怎么设置(辅助触控怎么设置返回)

  • 华为nova5pro低配版是什么意思(华为Nova5Pro低配版)

    华为nova5pro低配版是什么意思(华为Nova5Pro低配版)

  • 手机手势密码忘了怎么解锁(手机手势密码忘了怎么办不清数据)

    手机手势密码忘了怎么解锁(手机手势密码忘了怎么办不清数据)

  • ios清理缓存(ios清理缓存插件)

    ios清理缓存(ios清理缓存插件)

  • 华为手机锁屏时间设置在哪里(华为手机锁屏时显示步数在哪里设置)

    华为手机锁屏时间设置在哪里(华为手机锁屏时显示步数在哪里设置)

  • 硬盘录像机资源不足(录像带转存电脑的方法)

    硬盘录像机资源不足(录像带转存电脑的方法)

  • 苹果11怎么上双卡(苹果11怎么双开)

    苹果11怎么上双卡(苹果11怎么双开)

  • 华为nova5pro有方舟编译器吗(华为nova5pro功能演示视频)

    华为nova5pro有方舟编译器吗(华为nova5pro功能演示视频)

  • 华为荣耀20是双卡吗(华为荣耀20双系统怎么设置)

    华为荣耀20是双卡吗(华为荣耀20双系统怎么设置)

  • 微信上面有个耳朵是什么,怎么关闭(微信上面有个耳朵是什么,怎么关闭)

    微信上面有个耳朵是什么,怎么关闭(微信上面有个耳朵是什么,怎么关闭)

  • MacOSX系统怎么开启Root账户?(如何打开mac系统)

    MacOSX系统怎么开启Root账户?(如何打开mac系统)

  • Echarts+高德地图,获取全国省市区,区域板块地图获取并高亮显示(echarts高德地图自定义区域)

    Echarts+高德地图,获取全国省市区,区域板块地图获取并高亮显示(echarts高德地图自定义区域)

  • 分享帝国cms7.0在后台评论表中显示自定义评论字段内容的方法(帝国cms8.0版)

    分享帝国cms7.0在后台评论表中显示自定义评论字段内容的方法(帝国cms8.0版)

  • 企业申报个税软件怎么下载
  • 企业纳税人是什么
  • 已交税金是什么类
  • 增值税发票是什么纸张型号
  • 库存商品损坏怎么做账
  • 同一家单位发票不一样
  • 三栏式明细账月结
  • 广告制作税目
  • 盘盈的存货一般作为什么处理
  • 政策信息咨询服务要到哪个部门办理资质
  • 公司零申报怎么注销
  • 企业间拆借资金是否缴税
  • 通行费电子增值税怎么算
  • 建设工程服务招标管理办法
  • 幼儿园增值税优惠政策
  • 非税收入一般缴款书可以抵扣吗
  • 企业注销建造师流程
  • 一次性医保补助多少钱
  • 母公司给子公司担保需要决议吗
  • 国税网不能打印,怎么设置
  • 罚款费用报销单怎么写
  • 借现金还银行怎么做账
  • 上月发票冲销怎么弄
  • 如何开锅
  • 押金算不算房租
  • 暂时关闭朋友圈
  • 硬盘的日常维护需要做到什么?
  • 王者荣耀中太乙真人的技能有哪些?
  • 其他业务收入不影响营业利润
  • php面向对象的三大特征
  • php页面之间传值
  • 家用电脑分为哪几类
  • php可以做什么脚本
  • 消费税的计税方法有
  • php stristr函数
  • 政府财政会计核算基础是什么
  • 已收到材料至月末仍未收到发票账单
  • 代开增值税额与实际缴款额差一分钱如何入账
  • vue3安装配置
  • typescriptlang
  • win11右键没了
  • 浅析Laravel5中队列的配置及使用
  • 取得农产品免税发票如何账务处理
  • 参展费会计分录
  • 有合同没有发票怎么入账
  • mongodb开启远程连接
  • 产品检测费计入成本吗
  • 现金流量表怎么填写
  • 车辆购置税的计税价格为不含增值税的全部价款
  • 专用发票红冲有时间限制吗
  • 进项税额和销项税额有什么区别
  • 银行存款一直没有记账怎么调整
  • 信用卡产生滞纳金
  • 支付的员工餐费怎么记账
  • 测试账户收入怎么处理
  • 业务招待费算期间费用吗
  • 没有认证的进项发票可以做成本吗
  • 新手会计建账的资料在哪里弄
  • mysql隔离级别详解
  • win8正版系统
  • xp系统无法启动怎么办
  • linux中samba服务器的设计方案
  • 如何关闭windows更新
  • windows关机电源不断电
  • win8谷歌浏览器出现无法访问此网站
  • win10没有win8好用
  • cocos2dx粒子效果
  • 超大安卓游戏
  • jquery 插件写法
  • js设计模式有什么用
  • angularjs教程
  • 深入浅析是什么意思
  • python struct库
  • javascript HTML+CSS实现经典橙色导航菜单
  • python3解析json
  • sudo提权漏洞
  • java 视频教程
  • 瀑布流水风景图片
  • 成都税务局网站首页
  • 网上预约税务局怎么弄
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设