تجزیه پراکنده Cholesky "ورودی" را محاسبه می کند.
تجزیه Cholesky پراکنده یک ماتریس پراکنده را با جایگشت کاهشی داده شده محاسبه می کند.
ماتریس پراکنده ورودی و جایگشت کاهشی پرموتاسیون باید دارای اشکال سازگار باشند. اگر ماتریس پراکنده دارای رتبه 3 باشد. با بعد دسته ای "B"، پس "جایگشت" باید در رتبه 2 باشد. با همان ابعاد دسته ای «B». هیچ پشتیبانی برای پخش وجود ندارد.
علاوه بر این، هر بردار مؤلفه «جایگشت» باید به طول «N» باشد که حاوی هر یک از اعداد صحیح {0، 1، ...، N - 1} دقیقاً یک بار باشد، که در آن «N» تعداد ردیفهای هر جزء است. از ماتریس پراکنده
هر جزء از ماتریس پراکنده ورودی باید یک ماتریس قطعی مثبت متقارن (SPD) را نشان دهد. اگرچه فقط قسمت مثلثی پایین ماتریس خوانده می شود. اگر هر جزء جداگانه SPD نباشد، یک خطای InvalidArgument پرتاب می شود.
ماتریس پراکنده برگشتی همان شکل متراکم ماتریس پراکنده ورودی را دارد. برای هر جزء «A» از ماتریس پراکنده ورودی، ماتریس پراکنده خروجی مربوطه نشاندهنده «L» است، ضریب Cholesky مثلثی پایینی که هویت زیر را برآورده میکند:
A = L * Lt
که در آن Lt نشاندهنده جابجایی L (یا جابهجایی مزدوج آن است، اگر « نوع «complex64» یا «complex128» است.پارامتر "type" نوع عناصر ماتریس را نشان می دهد. انواع پشتیبانی شده عبارتند از: «float32»، «float64»، «complex64» و «complex128».
مثال استفاده:
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)
«dense_cholesky_value» ضریب Cholesky متراکم را ذخیره می کند: ورودی [[ 1. 0. 0. 0.]
[ 0. 1.41 0. 0.]
[ 0. 0.70 1.58 0.]
[ 0. 0. 0. 2.]]
: «CSRSparseMatrix». جایگشت: یک "تنسور". نوع: نوع «ورودی». روش های عمومی
خروجی <Object> | asOutput () دسته نمادین یک تانسور را برمیگرداند. |
استاتیک <T> SparseMatrixSparseCholesky | ایجاد ( حوزه دامنه، ورودی عملوند <?>، جایگشت عملوند <عدد صحیح>، نوع کلاس<T>) روش کارخانه برای ایجاد کلاسی که یک عملیات جدید SparseMatrixSparseCholesky را بسته بندی می کند. |
خروجی <?> | خروجی () تجزیه پراکنده Cholesky «ورودی». |
روش های ارثی
روش های عمومی
خروجی عمومی <Object> asOutput ()
دسته نمادین یک تانسور را برمیگرداند.
ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.
ایجاد SparseMatrixSparseCholesky استاتیک عمومی ( حوزه دامنه، ورودی عملوند <?>، جایگشت عملوند <عدد صحیح>، نوع کلاس<T>)
روش کارخانه برای ایجاد کلاسی که یک عملیات جدید SparseMatrixSparseCholesky را بسته بندی می کند.
مولفه های
محدوده | محدوده فعلی |
---|---|
ورودی | یک «CSRSparseMatrix». |
جایگشت | یک ماتریس جایگشت کاهنده پرکننده. |
برمی گرداند
- یک نمونه جدید از SparseMatrixSparseCholesky