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

  • 苹果死机怎么重启

    苹果死机怎么重启

  • 华为nova5pro处理器多少(华为nova5pro处理器相当于骁龙多少)

    华为nova5pro处理器多少(华为nova5pro处理器相当于骁龙多少)

  • oppo手机怎样清灰(oppo手机怎样清理隐藏垃圾)

    oppo手机怎样清灰(oppo手机怎样清理隐藏垃圾)

  • 淘宝申请小二介入在哪里(淘宝申请小二介入需要多久可以处理好)

    淘宝申请小二介入在哪里(淘宝申请小二介入需要多久可以处理好)

  • 安卓系统和苹果系统的区别(安卓系统和苹果系统笔记本电脑)

    安卓系统和苹果系统的区别(安卓系统和苹果系统笔记本电脑)

  • b站弹幕两分钟后怎么删(b站弹幕两分钟后删除)

    b站弹幕两分钟后怎么删(b站弹幕两分钟后删除)

  • 微信号可以不绑定手机号么(一个微信号可以登录两个微信吗)

    微信号可以不绑定手机号么(一个微信号可以登录两个微信吗)

  • 快手作品显示x什么意思(快手作品显示刷号类直播)

    快手作品显示x什么意思(快手作品显示刷号类直播)

  • 表格中日期后面的0怎么不显示(表格中日期后面加文字就年月日几个字就不见了)

    表格中日期后面的0怎么不显示(表格中日期后面加文字就年月日几个字就不见了)

  • 全半角切换快捷键(全半角切换快捷键怎么改不了)

    全半角切换快捷键(全半角切换快捷键怎么改不了)

  • 荣耀30s和v30的区别(华为荣耀30s和华为荣耀v30哪个好)

    荣耀30s和v30的区别(华为荣耀30s和华为荣耀v30哪个好)

  • 域名系统dns实现的映射是

    域名系统dns实现的映射是

  • 手机微信突然没有了怎么办(手机微信突然没有声音)

    手机微信突然没有了怎么办(手机微信突然没有声音)

  • 手机有网为什么微信发不出去消息(手机有网为什么显示无法连接网络)

    手机有网为什么微信发不出去消息(手机有网为什么显示无法连接网络)

  • 为什么淘宝待收货不显示数量(为什么淘宝待收货数量比实际购买多)

    为什么淘宝待收货不显示数量(为什么淘宝待收货数量比实际购买多)

  • 抖音需要实名认证吗(抖音需要实名认证怎么跳过)

    抖音需要实名认证吗(抖音需要实名认证怎么跳过)

  • wps历史记录在哪(wps历史记录在哪手机和电脑同步吗)

    wps历史记录在哪(wps历史记录在哪手机和电脑同步吗)

  • 抖音视频怎么没有合拍(抖音视频怎么没有收藏功能了)

    抖音视频怎么没有合拍(抖音视频怎么没有收藏功能了)

  • 闪迪u盘为什么很烫(闪迪u盘为什么这么贵)

    闪迪u盘为什么很烫(闪迪u盘为什么这么贵)

  • 华为p30怎么设置屏幕亮的时间(华为p30怎么设置24小时)

    华为p30怎么设置屏幕亮的时间(华为p30怎么设置24小时)

  • x27摄像头怎么升降(x27摄像头是升降的吗)

    x27摄像头怎么升降(x27摄像头是升降的吗)

  • 分析微博营销的有哪些误区(分析微博营销的方法)

    分析微博营销的有哪些误区(分析微博营销的方法)

  • 华为折叠双屏什么上市(华为折叠屏怎么使用双屏)

    华为折叠双屏什么上市(华为折叠屏怎么使用双屏)

  • Word下划线怎么打(word下划线怎么延长)

    Word下划线怎么打(word下划线怎么延长)

  • 报错ValidationError: Progress Plugin Invalid Options(报错专业怎么补救)

    报错ValidationError: Progress Plugin Invalid Options(报错专业怎么补救)

  • 年报补交企业所得税如何写会计分录
  • 何谓关税
  • 代销商品怎么交增值税
  • 小规模没有成本票怎么做账
  • 企业垃圾处理费计入什么科目
  • 增值税专用发票税额怎么抵扣
  • 受托代销商品和受托代销商品款是什么科目
  • 企业销售赠券的增值税如何处理
  • 软件销售购销合同
  • 进项已经抵扣会退回吗
  • 赠品转做商品销售的账务处理如何做?
  • 公司支付收益权转让怎么做账?
  • 收到的出口退税款一直有余额吗
  • 发票红冲钱怎么退给对方
  • 预缴企业所得税税率
  • 专利权计入什么所得
  • 确认坏账损失的分录怎么做
  • 如何设置自动登录账号
  • 个体户需要交钱吗
  • 银行多收的开户费怎么办
  • mac os x 10.0
  • sharedprem.exe - sharedprem是什么进程 有什么作用
  • 鸿蒙系统怎么隐藏应用图标
  • 非正常原因造成的损失计入什么科目
  • 鸿蒙系统怎么退出开发者选项
  • 喝薏米红豆水最佳时间
  • yii2关联查询
  • 陈列费用明细表怎么做
  • php正则函数内容匹配
  • 分公司独立核算和非独立核算哪个好
  • html关于边框的代码
  • php中类静态成员描述不正确的是
  • 个人独资企业法律责任
  • uniapp云打包收费
  • 前端yck
  • 使用php免费发送短信
  • 管理费用税金怎么算
  • 上传到织梦的网站没有图片
  • 企业所得税汇算清缴
  • 结算业务书汇票怎么写
  • 工资次月发放法律规定
  • 进项发票已入账 未开具出口发票
  • SQLServer 2008中通过DBCC OPENTRAN和会话查询事务
  • 保险公司的奖励制度
  • sqlserver数据库定时任务
  • 软件企业研发费用
  • 现金预算属于业务预算吗
  • 知道收入不知道成本
  • 个体工商户还没开业也要报税吗
  • 公交车经营权转让案例
  • 公司注销实收资本要清零吗?
  • 衍生工具属于什么科目
  • 新建厂房房产证办理流程
  • 无票销售纳税后怎么处理
  • 企业缴纳社保费包括企业部分和个人部分
  • 向投资者分配利润或股利为什么减少所有者权益?
  • 资产负债表各项目占比
  • 月末怎么计提摊销和结转
  • 应付职工薪酬包括福利费吗
  • 小企业会计准则以前年度损益调整
  • mysql order by desc
  • sqlserver 通用分页存储过程
  • sqlserver 统计sql语句大全收藏
  • 苹果mac操作系统名称
  • 查看win8.1版本
  • SCHDPL32.EXE - SCHDPL32是什么进程 有什么用
  • 在Linux系统中安装MySQL
  • android 数据库app
  • javascript对象的种类
  • jquery插件怎么写
  • unity3d总结
  • linux shell if -e
  • node.js调用c
  • 有关中秋节的古诗
  • 深入理解计算机系统 电子书
  • 详解Javascript事件驱动编程
  • python单链表输出1到10
  • python中的类怎样理解
  • 财税公司工资怎么样
  • 江苏税务实名认证怎么更改
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设