(1)+ - * /
(2)** pow square
(3) sqrt
(4) // %
(5) exp log
(6)@ matmul
(7) linear layer
element-wise: + - * /
matrix-wise: @ matmul
dim-wise: reduce_mean/max/min/sum
**
**
+:对应矩阵元素相加
-:对应矩阵元素相减
*:对应矩阵元素相除
/:对应矩阵元素相除
%:对应矩阵元素求余
//:对应矩阵元素整除
In [2]: a = tf.ones([2,2])#2*2矩阵,全部填充为1
In [3]: b = tf.fill([2,2],2.)#2*2矩阵,全部填充为2
In [4]: a
Out[4]:
In [5]: b
Out[5]:
In [6]: a + b#对应矩阵元素相加
Out[6]:
In [7]: a - b#对应矩阵元素相减
Out[7]:
In [8]: a * b #对应矩阵元素相乘
Out[8]:
In [9]: a / b#对应矩阵元素相除
Out[9]:
In [10]: b // a #对应矩阵元素整除
Out[10]:
In [11]: b % a #对应矩阵元素求余
Out[11]:
**
**
In [12]: a = tf.ones([2,2])
In [13]: a
Out[13]:
In [14]: tf.math.log(a)#矩阵对应元素取对数
Out[14]:
In [15]: tf.math.exp(a)#矩阵对应元素取指数
Out[15]:
In [17]: a = tf.random.normal([2,2])
In [18]: a
Out[18]:
In [19]: tf.math.log(a)/tf.math.log(2.)#计算矩阵对应元素以2为底的对数
Out[19]:
In [20]: tf.math.log(a)/tf.math.log(10.)#计算矩阵对应元素以10为底的对数
Out[20]:
**
**
In [2]: a = tf.fill([2,2],2.)
In [3]: a
Out[3]:
In [4]: tf.pow(a,3)#矩阵a所有元素取立方
Out[4]:
In [5]: a**3#矩阵a所有元素取立方
Out[5]:
In [6]: tf.sqrt(a)#矩阵a所有元素开平方
Out[6]:
**
**
In [7]: a = tf.fill([2,2],1.)
In [8]: b = tf.fill([2,2],2.)
In [9]: a,b
Out[9]:
(,
)
In [10]: a @ b#矩阵相乘
Out[10]:
In [11]: tf.matmul(a,b)#矩阵相乘
Out[11]:
In [12]: a = tf.ones([4,2,3])
In [13]: b = tf.fill([4,3,5],2.)
In [14]: a@b #[2,3]@[3,5] = [2,5]
Out[14]:
In [15]: tf.matmul(a,b)
Out[15]:
With broadcasting
In [2]: a = tf.fill([4,2,3],1.)
In [3]: b = tf.fill([3,5],2.)
In [4]: a.shape
Out[4]: TensorShape([4, 2, 3])
In [5]: b.shape
Out[5]: TensorShape([3, 5])
In [6]: bb = tf.broadcast_to(b,[4,3,5])
In [7]: bb.shape
Out[7]: TensorShape([4, 3, 5])
In [8]: a @ bb
Out[8]:
In [9]: tf.matmul(a,bb)
Out[9]: