dòng chảy căng:: ôi:: TensorArrayGrad
#include <data_flow_ops.h>
Tạo một TensorArray để lưu trữ gradient của các giá trị trong ô đ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 chuyển tiếp của TensorArray 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 )