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

  • 拯救者性能模式怎么开(拯救者性能模式有什么用)

    拯救者性能模式怎么开(拯救者性能模式有什么用)

  • 苹果11底下白条怎么去掉(苹果11底下白条怎么关闭)

    苹果11底下白条怎么去掉(苹果11底下白条怎么关闭)

  • 手机充了一晚上电才50(手机充了一晚上电)

    手机充了一晚上电才50(手机充了一晚上电)

  • 路由器断流怎么解决(无线路由器 断流)

    路由器断流怎么解决(无线路由器 断流)

  • 6s可以升级13.5吗(6s能升级ios13)

    6s可以升级13.5吗(6s能升级ios13)

  • 小米新机mix4发布时间(小米mix4发热严重官方回应)

    小米新机mix4发布时间(小米mix4发热严重官方回应)

  • 视频被收藏已过期是怎么回事(视频收藏已过期怎么恢复)

    视频被收藏已过期是怎么回事(视频收藏已过期怎么恢复)

  • qq清除数据聊天记录还在吗(qq清除数据聊天记录会保留吗)

    qq清除数据聊天记录还在吗(qq清除数据聊天记录会保留吗)

  • 抖音里的广告怎么找到(抖音里的广告怎么接的)

    抖音里的广告怎么找到(抖音里的广告怎么接的)

  • 微信添加过的人有记录吗(微信添加过的人能查到吗)

    微信添加过的人有记录吗(微信添加过的人能查到吗)

  • 苹果手机忘了id密码怎么办(苹果手机忘了id密码怎么恢复出厂设置)

    苹果手机忘了id密码怎么办(苹果手机忘了id密码怎么恢复出厂设置)

  • 淘宝购物津贴怎么领(淘宝购物津贴怎么领取)

    淘宝购物津贴怎么领(淘宝购物津贴怎么领取)

  • 蓝牙耳机acc什么意思(蓝牙耳机acc什么意思啊)

    蓝牙耳机acc什么意思(蓝牙耳机acc什么意思啊)

  • 华为智慧屏55寸什么时候上市(华为智慧屏55寸挂架)

    华为智慧屏55寸什么时候上市(华为智慧屏55寸挂架)

  • 手机屏幕上的时间删除了怎么恢复(手机屏幕上的时间怎么移动位置)

    手机屏幕上的时间删除了怎么恢复(手机屏幕上的时间怎么移动位置)

  • 怎样删掉新闻资讯(怎么去掉新闻)

    怎样删掉新闻资讯(怎么去掉新闻)

  • 苹果手机定位安卓手机怎么弄(苹果手机定位安全吗)

    苹果手机定位安卓手机怎么弄(苹果手机定位安全吗)

  • miui相机是什么(miui相机是什么相机)

    miui相机是什么(miui相机是什么相机)

  • XP系统CAD连接办公室局域网中的打印机打印图纸的(xp系统可以安装cad吗)

    XP系统CAD连接办公室局域网中的打印机打印图纸的(xp系统可以安装cad吗)

  • 深度学习|论文中常用的注意力模块合集(下)

    深度学习|论文中常用的注意力模块合集(下)

  • 学习笔记:统计建模方法的比较分析(统计 α)

    学习笔记:统计建模方法的比较分析(统计 α)

  • JavaScript-百炼成仙(第1节掌握JavaScript基础1.1-1.21)(javascript百炼成仙免费)

    JavaScript-百炼成仙(第1节掌握JavaScript基础1.1-1.21)(javascript百炼成仙免费)

  • 【Node.js】初识Node.js(node.js deno)

    【Node.js】初识Node.js(node.js deno)

  • 个税汇缴常见问题
  • 公司怎么进行网上注册
  • 以前年度损益调整
  • 贴现利息应计入什么费用
  • 员工超过万人公司
  • 从租计征的房产税纳税期限
  • 金融企业税务稽查案例分析
  • 取得无形资产当期收入
  • 个人境外收入如何开发票
  • 实收资本印花税最新政策2023年
  • 小规模购买财务软件怎么做分录
  • 事业单位事业收入和经营收入要上缴财政
  • 公司将自有车辆对外出租
  • 季报现金流量表怎么填
  • 所得税预缴资产怎么计算
  • 进项转出税务处理
  • ios14 举报短信
  • 购买预付卡如何记账
  • 邮件远程控制
  • 固定资产减值判断标准
  • 电脑网络提示ip地址错误怎么办
  • php零基础入门教程
  • PHP:imagesetthickness()的用法_GD库图像处理函数
  • 供热企业享受增值税吗
  • php 抓取别的网站的内容
  • 建筑工程甲方公司
  • 嵌入式从业10年,聊聊我对工业互联网和消费物联网的看法 | 文末赠书4本
  • thinkphp钩子场景
  • 遍历队列中所有数据元素
  • 增值税发票复印件可以入账吗与原件一致
  • js数组方法filter
  • 长期待摊费用的摊销分录
  • 提取公益金会计怎么做账
  • 网上税则
  • js中同步如何理解
  • wordpress站点地址如何设置
  • phpcms缩略图不要自动裁剪的设置方法
  • mongorepository排序
  • 股权转让需要开票吗怎么开
  • 撰写广告
  • db2运维命令
  • 承兑汇票大回头是什么意思
  • 小规模纳税人免税怎么做账
  • 已核准未登记名称我可以注册吗
  • 利润表中本月数,本期金额指什么
  • 无形资产达到可使用状态前如何入账
  • 客户给我们的罚款怎么查
  • 收到托收凭证怎么做分录
  • 过账发票和不过票的区别
  • 新公司利润分配
  • 企业营改增后的会计处理有何变化
  • mysql 修改值
  • mysql开发教程
  • mysql行锁的作用
  • 如何清理注册表的垃圾文件
  • win7密码输入错误被锁住
  • win7 重装系统
  • 电脑取消开机密码显示不能改
  • Win7系统如何打开磁盘管理工具
  • red hat linux安装
  • win7temp文件夹在哪
  • javascript访问用户cookie
  • node.js加密
  • cocos2dx-js
  • jquery中checkbox使用方法简单实例演示
  • 内部变量 变成 外部变量
  • python文本处理教程
  • js绑定函数
  • python编程数字
  • 绑定安卓
  • jquery使用css
  • 使用简单工厂模式的好处
  • 多个javascript 合并
  • div-d和div-i
  • 侧边栏html
  • python中元祖的用法
  • 代收代付税务条件
  • 国家税务2018年61号附件
  • 商场销售高档化妆品需要缴纳消费税吗
  • 湖南电子税务局网上办税大厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设