tensorflow::ops::TensorArrayGrad
#include <data_flow_ops.h>Tạo một TensorArray để lưu trữ độ dốc của các giá trị trong handle được cung cấp.
Bản tóm tắt
Nếu gradient của TensorArray được cung cấp đã tồn tại, hàm sẽ trả về một tham chiếu đến nó.
Khóa kích thước của TensorArray gốc bằng cách vô hiệu hóa cờ kích thước động của nó.
Lưu ý về luồng đầu vào flow_in:
Luồng xử lý flow_in buộc việc tra cứu gradient chỉ được thực hiện sau khi một số thao tác khác đã hoàn tất. Ví dụ, khi TensorArray chuyển tiếp được định kích thước động, việc ghi vào TensorArray này có thể làm thay đổi kích thước đối tượng. TensorArray gradient được định kích thước tĩnh dựa trên kích thước của TensorArray chuyển tiếp khi thao tác này được thực thi. Hơn nữa, kích thước của TensorArray chuyển tiếp bị cố định bởi lệnh gọi này. Do đó, luồng được sử dụng để đảm bảo rằng lệnh gọi tạo TensorArray gradient chỉ xảy ra sau khi tất cả các thao tác ghi đã được thực thi.
Đối với các TensorArray có kích thước động, việc tính toán đạo hàm chỉ nên được thực hiện trên các thao tác đọc đã được xâu chuỗi thông qua luồng để chỉ xảy ra sau khi tất cả các thao tác ghi đã được thực thi. Bằng cách đó, kích thước cuối cùng của TensorArray chuyển tiếp sẽ được biết khi thao tác này được gọi.
Lưu ý về thuộc tính nguồn:
Các lệnh gọi đạo hàm của TensorArray sử dụng một đối tượng TensorArray tích lũy. Nếu nhiều đạo hàm được tính toán và chạy trong cùng một phiên, nhiều nút đạo hàm có thể vô tình đi qua cùng một TensorArray tích lũy. Điều này dẫn đến việc tính toán trùng lặp và thường làm gián đoạn luồng đạo hàm của TensorArray .
Giải pháp là xác định xem gradient TensorArray cụ thể này được gọi trong lệnh gọi gradient nào. Điều này được thực hiện bằng cách xác định một chuỗi duy nhất (ví dụ: "gradients", "gradients_1", ...) từ tên của Tensor gradient đầu vào. Chuỗi này được sử dụng làm hậu tố khi tạo đối tượng gradient TensorArray ở đây ( source thuộc tính).
source thuộc tính được thêm vào dưới dạng hậu tố vào tên của TensorArray hướng tới khi thực hiện việc tạo/tra cứu, sao cho mỗi phép tính đạo hàm riêng biệt sẽ có bộ tích lũy TensorArray riêng.
Luận điểm:
- phạm vi: Một đối tượng Phạm vi
- handle: Con trỏ đến TensorArray hướng về phía trước.
- flow_in: Một giá trị vô hướng kiểu float đảm bảo sự nối tiếp chính xác của các thao tác.
- Nguồn: Chuỗi nguồn gradient, được sử dụng để quyết định trả về TensorArray gradient nào.
Trả về:
Hàm khởi tạo và hàm hủy | |
|---|---|
TensorArrayGrad (const :: tensorflow::Scope & scope, :: tensorflow::Input handle, :: tensorflow::Input flow_in, StringPiece source) |
Thuộc tính công khai | |
|---|---|
flow_out | |
grad_handle | |
operation | |
Thuộc tính công khai
dòng chảy ra
::tensorflow::Output flow_out
grad_handle
::tensorflow::Output grad_handle
hoạt động
Operation operation
Chức năng công cộng
TensorArrayGrad
TensorArrayGrad( const ::tensorflow::Scope & scope, ::tensorflow::Input handle, ::tensorflow::Input flow_in, StringPiece source )