Seyrek matris, iki CSR matrisi 'a' ve 'b'yi çarpar.
Seyrek bir matris "a" ile seyrek bir matris "b"nin matris çarpımını gerçekleştirir; 'a' veya 'b' yer değiştirme veya bitişik olmadıkça seyrek bir matris 'a * b' döndürür.
Her matris, 'transpose_a', 'adjoint_a', 'transpose_b' ve 'adjoint_b' Boolean parametrelerine göre transpoze edilebilir veya eklenebilir (eşleniklenebilir ve transpoze edilebilir). En fazla "transpose_a" veya "adjoint_a"dan biri Doğru olabilir. Benzer şekilde, "transpose_b" veya "adjoint_b"den en fazla biri Doğru olabilir.
Girişlerin uyumlu şekillere sahip olması gerekir. Yani 'a'nın iç boyutu 'b'nin dış boyutuna eşit olmalıdır. Bu gereklilik, 'a' veya 'b'nin aktarılmış veya bitişik olmasına göre ayarlanır.
'type' parametresi matris elemanlarının tipini belirtir. Hem "a" hem de "b" aynı türde olmalıdır. Desteklenen türler şunlardır: 'float32', 'float64', 'complex64' ve 'complex128'.
Hem 'a' hem de 'b' aynı sıralamaya sahip olmalıdır. Yayın desteklenmiyor. Dereceleri 3 ise, 'a' ve 'b' içerisindeki her 2D CSRSparseMatrices grubu aynı yoğun şekle sahip olmalıdır.
Seyrek matris çarpımı sayısal (yapısal olmayan) sıfırlara sahip olabilir. YAPILACAKLAR(anudhyan): Sıfırların budayıp budamayacağını kontrol etmek için bir boole özelliği eklemeyi düşünün.
Kullanım örneği:
from tensorflow.python.ops.linalg.sparse import sparse_csr_matrix_ops
a_indices = np.array([[0, 0], [2, 3], [2, 4], [3, 0]])
a_values = np.array([1.0, 5.0, -1.0, -2.0], np.float32)
a_dense_shape = [4, 5]
b_indices = np.array([[0, 0], [3, 0], [3, 1]])
b_values = np.array([2.0, 7.0, 8.0], np.float32)
b_dense_shape = [5, 3]
with tf.Session() as sess:
# Define (COO format) Sparse Tensors over Numpy arrays
a_st = tf.sparse.SparseTensor(a_indices, a_values, a_dense_shape)
b_st = tf.sparse.SparseTensor(b_indices, b_values, b_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)
b_sm = sparse_csr_matrix_ops.sparse_tensor_to_csr_sparse_matrix(
b_st.indices, b_st.values, b_st.dense_shape)
# Compute the CSR SparseMatrix matrix multiplication
c_sm = sparse_csr_matrix_ops.sparse_matrix_sparse_mat_mul(
a=a_sm, b=b_sm, type=tf.float32)
# Convert the CSR SparseMatrix product to a dense Tensor
c_sm_dense = sparse_csr_matrix_ops.csr_sparse_matrix_to_dense(
c_sm, tf.float32)
# Evaluate the dense Tensor value
c_sm_dense_value = sess.run(c_sm_dense)
`c_sm_dense_value` yoğun matris ürününü saklar: [[ 2. 0. 0.]
[ 0. 0. 0.]
[ 35. 40. 0.]
[ -4. 0. 0.]]
a: Bir 'CSRS Ayrıştırma Matrisi'. b: "a" ile aynı tür ve sıralamaya sahip bir "CSRSparseMatrix". type: Hem 'a' hem de 'b'nin türü. transpose_a: Doğruysa, çarpmadan önce aktarılan `a'. transpose_b: Doğruysa, çarpmadan önce aktarılan 'b'. adjoint_a: Doğruysa, çarpmadan önce bitişik olan `a'. adjoint_b: Doğruysa, 'b' çarpmadan önce bitişiktir. İç İçe Sınıflar
sınıf | SparseMatrixSparseMatMul.Options | SparseMatrixSparseMatMul için isteğe bağlı özellikler |
Genel Yöntemler
statik SparseMatrixSparseMatMul.Options | ekA (Boolean ekA) |
statik SparseMatrixSparseMatMul.Options | ekB (Boolean ekB) |
Çıkış <Nesne> | Çıkış olarak () Bir tensörün sembolik tutamacını döndürür. |
Çıkış <?> | C () Bir CSRSparseMatrix. |
statik <T> SparseMatrixSparseMatMul | create ( Kapsam kapsamı, İşlenen <?> a, İşlenen <?> b, Sınıf<T> türü, Seçenekler... seçenekler) Yeni bir SparseMatrixSparseMatMul işlemini saran bir sınıf oluşturmaya yönelik fabrika yöntemi. |
statik SparseMatrixSparseMatMul.Options | devrikA (Boolean devrikA) |
statik SparseMatrixSparseMatMul.Options | devrikB (Boolean devrikB) |
Kalıtsal Yöntemler
Genel Yöntemler
public static SparseMatrixSparseMatMul.Options adjointA (Boole adjointA)
Parametreler
ekA | 'a'nın eşlenik transpoze edilip edilmeyeceğini belirtir. |
---|
public static SparseMatrixSparseMatMul.Options adjointB (Boole adjointB)
Parametreler
ekB | 'b'nin eşlenik transpoze edilip edilmeyeceğini belirtir. |
---|
public Output <Object> asOutput ()
Bir tensörün sembolik tutamacını döndürür.
TensorFlow işlemlerinin girdileri, başka bir TensorFlow işleminin çıktılarıdır. Bu yöntem, girişin hesaplanmasını temsil eden sembolik bir tanıtıcı elde etmek için kullanılır.
public static SparseMatrixSparseMatMul create ( Kapsam kapsamı, İşlenen <?> a, İşlenen <?> b, Sınıf<T> türü, Seçenekler... seçenekler)
Yeni bir SparseMatrixSparseMatMul işlemini saran bir sınıf oluşturmaya yönelik fabrika yöntemi.
Parametreler
kapsam | mevcut kapsam |
---|---|
A | Bir CSRSparseMatrix. |
B | Bir CSRSparseMatrix. |
seçenekler | isteğe bağlı nitelik değerlerini taşır |
İade
- SparseMatrixSparseMatMul'un yeni bir örneği
public static SparseMatrixSparseMatMul.Options transposeA (Boolean transposeA)
Parametreler
A'yı devrik | 'a'nın aktarımının gerekip gerekmediğini belirtir. |
---|
public static SparseMatrixSparseMatMul.Options devrikB (Boolean devrikB)
Parametreler
devrik B | 'b'nin aktarımının gerekip gerekmediğini belirtir. |
---|