dòng chảy căng:: ôi:: TensorArrayGrad

#include <data_flow_ops.h>

Tạo một TensorArray để lưu trữ độ dốc của các giá trị trong bộ điều khiển đã cho.

Bản tóm tắt

Nếu gradient TensorArray đã cho đã tồn tại, hãy trả về một tham chiếu đến nó.

Khóa kích thước của TensorArray ban đầu 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_in:

Điều khiển flow_in buộc việc thực hiện tra cứu độ dốc chỉ xảy ra sau khi một số thao tác khác đã xảy ra. Ví dụ: khi TensorArray chuyển tiếp có kích thước động, việc ghi vào TensorArray này có thể thay đổi kích thước đối tượng. Độ dốc TensorArray có 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 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 gradient TensorArray chỉ xảy ra sau khi tất cả quá trình ghi được thực thi.

Trong trường hợp TensorArrays có kích thước động, tính toán độ dốc chỉ nên được thực hiện trên các hoạt động đọ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.

Một lưu ý về thuộc tính nguồn:

Các cuộc gọi gradient TensorArray sử dụng đối tượng TensorArray tích lũy. Nếu nhiều gradient được tính toán và chạy trong cùng một phiên, nhiều nút gradient có thể vô tình chảy qua cùng một bộ tích lũy TensorArray . Số lượng này tăng gấp đôi và thường phá vỡ luồng gradient TensorArray .

Giải pháp là xác định lệnh gọi gradient nào mà gradient TensorArray cụ thể này đang được gọi. Đ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 gradient đầu vào Tensor . Chuỗi này được sử dụng làm hậu tố khi tạo đối tượng gradient TensorArray tại đây (thuộc tính source ).

source thuộc tính được thêm dưới dạng hậu tố cho tên của TensorArray chuyển tiếp khi thực hiện tạo/tra cứu, để mỗi phép tính gradient riêng biệt có bộ tích lũy TensorArray riêng.

Lập luận:

  • phạm vi: Một đối tượng Phạm vi
  • tay cầm: Tay cầm để chuyển tiếp TensorArray .
  • flow_in: Một vô hướng float thực thi chuỗi hoạt động thích hợp.
  • nguồn: Chuỗi nguồn gradient, được sử dụng để quyết định TensorArray gradient nào sẽ trả về.

Trả về:

Hàm 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

chảy_ra

::tensorflow::Output flow_out

cấp độ xử lý

::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
)