### 1、介绍
实际上不对数据进行操作(主要指copy操作和expand_dims操作),但可以实现数据扩张.
### 2、tf.broadcast_to
**之前我们使用的全连接 layers.Dense 中用到了扩张**
已知:$X@W+b$
$[b,784]@[784,10]+[10]=[b,10]$
$[b,784]@[784,10]=[b,10]$
$[b,10]+[10]$
**其中[10]会自动扩张成[b,10],之后才可以做加法计算**
#### 2.1 扩张原理
已知一张图片维度【4,32,32,3】
已知一个变量b=【3】
[3]->[1,1,1,3 ]->[4,32,32,3]
只有维度为1的才可以扩张
#### 2.2 为什么要这么做?
b 变量变换的时候,不需要考虑前面的维度,会自动匹配前面的维度
例如:【4,35,8】给全部的学生加5分
【4,35,8】+【b】,这是b可以自动对全部班级,全部学生,全部成绩加分
【4,35,8】+【student, b】 这里可以针对学生来进行加分,而不是全部学生
#### 2.3 好处
简洁方便,节约内存
#### 2.4 例子
```py
# 初始化数据
x=tf.random.normal([4,32,32,3])
# 自动调用broadcasting
x+tf.random.normal([3])
# 手动调用
a=tf.ones([3,4])
a2=tf.broadcast_to(a,[2,3,4])
```

Tensorflow: Broadcasting