Spec-Zone.ru › TensorFlow 2.4

tf.raw_ops.SparseMatrixSparseMatMul

Умножает две матрицы в формате CSR a и b.

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.raw_ops.SparseMatrixSparseMatMul

tf.raw_ops.SparseMatrixSparseMatMul(
    a, b, type, transpose_a=False, transpose_b=False, adjoint_a=False,
    adjoint_b=False, name=None
)

Выполняет умножение матриц разреженной матрицы 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, каждая партия 2D CSRSparseMatrices в a и b должна иметь одинаковую плотную форму.

Результат умножения разреженных матриц может содержать нули (не структурные).

нулей.

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

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

Аргументы
a A Tensor типа variant. A CSRSparseMatrix.
b A Tensor типа variant. A CSRSparseMatrix.
type A tf.DType из: tf.float32, tf.float64, tf.complex64, tf.complex128.
transpose_a Необязательный bool. По умолчанию False. Указывает, должна ли быть транспонирована a.
transpose_b Необязательный bool. По умолчанию False. Указывает, должна ли быть транспонирована b.
adjoint_a Необязательный bool. По умолчанию False. Указывает, должна ли быть сопряжена и транспонирована a.
adjoint_b Необязательный bool. По умолчанию False. Указывает, должна ли быть сопряжена и транспонирована b.
name Имя операции (необязательно).
Возвращаемое значение
A Tensor типа variant.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/raw_ops/SparseMatrixSparseMatMul

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API