SparseMatrixSparseMatMul

คลาสสุดท้ายสาธารณะ SparseMatrixSparseMatMul

เมทริกซ์แบบกระจายจะคูณเมทริกซ์ CSR สองตัว `a` และ `b`

ดำเนินการคูณเมทริกซ์ของเมทริกซ์แบบกระจาย `a` ด้วยเมทริกซ์แบบกระจาย `b`; ส่งคืนเมทริกซ์กระจัดกระจาย `a * b` เว้นแต่ว่า `a` หรือ `b` จะถูกย้ายหรือติดกัน

เมทริกซ์แต่ละตัวอาจถูกย้ายหรือติดกัน (ผันและย้าย) ตามพารามิเตอร์บูลีน `transpose_a`, `adjoint_a`, `transpose_b` และ `adjoint_b` `transpose_a` หรือ `adjoint_a` มากที่สุดรายการใดรายการหนึ่งอาจเป็น True ในทำนองเดียวกัน `transpose_b` หรือ `adjoint_b` มากที่สุดตัวใดตัวหนึ่งอาจเป็น True

อินพุตต้องมีรูปร่างที่เข้ากันได้ นั่นคือ มิติภายในของ `a` จะต้องเท่ากับมิติภายนอกของ 'b` ข้อกำหนดนี้ได้รับการปรับเปลี่ยนตามว่ามีการย้ายหรือแนบ `a` หรือ `b` หรือไม่

พารามิเตอร์ `type` แสดงถึงประเภทขององค์ประกอบเมทริกซ์ ทั้ง `a` และ `b` ต้องมีประเภทเดียวกัน ประเภทที่รองรับคือ: `float32`, `float64`, `complex64` และ `complex128`

ทั้ง 'a' และ 'b' ต้องมีอันดับเดียวกัน ไม่รองรับการออกอากาศ หากมีอันดับที่ 3 แต่ละชุดของ 2D CSRSparseMatrices ภายใน `a` และ `b` จะต้องมีรูปร่างหนาแน่นเหมือนกัน

ผลิตภัณฑ์เมทริกซ์แบบกระจายอาจมีศูนย์ที่เป็นตัวเลข (ไม่ใช่โครงสร้าง) TODO(anudhyan): ลองเพิ่มแอตทริบิวต์บูลีนเพื่อควบคุมว่าจะตัดค่าศูนย์หรือไม่

ตัวอย่างการใช้งาน:

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` เก็บผลิตภัณฑ์เมทริกซ์หนาแน่น:
[[  2.   0.   0.]
      [  0.   0.   0.]
      [ 35.  40.   0.]
      [ -4.   0.   0.]]
 
ก: `CSRSparseMatrix` b: A `CSRSparseMatrix` ที่มีประเภทเดียวกันและอันดับเป็น `a` type: ประเภทของทั้ง `a` และ `b` transpose_a: ถ้าเป็นจริง `a` จะย้ายก่อนการคูณ transpose_b: ถ้าเป็นจริง ให้ย้าย `b` ก่อนการคูณ adjoint_a: ถ้าเป็นจริง `a` จะชิดกันก่อนการคูณ adjoint_b: ถ้าเป็นจริง `b` ติดกันก่อนการคูณ

คลาสที่ซ้อนกัน

ระดับ SparseMatrixSparseMatMul.Options แอ็ตทริบิวต์ทางเลือกสำหรับ SparseMatrixSparseMatMul

ค่าคงที่

สตริง OP_NAME ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow

วิธีการสาธารณะ

SparseMatrixSparseMatMul.Options แบบคงที่
adjointA (บูลีน adjointA)
SparseMatrixSparseMatMul.Options แบบคงที่
adjointB (บูลีน adjointB)
เอาท์พุต < ชนิด T >
เป็นเอาท์พุต ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
เอาท์พุต <?>
()
CSRSparseMatrix
คงที่ <T ขยาย TType > SparseMatrixSparseMatMul
สร้าง (ขอบเขต ขอบเขต ตัวดำเนินการ <?> a ตัวดำเนินการ <?> b ประเภทคลาส <T> ตัวเลือก... ตัวเลือก)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ SparseMatrixSparseMatMul ใหม่
SparseMatrixSparseMatMul.Options แบบคงที่
transposeA (บูลีนทรานสโพสเอ)
SparseMatrixSparseMatMul.Options แบบคงที่
transposeB (ทรานสโพสบูลีน B)

วิธีการสืบทอด

ค่าคงที่

สตริงสุดท้ายแบบคงที่สาธารณะ OP_NAME

ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow

ค่าคงที่: "SparseMatrixSparseMatMul"

วิธีการสาธารณะ

สาธารณะ SparseMatrixSparseMatMul.Options adjointA (บูลีน adjointA) สาธารณะ

พารามิเตอร์
ที่อยู่ติดกันก บ่งชี้ว่า `a` ควรถูกแปลงผันหรือไม่

สาธารณะ SparseMatrixSparseMatMul.Options adjointB สาธารณะ (Boolean adjointB)

พารามิเตอร์
ที่อยู่ติดกันB บ่งชี้ว่า `b` ควรถูกแปลงผันหรือไม่

เอาท์พุท สาธารณะ < TType > asOutput ()

ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์

อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต

เอาท์พุท สาธารณะ <?> c ()

CSRSparseMatrix

สร้าง SparseMatrixSparseMatMul แบบคงที่สาธารณะ (ขอบเขต ขอบเขต , ตัวดำเนินการ <?> a, ตัวดำเนินการ <?> b, ประเภทคลาส <T>, ตัวเลือก... ตัวเลือก)

วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ SparseMatrixSparseMatMul ใหม่

พารามิเตอร์
ขอบเขต ขอบเขตปัจจุบัน
CSRSparseMatrix
CSRSparseMatrix
ตัวเลือก มีค่าแอตทริบิวต์ทางเลือก
การส่งคืน
  • อินสแตนซ์ใหม่ของ SparseMatrixSparseMatMul

สาธารณะ SparseMatrixSparseMatMul.Options transposeA (บูลีน transposeA) สาธารณะ

พารามิเตอร์
ย้ายA ระบุว่าควรย้าย `a` หรือไม่

สาธารณะ SparseMatrixSparseMatMul.Options transposeB สาธารณะ (Boolean transposeB)

พารามิเตอร์
ย้ายB ระบุว่าควรย้าย `b` หรือไม่