TensorFlow之基本数学运算

这篇博客详细介绍了TensorFlow中张量的基本数学运算,包括tf.multiply与tf.matmul的区别,元素乘法与矩阵乘法的使用,以及降维、扫描、张量分段统计、序列比较和类型转化等操作。
摘要由CSDN通过智能技术生成

 

0、张量运算的基本法则

  • 相同大小 Tensor 之间的任何算术运算都会将运算应用到元素级
  • 不同大小 Tensor(要求dimension 0 必须相同) 之间的运算叫做广播(broadcasting)
  • Tensor 与 Scalar(0维 tensor) 间的算术运算会将那个标量值传播到各个元素
  • Note: TensorFLow 在进行数学运算时,一定要求各个 Tensor 数据类型一致

 

1、tf.multiply和tf.matmul的区别

tf.multiply是元素级别的相乘,tf.matmul是矩阵的乘法

(1)元素乘法tf.multiply

tf.math.multiply(x,y,name=None)

x:类型为:half, float32, float64, uint8, int8, uint16, int16, int32, int64, complex64, complex128的张量。 
y:类型跟张量x相同的张量。 
name:操作的名字
返回值(元素级别的相乘):  x * y element-wise

注意:

①multiply这个函数实现的是元素级别的相乘,也就是两个相乘的数元素各自相乘,而不是矩阵乘法,注意与下面matmul的区别

②两个相乘的数必须有相同的数据类型,否则就会报错

 

(2)矩阵乘法tf.matmul

tf.linalg.matmul(a,b,transpose_a=False,transpose_b=False,
    adjoint_a=False,
    adjoint_b=False,
    a_is_sparse=False,
    b_is_sparse=False,
    name=None
)

a:类型为 float16, float32, float64, int32, complex64, complex128 且张量秩 > 1 的张量。 
b:类型跟张量a相同的张量。 
transpose_a:如果为真, a则在进行乘法计算前进行转置。 
transpose_b:如果为真, b则在进行乘法计算前进行转置。 
adjoint_a:如果为真, a则在进行乘法计算前进行共轭和转置。 
adjoint_b:如果为真, b则在进行乘法计算前进行共轭和转置。 
a_is_sparse:如果为真, a会被处理为稀疏矩阵。 
b_is_sparse:如果为真, b会被处理为稀疏矩阵。 
name:操作的名字 
返回值: 一个跟张量a和张量b类型一样的张量,且最内部矩阵是a和b中的相应矩阵的乘积。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值