SparseMatrixSparseMatMul

publiczna klasa końcowa SparseMatrixSparseMatMul

Rzadka macierz – mnoży dwie macierze CSR „a” i „b”.

Wykonuje mnożenie macierzy rzadkiej macierzy „a” przez rzadką macierz „b”; zwraca rzadką macierz `a * b`, chyba że `a` lub `b` jest transponowane lub sprzężone.

Każda macierz może być transponowana lub sprzężona (sprzężona i transponowana) zgodnie z parametrami boolowskimi `transpose_a`, `adjoint_a`, `transpose_b` i `adjoint_b`. Co najwyżej jedno z „transpose_a” lub „adjoint_a” może mieć wartość True. Podobnie, co najwyżej jedno z `transpose_b` lub `adjoint_b` może mieć wartość True.

Dane wejściowe muszą mieć kompatybilne kształty. Oznacza to, że wewnętrzny wymiar „a” musi być równy zewnętrznemu wymiarowi „b”. Wymóg ten dostosowuje się w zależności od tego, czy „a” czy „b” jest transponowane czy połączone.

Parametr `type` określa typ elementów macierzy. Zarówno „a”, jak i „b” muszą być tego samego typu. Obsługiwane typy to: `float32`, `float64`, `complex64` i `complex128`.

Zarówno „a”, jak i „b” muszą mieć tę samą rangę. Nadawanie nie jest obsługiwane. Jeśli mają rangę 3, każda partia 2D CSRSparseMatrices w obrębie „a” i „b” musi mieć ten sam gęsty kształt.

Iloczyn macierzy rzadkiej może mieć zera numeryczne (niestrukturalne). DO ZROBIENIA(anudhyan): Rozważ dodanie atrybutu logicznego, aby kontrolować, czy usuwać zera.

Przykład użycia:

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` przechowuje iloczyn gęstej macierzy:
[[  2.   0.   0.]
      [  0.   0.   0.]
      [ 35.  40.   0.]
      [ -4.   0.   0.]]
 
a: `CSRSparseMatrix`. b: A `CSRSparseMatrix` o tym samym typie i randze co `a`. typ: typ zarówno „a”, jak i „b”. transpose_a: Jeśli prawda, `a` transponowane przed mnożeniem. transpose_b: Jeśli prawda, `b` transponowane przed mnożeniem. adjoint_a: Jeśli prawda, „a” połączone przed mnożeniem. adjoint_b: Jeśli to prawda, „b” jest połączone przed mnożeniem.

Klasy zagnieżdżone

klasa SparseMatrixSparseMatMul.Opcje Opcjonalne atrybuty dla SparseMatrixSparseMatMul

Stałe

Smyczkowy OP_NAME Nazwa tej operacji znana silnikowi rdzenia TensorFlow

Metody publiczne

statyczny SparseMatrixSparseMatMul.Options
sprzężenie A (dołączenie logiczne A)
statyczny SparseMatrixSparseMatMul.Options
sprzężenie B (dołączenie logiczne B)
Wyjście < Typ T >
jako wyjście ()
Zwraca symboliczny uchwyt tensora.
Wyjście <?>
C ()
CSRSparseMatrix.
statyczny <T rozszerza TType > SparseMatrixSparseMatMul
utwórz (Zakres zasięgu , Operand <?> a, Operand <?> b, Typ klasy<T>, Opcje... opcje)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację SparseMatrixSparseMatMul.
statyczny SparseMatrixSparseMatMul.Options
transpozycjaA (logiczna transpozycjaA)
statyczny SparseMatrixSparseMatMul.Options
transpozycja B (logiczna transpozycja B)

Metody dziedziczone

Stałe

publiczny statyczny końcowy ciąg znaków OP_NAME

Nazwa tej operacji znana silnikowi rdzenia TensorFlow

Wartość stała: „SparseMatrixSparseMatMul”

Metody publiczne

public static SparseMatrixSparseMatMul.Options dodatek A (boolean dodatek A)

Parametry
przylegającyA Wskazuje, czy „a” powinno być transponowane przez koniugat.

public static SparseMatrixSparseMatMul.Options sprzężenie B (dołączenie logiczne B)

Parametry
przylegającyB Wskazuje, czy „b” powinno być transponowane przez koniugat.

publiczne wyjście < TType > asOutput ()

Zwraca symboliczny uchwyt tensora.

Dane wejściowe operacji TensorFlow są wynikami innej operacji TensorFlow. Ta metoda służy do uzyskania symbolicznego uchwytu reprezentującego obliczenia danych wejściowych.

publiczne wyjście <?> c ()

CSRSparseMatrix.

public static SparseMatrixSparseMatMul create ( Zakres zasięgu, Operand <?> a, Operand <?> b, Typ Class<T>, Opcje... opcje)

Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację SparseMatrixSparseMatMul.

Parametry
zakres aktualny zakres
A CSRSparseMatrix.
B CSRSparseMatrix.
opcje przenosi opcjonalne wartości atrybutów
Powroty
  • nowa instancja SparseMatrixSparseMatMul

public static SparseMatrixSparseMatMul.Options transposeA (boolean transposeA)

Parametry
transponowaćA Wskazuje, czy należy transponować „a”.

public static SparseMatrixSparseMatMul.Options transpozycja B (transpozycja logiczna B)

Parametry
transponowaćB Wskazuje, czy należy transponować „b”.