SparseMatrixSparseMatMul

classe final pública SparseMatrixSparseMatMul

Matriz esparsa multiplica duas matrizes CSR `a` e `b`.

Executa uma multiplicação de matrizes de uma matriz esparsa `a` com uma matriz esparsa `b`; retorna uma matriz esparsa `a * b`, a menos que `a` ou `b` sejam transpostos ou unidos.

Cada matriz pode ser transposta ou adjunta (conjugada e transposta) de acordo com os parâmetros booleanos `transpose_a`, `adjoint_a`, `transpose_b` e `adjoint_b`. No máximo um entre `transpose_a` ou `adjoint_a` pode ser True. Da mesma forma, no máximo um entre `transpose_b` ou `adjoint_b` pode ser True.

As entradas devem ter formatos compatíveis. Ou seja, a dimensão interna de `a` deve ser igual à dimensão externa de `b`. Este requisito é ajustado consoante «a» ou «b» sejam transpostos ou adjuntos.

O parâmetro `type` denota o tipo dos elementos da matriz. `a` e `b` devem ter o mesmo tipo. Os tipos suportados são: `float32`, `float64`, `complex64` e `complex128`.

Tanto `a` quanto `b` devem ter a mesma classificação. A transmissão não é suportada. Se eles tiverem classificação 3, cada lote de CSRSparseMatrices 2D dentro de `a` e `b` deverá ter a mesma forma densa.

O produto da matriz esparsa pode ter zeros numéricos (não estruturais). TODO(anudhyan): Considere adicionar um atributo booleano para controlar se os zeros devem ser removidos.

Exemplo de uso:

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` armazena o produto da matriz densa:
[[  2.   0.   0.]
      [  0.   0.   0.]
      [ 35.  40.   0.]
      [ -4.   0.   0.]]
 
a: A `CSRSparseMatrix`. b: Um `CSRSparseMatrix` com o mesmo tipo e classificação de `a`. tipo: o tipo de `a` e `b`. transpose_a: Se True, `a` transposto antes da multiplicação. transpose_b: Se True, `b` transposto antes da multiplicação. adjoint_a: Se True, `a` adjacente antes da multiplicação. adjoint_b: Se True, `b` adjacente antes da multiplicação.

Classes aninhadas

aula SparseMatrixSparseMatMul.Options Atributos opcionais para SparseMatrixSparseMatMul

Métodos Públicos

SparseMatrixSparseMatMul.Options estática
adjointA (booleano adjointA)
SparseMatrixSparseMatMul.Options estática
adjointB (booleano adjuntoB)
Saída <Objeto>
asOutput ()
Retorna o identificador simbólico de um tensor.
Saída <?>
c ()
Um CSRSparseMatrix.
estático <T> SparseMatrixSparseMatMul
create ( Escopo , Operando <?> a, Operando <?> b, Classe<T> tipo, Opções... opções)
Método de fábrica para criar uma classe que envolve uma nova operação SparseMatrixSparseMatMul.
SparseMatrixSparseMatMul.Options estática
transposeA (transposeA booleana)
SparseMatrixSparseMatMul.Options estática
transposeB (booleano transposeB)

Métodos herdados

Métodos Públicos

público estático SparseMatrixSparseMatMul.Options adjointA (booleano adjointA)

Parâmetros
adjuntoA Indica se `a` deve ser transposto por conjugado.

public static SparseMatrixSparseMatMul.Options adjointB (booleano adjointB)

Parâmetros
adjuntoB Indica se `b` deve ser transposto por conjugado.

Saída pública <Objeto> asOutput ()

Retorna o identificador simbólico de um tensor.

As entradas para operações do TensorFlow são saídas de outra operação do TensorFlow. Este método é usado para obter um identificador simbólico que representa o cálculo da entrada.

Saída pública <?> c ()

Um CSRSparseMatrix.

public static SparseMatrixSparseMatMul create ( Escopo escopo , Operando <?> a, Operando <?> b, Classe<T> tipo, Opções... opções)

Método de fábrica para criar uma classe que envolve uma nova operação SparseMatrixSparseMatMul.

Parâmetros
escopo escopo atual
a Um CSRSparseMatrix.
b Um CSRSparseMatrix.
opções carrega valores de atributos opcionais
Devoluções
  • uma nova instância de SparseMatrixSparseMatMul

public static SparseMatrixSparseMatMul.Options transposeA (booleano transposeA)

Parâmetros
transporA Indica se `a` deve ser transposto.

public static SparseMatrixSparseMatMul.Options transposeB (booleano transposeB)

Parâmetros
transporB Indica se `b` deve ser transposto.