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].
вход: CSRSparseMatrix.
| Аргументы | |
|---|---|
input | Tensor типа variant. CSRSparseMatrix. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
Tensor типа int32. |
© 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/SparseMatrixOrderingAMD