tensorflow tensor转置_TensorFLow 函数翻译 — tf.matmul()

tf.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)###

Multiplies matrix a by matrix b, producing a * b.

将矩阵a 乘于 矩阵b。

The inputs must be matrices (or tensors of rank > 2, representing batches of matrices), with matching inner dimensions, possibly after transposition.

Both matrices must be of the same type. The supported types are: float16, float32, float64, int32, complex64, complex128.

输入必须是矩阵(或者是张量秩 >2的张量,表示成批的矩阵),并且其在转置之后有相匹配的矩阵尺寸。

两个矩阵必须都是同样的类型,支持的类型如下:float16, float32, float64, int32, complex64, complex128。

Either matrix can be transposed or adjointed (conjugated and transposed) on the fly by setting one of the corresponding flag to True. These are False by default.

任意一个矩阵都可以通过设置被转置 或 adjointed(共轭和转置)为真时进行对应的操作。两个参数都默认为假

If one or both of the matrices contain a lot of zeros, a more efficient multiplication algorithm can be used by setting the corresponding a_is_sparse or b_is_sparse flag to True.

These are False by default. This optimization is only available for plain matrices (rank-2 tensors) with datatypes bfloat16 or float32.

如果一个或两个矩阵都包含大量的零,当**a_is_sparse 或b_is_sparse **设置为真时,会使用一个更有效率的乘法公式。

他们都默认设置为假。这个优化规则只能适用于类型为bfloat16 或 bfloat32 的平面矩阵(等级2的张量)。

For example:

# 2-D tensor aa = tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3]) => [[1. 2. 3.] [4. 5. 6.]]

# 2-D tensor bb = tf.constant([7, 8, 9, 10, 11, 12], shape=[3, 2]) => [[7. 8.] [9. 10.] [11. 12.]]c = tf.matmul(a, b) => [[58 64] [139 154]]

# 3-D tensor aa = tf.constant(np.arange(1,13), shape=[2, 2, 3]) => [[[ 1. 2. 3.] [ 4. 5. 6.]], [[ 7. 8. 9.] [10. 11. 12.]]]

# 3-D tensor bb = tf.constant(np.arange(13,25), shape=[2, 3, 2]) => [[[13. 14.] [15. 16.] [17. 18.]], [[19. 20.] [21. 22.] [23. 24.]]]c = tf.matmul(a, b) => [[[ 94 100] [229 244]], [[508 532] [697 730]]]

例如:

# 2-D tensor \a` a = tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3]) => [[1. 2. 3.] [4. 5. 6.]]# 2-D tensor `b` b = tf.constant([7, 8, 9, 10, 11, 12], shape=[3, 2]) => [[7. 8.] [9. 10.] [11. 12.]]c = tf.matmul(a, b) => [[58 64] [139 154]]# 3-D tensor `a` a = tf.constant(np.arange(1,13), shape=[2, 2, 3]) => [[[ 1. 2. 3.] [ 4. 5. 6.]], [[ 7. 8. 9.] [10. 11. 12.]]]# 3-D tensor `b` b = tf.constant(np.arange(13,25), shape=[2, 3, 2]) => [[[13. 14.] [15. 16.] [17. 18.]], [[19. 20.] [21. 22.] [23. 24.]]]c = tf.matmul(a, b) => [[[ 94 100] [229 244]], [[508 532] [697 730]]] `

Args:

a: Tensor of type float16, float32, float64, int32, complex64, complex128 and rank > 1.

b: Tensor with same type and rank as a.

transpose_a: If True, a is transposed before multiplication.

transpose_b: If True, b is transposed before multiplication.

adjoint_a: If True, a is conjugated and transposed before multiplication.

adjoint_b: If True, b is conjugated and transposed before multiplication.

a_is_sparse: If True, a is treated as a sparse matrix.

b_is_sparse: If True, b is treated as a sparse matrix.

name: Name for the operation (optional).

参数:

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: 操作的名字(可选参数)

Returns:

A Tensor of the same type as a and b where each inner-most matrix is the product of the corresponding matrices in a and b, e.g. if all transpose or adjoint attributes areFalse: output[..., :, :] = a[..., :, :] * b[..., :, :] ,

返回值:

一个跟张量a和张量b类型一样的张量且最内部矩阵是a和b中的相应矩阵的乘积。如果所有的转置或adjoint参数都为假,则公式为output[..., :, :] = a[..., :, :] * b[..., :, :] ,

Raises:

ValueError: If transpose_a and adjoint_a, or transpose_b and adjoint_b are both set to True.

引发错误:

ValueError: 如果transpose_a 和 adjoint_a, 或 transpose_b 和 adjoint_b 都被设置为真

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值