คำเตือน: API นี้เลิกใช้งานแล้วและจะถูกลบออกใน TensorFlow เวอร์ชันในอนาคตหลังจาก การแทนที่ เสถียรแล้ว

TensorScatterAdd

คลาสสุดท้าย TensorScatterAdd

เพิ่ม "การอัปเดต" แบบเบาบางให้กับเทนเซอร์ที่มีอยู่ตาม "ดัชนี"

การดำเนินการนี้จะสร้างเมตริกซ์ใหม่โดยเพิ่ม "การอัปเดต" แบบกระจัดกระจายไปยังการส่งผ่านใน "เทนเซอร์" การดำเนินการนี้คล้ายกับ tf.compat.v1.scatter_nd_add มาก ยกเว้นว่ามีการเพิ่มการอัปเดตลงในเมตริกซ์ที่มีอยู่ (ซึ่งต่างจากตัวแปร) หากหน่วยความจำสำหรับเทนเซอร์ที่มีอยู่ใช้ซ้ำไม่ได้ จะมีการคัดลอกและอัปเดต

`ดัชนี' คือเทนเซอร์จำนวนเต็มที่มีดัชนีเป็นเมตริกซ์ของรูปร่าง `tensor.shape' มิติข้อมูลสุดท้ายของ "ดัชนี" สามารถอยู่ในอันดับ "tensor.shape" ได้มากที่สุด:

indices.shape[-1] <= tensor.shape.rank
 
มิติสุดท้ายของ "ดัชนี" จะสัมพันธ์กับดัชนีในองค์ประกอบต่างๆ (หาก "indices.shape[-1] = tensor.shape อันดับ`) หรือสไลซ์ (ถ้า `indices.shape[-1] < tensor.shape.rank`) ตามมิติ `indices.shape[-1]` ของ `tensor.shape` `อัปเดต` คือเทนเซอร์ที่มีรูปร่าง
indices.shape[:-1] + tensor.shape[indices.shape[-1]:]
 
รูปแบบที่ง่ายที่สุดของ `tensor_scatter_nd_add` คือการเพิ่มองค์ประกอบแต่ละรายการให้กับเมตริกซ์โดยดัชนี ตัวอย่างเช่น สมมติว่าเราต้องการเพิ่มองค์ประกอบ 4 ตัวในเทนเซอร์อันดับ 1 ที่มี 8 องค์ประกอบ

ใน Python การดำเนินการเพิ่มกระจายนี้จะมีลักษณะดังนี้:

>>> ดัชนี = tf.constant([[4], [3], [1], [7]]) >>> อัปเดต = tf.constant([9, 10, 11, 12]) >>> เทนเซอร์ = tf.ones([8], dtype=tf.int32) >>> updated = tf.tensor_scatter_nd_add(tensor, indices, updates) >>> updated

นอกจากนี้เรายังสามารถแทรกเทนเซอร์อันดับที่สูงกว่าทั้งหมดได้พร้อมกัน ตัวอย่างเช่น หากเราต้องการแทรกสองส่วนในมิติแรกของเทนเซอร์อันดับ 3 ด้วยเมทริกซ์สองค่าใหม่

ใน Python การดำเนินการเพิ่มกระจายนี้จะมีลักษณะดังนี้:

>>> ดัชนี = tf.constant([[0], [2]]) >>> อัปเดต = tf.constant([[[5, 5, 5, 5], [6, 6, 6, 6], ... [7, 7, 7, 7], [8, 8, 8, 8]], ... [[5, 5, 5, 5], [6, 6, 6, 6], .. . [7, 7, 7, 7], [8, 8, 8, 8]]]) >>> เทนเซอร์ = tf.ones([4, 4, 4],dtype=tf.int32) >>> อัปเดต = tf.tensor_scatter_nd_add(tensor, indices, updates) >>> updated

หมายเหตุ: บน CPU หากพบดัชนีนอกขอบเขต ข้อผิดพลาดจะถูกส่งคืน บน GPU หากพบดัชนีนอกขอบเขต ดัชนีจะถูกละเว้น

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

เอาท์พุต <T>
เป็นเอาต์พุต ()
ส่งกลับค่าแฮนเดิลเชิงสัญลักษณ์ของเทนเซอร์
คงที่ <T, U ขยายจำนวน> TensorScatterAdd <T>
สร้าง ( ขอบเขต ขอบเขต, ตัว ถูกดำเนินการ < T > เทนเซอร์, ดัชนี ตัวถูกดำเนินการ <U>, การอัปเดตตัวถูกดำเนินการ <T>)
วิธีการ Factory เพื่อสร้างคลาสที่ปิดการดำเนินการ TensorScatterAdd ใหม่
เอาท์พุต <T>
เอาท์พุท ()
เทนเซอร์ใหม่ที่คัดลอกมาจากเทนเซอร์และอัปเดตที่เพิ่มตามดัชนี

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

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

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

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

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

สาธารณะคงที่ TensorScatterAdd <T> สร้าง ( ขอบเขต ขอบเขต, ตัวถูกดำเนินการ <T> เทนเซอร์, ดัชนีตัวถูกดำเนิน การ <U>, การ อัปเดตตัวถูกดำเนินการ <T>)

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

พารามิเตอร์
ขอบเขต ขอบเขตปัจจุบัน
เทนเซอร์ เทนเซอร์เพื่อคัดลอก/อัปเดต
ดัชนี ดัชนีเทนเซอร์
อัพเดท อัปเดตเพื่อกระจายไปยังเอาต์พุต
คืนสินค้า
  • อินสแตนซ์ใหม่ของ TensorScatterAdd

เอาต์พุต สาธารณะ <T> เอาต์พุต ()

เทนเซอร์ใหม่ที่คัดลอกมาจากเทนเซอร์และอัปเดตที่เพิ่มตามดัชนี