tensorflow::ops::TensorArrayGrad

#include <data_flow_ops.h>

สร้าง TensorArray สำหรับจัดเก็บค่าความชันของค่าต่างๆ ในแฮนเดิลที่กำหนด

สรุป

หากค่าเกรเดียนต์ ของ TensorArray ที่กำหนดนั้นมีอยู่แล้ว ระบบจะส่งคืนค่าอ้างอิงถึงค่าเกรเดียนต์นั้น

ล็อกขนาดของ TensorArray ดั้งเดิมโดยการปิดใช้งานแฟล็กขนาดแบบไดนามิก

หมายเหตุเกี่ยวกับข้อมูลขาเข้า flow_in:

คำสั่ง `flow_in` บังคับให้การค้นหาค่าเกรเดียนต์เกิดขึ้นหลังจากที่การดำเนินการอื่นๆ บางอย่างเสร็จสิ้นแล้วเท่านั้น ตัวอย่างเช่น เมื่อ TensorArray สำหรับข้อมูลไปข้างหน้ามีขนาดแบบไดนามิก การเขียนข้อมูลลงใน TensorArray นี้อาจทำให้ขนาดของอ็อบเจ็กต์เปลี่ยนแปลงได้ TensorArray สำหรับค่าเกรเดียนต์จะมีขนาดคงที่ตามขนาดของ TensorArray สำหรับข้อมูลไปข้างหน้าเมื่อมีการเรียกใช้คำสั่งนี้ นอกจากนี้ ขนาดของ TensorArray สำหรับข้อมูลไปข้างหน้าจะถูกตรึงไว้ด้วยการเรียกใช้คำสั่งนี้ ดังนั้น คำสั่ง `flow_in` จึงถูกใช้เพื่อให้แน่ใจว่าการเรียกใช้เพื่อสร้าง TensorArray สำหรับค่าเกรเดียนต์จะเกิดขึ้นหลังจากที่การเขียนข้อมูลทั้งหมดเสร็จสิ้นแล้วเท่านั้น

ในกรณีของ TensorArray ที่มีขนาดเปลี่ยนแปลงได้ การคำนวณเกรเดียนต์ควรทำเฉพาะกับการอ่านข้อมูลที่เชื่อมโยงกันผ่านโฟลว์ให้เกิดขึ้นหลังจากที่การเขียนข้อมูลทั้งหมดเสร็จสิ้นแล้วเท่านั้น ด้วยวิธีนี้ ขนาดสุดท้ายของ TensorArray ที่ส่งต่อจะถูกทราบเมื่อมีการเรียกใช้การดำเนินการนี้

หมายเหตุเกี่ยวกับแอตทริบิวต์ source:

การเรียกใช้ gradient ใน TensorArray จะใช้ตัวสะสม (accumulator) ใน TensorArray หากมีการคำนวณ gradient หลายครั้งในเซสชันเดียวกัน โหนด gradient หลายโหนดอาจไหลผ่านตัวสะสม TensorArray เดียวกันโดยไม่ได้ตั้งใจ ซึ่งจะนับซ้ำและโดยทั่วไปจะทำให้การไหลของ gradient ใน TensorArray ผิดพลาด

วิธีแก้ปัญหาคือการระบุว่าการเรียกใช้ gradient ใน TensorArray นี้เกิดขึ้นในฟังก์ชันใด โดยทำได้โดยการระบุสตริงที่ไม่ซ้ำกัน (เช่น "gradients", "gradients_1", ...) จากชื่อของ Tensor gradient ที่ป้อนเข้ามา สตริงนี้จะถูกใช้เป็นส่วนต่อท้ายเมื่อสร้างออบเจ็กต์ TensorArray gradient ในที่นี้ (แอตทริบิวต์ source )

เมื่อทำการสร้าง/ค้นหา TensorArray ที่ส่งต่อ แอตทริบิวต์ source จะถูกเพิ่มเป็นส่วนต่อท้ายชื่อ เพื่อให้การคำนวณ gradient แต่ละครั้งได้รับตัวสะสม TensorArray ของตัวเอง

ข้อโต้แย้ง:

  • ขอบเขต: วัตถุ ขอบเขต
  • handle: ตัวชี้ไปยัง TensorArray ที่ส่งต่อ
  • flow_in: ค่าสเกลาร์แบบทศนิยมที่บังคับให้การดำเนินการเรียงลำดับอย่างถูกต้อง
  • แหล่งที่มา: สตริงแหล่งที่มาของค่าเกรเดียนต์ ใช้ในการตัดสินใจว่าจะส่งคืน TensorArray เกรเดียนต์ใด

การส่งคืนสินค้า:

ตัวสร้างและตัวทำลาย

TensorArrayGrad (const :: tensorflow::Scope & scope, :: tensorflow::Input handle, :: tensorflow::Input flow_in, StringPiece source)

คุณลักษณะสาธารณะ

flow_out
grad_handle
operation

คุณลักษณะสาธารณะ

การไหลออก

::tensorflow::Output flow_out

grad_handle

::tensorflow::Output grad_handle

การดำเนินการ

Operation operation

หน้าที่สาธารณะ

เทนเซอร์อาร์เรย์เกรด

 TensorArrayGrad(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input handle,
  ::tensorflow::Input flow_in,
  StringPiece source
)