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