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 )