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

  • 数字人民币可以在微信上用吗(数字人民币可以离线支付吗)

    数字人民币可以在微信上用吗(数字人民币可以离线支付吗)

  • 借呗如何清除借款及还款记录呢(借呗如何清除借款及还款记录 永远)

    借呗如何清除借款及还款记录呢(借呗如何清除借款及还款记录 永远)

  • vivos6微信视频聊天如何开美颜(vivo手机微信视频)

    vivos6微信视频聊天如何开美颜(vivo手机微信视频)

  • 微信删除对话框后聊天记录还在吗(微信删除对话框之后聊天记录也被删除)

    微信删除对话框后聊天记录还在吗(微信删除对话框之后聊天记录也被删除)

  • iphone4s最佳系统版本

    iphone4s最佳系统版本

  • 路由器搜索不到wifi是什么原因(路由器搜索不到wifi)

    路由器搜索不到wifi是什么原因(路由器搜索不到wifi)

  • 朋友圈不让看是什么显示(朋友圈不让看是什么意思)

    朋友圈不让看是什么显示(朋友圈不让看是什么意思)

  • nova6耳机孔位置(nova6耳机孔在哪里)

    nova6耳机孔位置(nova6耳机孔在哪里)

  • 苹果x左上角小飞机是什么

    苹果x左上角小飞机是什么

  • 虎牙a类申诉要多久(虎牙直播a类有申诉成功的吗)

    虎牙a类申诉要多久(虎牙直播a类有申诉成功的吗)

  • 手机信号放大器对人体有害吗(手机信号放大器怎么调试)

    手机信号放大器对人体有害吗(手机信号放大器怎么调试)

  • 抖音最多可以关注多少人(抖音最多可以关注10000人)

    抖音最多可以关注多少人(抖音最多可以关注10000人)

  • qq扩列匹配上限是多少(qq扩列匹配频繁要多久恢复)

    qq扩列匹配上限是多少(qq扩列匹配频繁要多久恢复)

  • iphone用什么下载应用(iphone用什么下载种子文件)

    iphone用什么下载应用(iphone用什么下载种子文件)

  • 优酷会员能登几个手机(优酷会员能登几个电视)

    优酷会员能登几个手机(优酷会员能登几个电视)

  • se版本是什么意思(se版本是什么意思球鞋)

    se版本是什么意思(se版本是什么意思球鞋)

  • 华为手机运动健康怎么开启(华为手机运动健康怎么关闭)

    华为手机运动健康怎么开启(华为手机运动健康怎么关闭)

  • 爱奇艺怎么设置模式(爱奇艺怎么设置循环播放)

    爱奇艺怎么设置模式(爱奇艺怎么设置循环播放)

  • 亲情号对方能看到什么(亲情号对方能看到额度吗)

    亲情号对方能看到什么(亲情号对方能看到额度吗)

  • 怎么设置抖音锁屏壁纸(怎么设置抖音锁屏后继续播放)

    怎么设置抖音锁屏壁纸(怎么设置抖音锁屏后继续播放)

  • pentium是几位微处理器(pentium微机)

    pentium是几位微处理器(pentium微机)

  • 儿童手表sos怎么关(电话手表sos怎么用)

    儿童手表sos怎么关(电话手表sos怎么用)

  • apple watch series4可以播放音乐吗

    apple watch series4可以播放音乐吗

  • 5g手机用4g卡行吗(5g手机用4g卡可以正常使用吗)

    5g手机用4g卡行吗(5g手机用4g卡可以正常使用吗)

  • Linux怎么创建副本? Linux创建副本的教程(linux怎么创建一个用户组)

    Linux怎么创建副本? Linux创建副本的教程(linux怎么创建一个用户组)

  • React Hook - useState函数的详细解析

    React Hook - useState函数的详细解析

  • 不含税价格计算方法
  • 仓储服务费税率2021
  • 进项税额转出意思是下月还得缴吗
  • 中级财务会计计算分析题
  • 初级会计计划成本法例题
  • 公司给个人分红会计分录
  • 出口赠送客户怎么处理
  • 残保金滞纳金能超过本金吗
  • 出口业务运费可以抵扣吗
  • 先报个税还是先报增值税,有影响吗?
  • 资本化利息支出在哪个科目
  • 银行回单可以跨年补录吗
  • 一个人可以两家以上公司发放工资么
  • 企业购房发票可以抵税吗
  • 正常工资薪金所得是什么意思
  • 全国统一吗?
  • 总公司调到子公司
  • 广告费支出限额
  • 本月没开票怎么报税
  • 特定业务计算的应纳税所得额是什么意思
  • 关于开票时纳税的规定
  • 营改增的会计分录
  • 个体户需不需要银行开户
  • 小规模跨年发票可以入账吗
  • 商品流水账怎么做
  • 利润表里的营业成本包括哪些
  • 工程服务发票税率3%
  • 现金支票丢了
  • 虚拟股份分红
  • 股票投资报酬率怎么算excel
  • 什么是保守型证券
  • ospf区域间路由和区域内路由
  • 股权转让定金怎么做账
  • 【AutoGPT】你自己运行,我先睡了—— ChatGPT过时了吗?
  • 申报个体经营所得税款所属期怎么填
  • Python人脸识别
  • zero-shot, one-shot和few-shot
  • 3d人体骨骼模型软件
  • 促销赠品的会计处理
  • 现金溢余和短缺的会计分录
  • 微服务框架图
  • php网站用什么软件修改
  • 送货运输费用税率
  • 合同资产与应收账款的关系
  • 支付工程款的会计科目怎么写
  • 金融企业往来支出科目属于什么科目
  • 企业的净利润率
  • 企业收到运输发票
  • mysql存long
  • 发票开具就能做账了吗?
  • 新建厂房环评费会计科目
  • 当月减少的固定资产为什么计提折旧
  • 城镇土地使用税每年都要交吗
  • 营业外支出核算的内容
  • 库存商品盘盈是什么意思
  • 电子税务局申报比对异常
  • 上市公司固定资产增加是好事吗
  • 个人账号可以向对公账户转账吗
  • 会计做账过程中遇到的问题
  • 期间费用明细表在哪里找
  • 管理费用的明细科目如何设置
  • 旅游饮食服务企业会计核算的特点包括
  • sqlbean
  • centos怎么修改文件权限
  • 电脑xp操作系统
  • win7开机zyufs7
  • android openconnect
  • shell脚本 定义变量
  • material design admin
  • androidstudio手机编程软件
  • unity的协程
  • jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
  • jquery 图片裁剪
  • node.js import
  • python中的set方法
  • 上海网上纳税申报流程
  • 税务机关文化建设
  • 财政资金存在问题
  • 2021年福建医保什么时候交
  • 自然人电子税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设