### 1、+ - * /
1.1、常用数据对应元素的加减乘除
### 2、@, matmul 矩阵相乘
[b,3,4]@[b,4,5]
=[3,4]@[4,5]
=[3,5]
=[b,3,5] **注意:这里是维度,不是数值**
已知公式:
第一个矩阵的每一行,乘以,第二个矩阵的每一列, 然后计算两个向量的乘法: $`$x_0^0*w_0^0+x_0^1*w_1^0$`$
```py
# 矩阵相乘
a=tf.fill([2,2],1)
b=tf.fill([2,2],2)
c=a@b
c=[[4,4],[4,4]]
# 另外一种写法
c=tf.matmul(a, b)
# 如果维度不符合,可以先通过broadcast扩张,然后再进行矩阵运算
a=[4,2,3]
b=[3,5]
b=tf.broadcast_to(b,[4,3,5])
c=a@b
c=[4,2,5]
```
### 3、常用公式
求平均值,最大值/最小值/求和
reduce_mean/max/min/sum
### 4、$log_e$ 和 $e^x$
```py
# Log
a=tf.ones([2,2])
b=tf.math.log(a)
b=[[0,0],[0,0]]
# 因为e的0次方等于1,所以对矩阵中的每个1求log为0.
# Exp
c=tf.exp(a)
# 同理对每个元素求e的1次,结果存在矩阵
```
### 5、log2,log10
已知公式:
$`$log_e^b/log_e^c=log_c^b$`$
求解:
$`$log_2^8 = log_e^8 / log_e^2=3$`$
```py
tf.math.log(8.)/tf.math.log(2.)=3
```
### 6、pow平方, sqrt开方
```py
# pow 平方
a=tf.fill([2,2],2.)
b=tf.pow(a,3)
b=[[8,8],[8,8]]
# 另外一种写法
b=a**3
# sqrt 开方
c=tf.sqrt(b)
c=[[2,2], [2,2]]
```

Tensorflow: 数学运算