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 „transponowanych_a” lub „dołączonych_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 jest dostosowywany 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

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 Class<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

org.tensorflow.op.RawOp
końcowa wartość logiczna
równa się (obiekt obiektu)
końcowy wew
Działanie
op ()
Zwróć tę jednostkę obliczeniową jako pojedynczą Operation .
ostatni ciąg
wartość logiczna
równa się (Obiekt arg0)
ostatnia klasa<?>
pobierzKlasę ()
wew
hashCode ()
ostateczna pustka
powiadomić ()
ostateczna pustka
powiadom wszystkich ()
Smyczkowy
doString ()
ostateczna pustka
czekaj (długi arg0, int arg1)
ostateczna pustka
czekaj (długi arg0)
ostateczna pustka
Czekać ()
org.tensorflow.op.Op
abstrakcyjne środowisko wykonania
środowisko ()
Zwróć środowisko wykonawcze, w którym utworzono tę operację.
abstrakcyjna operacja
op ()
Zwróć tę jednostkę obliczeniową jako pojedynczą Operation .
org.tensorflow.Operand
abstrakcyjne wyjście < TType >
jako wyjście ()
Zwraca symboliczny uchwyt tensora.
abstrakcyjny typ T
asTensor ()
Zwraca tensor tego operandu.
abstrakcyjny kształt
kształt ()
Zwraca (prawdopodobnie częściowo znany) kształt tensora, do którego odnosi się Output tego operandu.
Klasa abstrakcyjna <Typ>
typ ()
Zwraca typ tensora tego operandu
org.tensorflow.ndarray.Shaped
streszczenie wew
ranga ()
abstrakcyjny kształt
streszczenie długie
rozmiar ()
Oblicza i zwraca całkowity rozmiar tego kontenera w liczbie wartości.

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”.