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çindeki 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)
[[ 2. 0. 0.]
[ 0. 0. 0.]
[ 35. 40. 0.]
[ -4. 0. 0.]]
İç İçe Sınıflar
sınıf | SparseMatrixSparseMatMul.Options | SparseMatrixSparseMatMul için isteğe bağlı özellikler |
Sabitler
Sicim | OP_NAME | Bu operasyonun TensorFlow çekirdek motoru tarafından bilinen adı |
Genel Yöntemler
statik SparseMatrixSparseMatMul.Options | ekA (Boolean ekA) |
statik SparseMatrixSparseMatMul.Options | ekB (Boolean ekB) |
Çıkış < TType > | Çıkış olarak () Tensörün sembolik tutamacını döndürür. |
Çıkış <?> | C () Bir CSRSparseMatrix. |
static <T, TType'ı genişletir > 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
Sabitler
genel statik son Dize OP_NAME
Bu operasyonun TensorFlow çekirdek motoru tarafından bilinen adı
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. |
---|
genel Çıkış < TType > asOutput ()
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. |
---|