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].
входные данные: 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