SparseMatrixSparseMatMul

публичный финальный класс SparseMatrixSparseMatMul

Разреженная матрица умножает две матрицы CSR `a` и `b`.

Выполняет матричное умножение разреженной матрицы «a» на разреженную матрицу «b»; возвращает разреженную матрицу `a * b`, если только `a` или `b` не транспонированы или не присоединены.

Каждая матрица может быть транспонирована или присоединена (сопряжена и транспонирована) в соответствии с логическими параметрами `transpose_a`, `adjoint_a`, `transpose_b` и `adjoint_b`. Максимум одно из значений `transpose_a` или `adjoint_a` может быть истинным. Аналогично, не более одного из значений `transpose_b` или `adjoint_b` может иметь значение True.

Входные данные должны иметь совместимые формы. То есть внутренний размер «а» должен быть равен внешнему размеру «b». Это требование корректируется в зависимости от того, транспонировано или присоединено либо `a`, либо `b`.

Параметр type обозначает тип элементов матрицы. И `a`, и `b` должны иметь один и тот же тип. Поддерживаемые типы: float32, float64, complex64 и complex128.

И `a`, и `b` должны иметь одинаковый ранг. Вещание не поддерживается. Если они имеют ранг 3, каждая партия 2D CSRSparseMatrics внутри `a` и `b` должна иметь одинаковую плотную форму.

Продукт разреженной матрицы может иметь числовые (неструктурные) нули. TODO(anudhyan): рассмотрите возможность добавления логического атрибута, чтобы контролировать, нужно ли удалять нули.

Пример использования:

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: CSRSparseMatrix того же типа и ранга, что и a. type: Тип `a` и `b`. transpose_a: Если True, `a` транспонируется перед умножением. transpose_b: если True, `b` транспонируется перед умножением. adjoint_a: Если True, `a` присоединяется перед умножением. adjoint_b: если True, `b` присоединяется перед умножением.

Вложенные классы

сорт SparseMatrixSparseMatMul.Options Дополнительные атрибуты для SparseMatrixSparseMatMul

Публичные методы

статический SparseMatrixSparseMatMul.Options
adjointA (логическое значение adjointA)
статический SparseMatrixSparseMatMul.Options
adjointB (логическое значение adjointB)
Вывод <Объект>
какВывод ()
Возвращает символический дескриптор тензора.
Вывод <?>
в ()
CSRSparseMatrix.
статический <T> SparseMatrixSparseMatMul
create ( Область действия, Операнд <?> a, Операнд <?> b, Тип Класс<T>, Параметры... параметры)
Фабричный метод для создания класса, обертывающего новую операцию SparseMatrixSparseMatMul.
статический SparseMatrixSparseMatMul.Options
transposeA (логическое значение transposeA)
статический SparseMatrixSparseMatMul.Options
transposeB (логическое значение transposeB)

Унаследованные методы

Публичные методы

общедоступный статический SparseMatrixSparseMatMul.Options adjointA (логическое значение adjointA)

Параметры
примыкающийА Указывает, должно ли `a` быть сопряженно-транспонированным.

общедоступный статический SparseMatrixSparseMatMul.Options adjointB (логическое значение adjointB)

Параметры
примыкающий B Указывает, должен ли `b` быть сопряженно-транспонированным.

общедоступный вывод <Object> asOutput ()

Возвращает символический дескриптор тензора.

Входные данные для операций TensorFlow являются выходными данными другой операции TensorFlow. Этот метод используется для получения символического дескриптора, который представляет собой вычисление входных данных.

публичный вывод <?> c ()

CSRSparseMatrix.

public static SparseMatrixSparseMatMul create (область действия , операнд <?> a, операнд <?> b, тип класса<T>, параметры... параметры)

Фабричный метод для создания класса, обертывающего новую операцию SparseMatrixSparseMatMul.

Параметры
объем текущий объем
а CSRSparseMatrix.
б CSRSparseMatrix.
параметры содержит значения необязательных атрибутов
Возврат
  • новый экземпляр SparseMatrixSparseMatMul

public static SparseMatrixSparseMatMul.Options transposeA (логическое значение transposeA)

Параметры
транспонироватьА Указывает, следует ли транспонировать `a`.

общедоступный статический SparseMatrixSparseMatMul.Options transposeB (логическое значение transposeB)

Параметры
транспонировать Б Указывает, следует ли транспонировать `b`.