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
)