SparseMatrixSparseMatMul

공개 최종 클래스 SparseMatrixSparseMatMul

희소 행렬은 두 개의 CSR 행렬 'a'와 'b'를 곱합니다.

희소 행렬 '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의 각 배치는 동일한 조밀한 모양을 가져야 합니다.

희소 행렬 곱에는 숫자(비구조적) 0이 있을 수 있습니다. TODO(anudhyan): 0을 잘라낼지 여부를 제어하려면 부울 속성을 추가하는 것을 고려하세요.

사용 예:

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`와 `b` 모두의 유형입니다. transpose_a: True인 경우 `a`는 곱하기 전에 전치됩니다. transpose_b: True인 경우 `b`는 곱하기 전에 전치됩니다. adjoint_a: True인 경우 `a`는 곱하기 전에 인접합니다. adjoint_b: True인 경우 `b`는 곱하기 전에 인접합니다.

중첩 클래스

수업 SparseMatrixSparseMatMul.Options SparseMatrixSparseMatMul 의 선택적 속성

상수

OP_NAME TensorFlow 핵심 엔진에서 알려진 이 작업의 이름

공개 방법

정적 SparseMatrixSparseMatMul.Options
adjointA (부울 adjointA)
정적 SparseMatrixSparseMatMul.Options
adjointB (부울 adjointB)
출력 < T유형 >
출력 ()
텐서의 기호 핸들을 반환합니다.
출력 <?>
()
CSRSparseMatrix.
static <T는 TType을 확장합니다. > SparseMatrixSparseMatMul
생성 ( 범위 범위 , 피연산자 <?> a, 피연산자 <?> b, Class<T> 유형, 옵션... 옵션)
새로운 SparseMatrixSparseMatMul 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.
정적 SparseMatrixSparseMatMul.Options
transposeA (부울 전치 A)
정적 SparseMatrixSparseMatMul.Options
transposeB (부울 전치 B)

상속된 메서드

상수

공개 정적 최종 문자열 OP_NAME

TensorFlow 핵심 엔진에서 알려진 이 작업의 이름

상수 값: "SparseMatrixSparseMatMul"

공개 방법

공개 정적 SparseMatrixSparseMatMul.Options adjointA (부울 adjointA)

매개변수
인접 A 'a'를 공액 전치해야 하는지 여부를 나타냅니다.

공개 정적 SparseMatrixSparseMatMul.Options adjointB (부울 adjointB)

매개변수
인접B 'b'를 공액 전치해야 하는지 여부를 나타냅니다.

공개 출력 < TType > asOutput ()

텐서의 기호 핸들을 반환합니다.

TensorFlow 작업에 대한 입력은 다른 TensorFlow 작업의 출력입니다. 이 메서드는 입력 계산을 나타내는 기호 핸들을 얻는 데 사용됩니다.

공개 출력 <?> c ()

CSRSparseMatrix.

public static SparseMatrixSparseMatMul create ( 범위 범위, 피연산자 <?> a, 피연산자 <?> b, Class<T> 유형, 옵션... 옵션)

새로운 SparseMatrixSparseMatMul 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.

매개변수
범위 현재 범위
에이 CSRSparseMatrix.
CSRSparseMatrix.
옵션 선택적 속성 값을 전달합니다.
보고
  • SparseMatrixSparseMatMul의 새 인스턴스

공개 정적 SparseMatrixSparseMatMul.Options transposeA (부울 transposeA)

매개변수
전치 A 'a'를 바꿔야 하는지 여부를 나타냅니다.

공개 정적 SparseMatrixSparseMatMul.Options transposeB (부울 transposeB)

매개변수
B 'b'를 전치해야 하는지 여부를 나타냅니다.