4. Broadcasting机制

Broadcasting机制在TensorFlow中是一种张量维度扩展的方式,它避免了数据层面的复制,通过插入尺寸为1的维度来匹配不同大小的张量。该机制在处理如向量加法等操作时减少了内存消耗,例如在给所有学生加五分的需求中。Broadcasting通过从最低维度匹配并按需扩展,允许不完全匹配的张量进行运算。tf.broadcast_to函数用于将输入张量的形状转换为指定形状,实现这一机制。Broadcasting对比Tile,在效率上更优,因为它不复制内存。
摘要由CSDN通过智能技术生成

4. Broadcasting 机制

张量维度扩张的一个手段,对一个数据重复n多次,但是没有在数据层面上的复制

Key idea
  1. insert 1 dim ahead if needed
    需要位置插入 1 dim。
  2. espand dims with size 1 to same size
    给 dim 为 1 的扩展成所需的数量

例如:Feature maps: [4, 32, 32, 3]
变化过程:Bias: [3] → [1, 1, 1, 3] → [4, 32, 32, 3]

In [31]: x=tf.random.normal([4,32,32,3])

In [32]: (x+tf.random.normal([3])).shape
Out[32]: TensorShape([4, 32, 32, 3])

In [33]: (x+tf.random.normal([32,32,1])).shape
Out[33]: TensorShape([4, 32, 32, 3])

In [34]: (x+tf.random.normal([4,1,1,1])).shape
Out[34]: TensorShape([4, 32, 32, 3])

In [35]: (x+tf.random.normal([1,4,1,1])).shape #报错
---------------------------------------------------------------------------
InvalidArgumentError                      Traceback (most recent call last)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值