tf.raw_ops.SparseMatrixOrderingAMD
Вычисляет упорядочение приближенного минимального степенного графа (AMD) для input.
tf.raw_ops.SparseMatrixOrderingAMD(
input, name=None
)
Вычисляет упорядочение приближенного минимального степенного графа (AMD) для разреженной матрицы.
Возвращённое переупорядочение можно использовать для перестановки строк и столбцов заданной разреженной матрицы. Это обычно приводит к тому, что у переупорядоченной разреженной матрицы разложение Холецкого (или других разложений) имеет меньше заполнений нулями по сравнению с разложением исходной матрицы.
Входная разреженная матрица может иметь ранг 2 или ранг 3. Результирующий тензор, соответственно, будет иметь ранг 1 или 2 с той же формой пакета, что и входной.
Каждый компонент входной разреженной матрицы должен представлять квадратную симметричную матрицу; считывается только нижняя треугольная часть матрицы. Значения разреженной матрицы не влияют на возвращённое переупорядочение, используется только структура разреженности разреженной матрицы. Следовательно, одно упорядочение AMD может быть повторно использовано для разложений Холецкого разреженных матриц с одинаковой структурой разреженности, но с, возможно, разными значениями.
Каждый компонент пакета выходного переупорядочения представляет перестановку N элементов, где у компонентов входной разреженной матрицы есть N строк. То есть, компонент содержит каждое из целых чисел {0, .. N-1} ровно один раз. i-ый элемент представляет индекс строки, в которую отображается i-я строка.
Пример использования:
from tensorflow.python.ops.linalg.sparse import sparse_csr_matrix_ops
a_indices = np.array([[0, 0], [1, 1], [2, 1], [2, 2], [3, 3]])
a_values = np.array([1.0, 2.0, 1.0, 3.0, 4.0], np.float32)
a_dense_shape = [4, 4]
with tf.Session() as sess:
# Define (COO format) SparseTensor over Numpy array.
a_st = tf.sparse.SparseTensor(a_indices, a_values, a_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)
# Obtain the AMD Ordering for the CSR SparseMatrix.
ordering_amd = sparse_csr_matrix_ops.sparse_matrix_ordering_amd(sparse_matrix)
ordering_amd_value = sess.run(ordering_amd)
ordering_amd_value хранит упорядочение AMD: [1 2 3 0].
input: A CSRSparseMatrix.
| Аргументы | |
|---|---|
input | A Tensor типа variant. A CSRSparseMatrix. |
name | Имя операции (необязательно). |
| Возвращаемые значения | |
|---|---|
A Tensor типа int32. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/raw_ops/SparseMatrixOrderingAMD