Tính toán phân tách Cholesky thưa thớt của `input`.
Tính toán phân rã Cholesky thưa thớt của một ma trận thưa thớt, với hoán vị rút gọn phần điền đã cho.
Ma trận thưa đầu vào và hoán vị rút gọn điền vào `hoán vị` phải có hình dạng tương thích. Nếu ma trận thưa có hạng 3; với kích thước lô `B` thì `hoán vị` phải là hạng 2; với cùng kích thước lô `B`. Không có hỗ trợ cho việc phát sóng.
Hơn nữa, mỗi vectơ thành phần của `hoán vị` phải có độ dài `N`, chứa mỗi số nguyên {0, 1, ..., N - 1} đúng một lần, trong đó `N` là số hàng của mỗi thành phần của ma trận thưa thớt.
Mỗi thành phần của ma trận thưa đầu vào phải biểu diễn một ma trận xác định dương đối xứng (SPD); mặc dù chỉ có phần tam giác phía dưới của ma trận được đọc. Nếu bất kỳ thành phần riêng lẻ nào không phải là SPD thì sẽ xảy ra lỗi InvalidArgument.
Ma trận thưa thớt được trả về có hình dạng dày đặc giống như ma trận thưa thớt đầu vào. Với mỗi thành phần `A` của ma trận thưa đầu vào, ma trận thưa đầu ra tương ứng biểu thị `L`, hệ số Cholesky tam giác dưới thỏa mãn đẳng thức sau:
A = L * Lt
Tham số `type` biểu thị loại phần tử ma trận. Các loại được hỗ trợ là: `float32`, `float64`, `complex64` và `complex128`.
Ví dụ sử dụng:
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 Sparse Cholesky factor using AMD Ordering for reducing zero
# fill-in (number of structural non-zeros in the sparse Cholesky factor).
ordering_amd = sparse_csr_matrix_ops.sparse_matrix_ordering_amd(sparse_matrix)
cholesky_sparse_matrices = (
sparse_csr_matrix_ops.sparse_matrix_sparse_cholesky(
sparse_matrix, ordering_amd, type=tf.float32))
# Convert the CSRSparseMatrix Cholesky factor to a dense Tensor
dense_cholesky = sparse_csr_matrix_ops.csr_sparse_matrix_to_dense(
cholesky_sparse_matrices, tf.float32)
# Evaluate the dense Tensor value.
dense_cholesky_value = sess.run(dense_cholesky)
[[ 1. 0. 0. 0.]
[ 0. 1.41 0. 0.]
[ 0. 0.70 1.58 0.]
[ 0. 0. 0. 2.]]
Hằng số
Sợi dây | OP_NAME | Tên của op này, được biết đến bởi công cụ lõi TensorFlow |
Phương pháp công khai
Đầu ra <TType> | asOutput () Trả về tay cầm tượng trưng của tensor. |
tĩnh <T mở rộng TType > SparseMatrixSparseCholesky | |
Đầu ra <?> | đầu ra () Sự phân tách Cholesky thưa thớt của `đầu vào`. |
Phương pháp kế thừa
Hằng số
Chuỗi cuối cùng tĩnh công khai OP_NAME
Tên của op này, được biết đến bởi công cụ lõi TensorFlow
Phương pháp công khai
Đầu ra công khai < TType > asOutput ()
Trả về tay cầm tượng trưng của tensor.
Đầu vào của các hoạt động TensorFlow là đầu ra của một hoạt động TensorFlow khác. Phương pháp này được sử dụng để thu được một thẻ điều khiển mang tính biểu tượng đại diện cho việc tính toán đầu vào.
public static SparseMatrixSparseCholesky tạo ( Phạm vi phạm vi, đầu vào Toán hạng <?>, Toán hạng < TInt32 > hoán vị, Loại Lớp<T>)
Phương thức xuất xưởng để tạo một lớp bao bọc một thao tác SparseMatrixSparseCholesky mới.
Thông số
phạm vi | phạm vi hiện tại |
---|---|
đầu vào | Một `CSRSparseMatrix`. |
hoán vị | Một ma trận hoán vị giảm điền vào. |
Trả lại
- một phiên bản mới của SparseMatrixSparseCholesky