Sparse-matrix-multiplies 两个 CSR 矩阵 a 和 b 。
用法
tf.raw_ops.SparseMatrixSparseMatMul(
a, b, type, transpose_a=False, transpose_b=False, adjoint_a=False,
adjoint_b=False, name=None
)参数
-
aTensor类型为variant。一个 CSRSparseMatrix。 -
bTensor类型为variant。一个 CSRSparseMatrix。 -
typetf.DType来自:tf.float32, tf.float64, tf.complex64, tf.complex128。 -
transpose_a可选的bool。默认为False。指示是否应转置a。 -
transpose_b可选的bool。默认为False。指示是否应转置b。 -
adjoint_a可选的bool。默认为False。指示a是否应为conjugate-transposed。 -
adjoint_b可选的bool。默认为False。指示b是否应为conjugate-transposed。 -
name操作的名称(可选)。
返回
-
Tensor类型为variant。
执行稀疏矩阵 a 与稀疏矩阵 b 的矩阵乘法;返回稀疏矩阵 a * b ,除非 a 或 b 被转置或邻接。
每个矩阵可以根据布尔参数transpose_a , adjoint_a , transpose_b 和adjoint_b 进行转置或邻接(共轭和转置)。最多 transpose_a 或 adjoint_a 之一可能为 True。类似地,最多transpose_b或adjoint_b之一可能为True。
输入必须具有兼容的形状。也就是说,a 的内部尺寸必须等于 b 的外部尺寸。此要求根据a 或b 是转置还是邻接进行调整。
type 参数表示矩阵元素的类型。 a 和b 必须具有相同的类型。支持的类型是:float32 , float64 , complex64 和 complex128。
a 和b 必须具有相同的等级。不支持广播。如果它们的等级为 3,则 a 和 b 中的每批 2D CSRSparseMatrices 必须具有相同的密集形状。
稀疏矩阵乘积可能有数字(非结构)零。
零。
使用示例:
from tensorflow.python.ops.linalg.sparse import sparse_csr_matrix_ops
a_indices = np.array([[0, 0], [2, 3], [2, 4], [3, 0]])
a_values = np.array([1.0, 5.0, -1.0, -2.0], np.float32)
a_dense_shape = [4, 5]
b_indices = np.array([[0, 0], [3, 0], [3, 1]])
b_values = np.array([2.0, 7.0, 8.0], np.float32)
b_dense_shape = [5, 3]
with tf.Session() as sess:
# Define (COO format) Sparse Tensors over Numpy arrays
a_st = tf.sparse.SparseTensor(a_indices, a_values, a_dense_shape)
b_st = tf.sparse.SparseTensor(b_indices, b_values, b_dense_shape)
# Convert SparseTensors to CSR SparseMatrix
a_sm = sparse_csr_matrix_ops.sparse_tensor_to_csr_sparse_matrix(
a_st.indices, a_st.values, a_st.dense_shape)
b_sm = sparse_csr_matrix_ops.sparse_tensor_to_csr_sparse_matrix(
b_st.indices, b_st.values, b_st.dense_shape)
# Compute the CSR SparseMatrix matrix multiplication
c_sm = sparse_csr_matrix_ops.sparse_matrix_sparse_mat_mul(
a=a_sm, b=b_sm, type=tf.float32)
# Convert the CSR SparseMatrix product to a dense Tensor
c_sm_dense = sparse_csr_matrix_ops.csr_sparse_matrix_to_dense(
c_sm, tf.float32)
# Evaluate the dense Tensor value
c_sm_dense_value = sess.run(c_sm_dense)
c_sm_dense_value 存储密集矩阵乘积:
[[ 2. 0. 0.]
[ 0. 0. 0.]
[ 35. 40. 0.]
[ -4. 0. 0.]]
一个:A CSRSparseMatrix 。 b:A CSRSparseMatrix 与 a 具有相同类型和等级。 type: a 和 b 的类型。 transpose_a:如果为真,a 在乘法前转置。 transpose_b:如果为真,b 在乘法前转置。 adjoint_a:如果为真,a 在乘法前伴随。 adjoint_b:如果为真,b 在乘法之前伴随。
相关用法
- Python tf.raw_ops.SparseMatrixSparseCholesky用法及代码示例
- Python tf.raw_ops.SparseMatrixOrderingAMD用法及代码示例
- Python tf.raw_ops.SparseMatrixMatMul用法及代码示例
- Python tf.raw_ops.SparseCrossV2用法及代码示例
- Python tf.raw_ops.SparseCross用法及代码示例
- Python tf.raw_ops.SparseConcat用法及代码示例
- Python tf.raw_ops.SparseSegmentSumWithNumSegments用法及代码示例
- Python tf.raw_ops.SparseFillEmptyRows用法及代码示例
- Python tf.raw_ops.SparseSlice用法及代码示例
- Python tf.raw_ops.SparseToDense用法及代码示例
- Python tf.raw_ops.SparseSplit用法及代码示例
- Python tf.raw_ops.SparseSegmentSum用法及代码示例
- Python tf.raw_ops.SparseCrossHashed用法及代码示例
- Python tf.raw_ops.SpaceToDepth用法及代码示例
- Python tf.raw_ops.SpaceToBatch用法及代码示例
- Python tf.raw_ops.SpaceToBatchND用法及代码示例
- Python tf.raw_ops.SelfAdjointEigV2用法及代码示例
- Python tf.raw_ops.Size用法及代码示例
- Python tf.raw_ops.ScatterUpdate用法及代码示例
- Python tf.raw_ops.ScatterNdUpdate用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.raw_ops.SparseMatrixSparseMatMul。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
