phân tánNd

lớp cuối cùng công khai ScatterNd

Phân tán `update` vào một tensor mới theo `chỉ số`.

Tạo một tenxơ mới bằng cách áp dụng `cập nhật` thưa thớt cho các giá trị hoặc lát riêng lẻ trong một tenxơ (ban đầu bằng 0 cho số, trống cho chuỗi) của `hình dạng` đã cho theo chỉ số. Toán tử này là nghịch đảo của toán tử `tf.gather_nd`, dùng để trích xuất các giá trị hoặc lát cắt từ một tensor nhất định.

Thao tác này tương tự như tensor_scatter_add, ngoại trừ việc tensor được khởi tạo bằng 0. Gọi `tf.scatter_nd(chỉ số, giá trị, hình dạng)` giống hệt với `tensor_scatter_add(tf.zeros(shape, value.dtype), chỉ số, giá trị)`

Nếu `chỉ số` chứa các bản sao thì các cập nhật của chúng sẽ được tích lũy (tổng hợp).

CẢNH BÁO : Thứ tự áp dụng các bản cập nhật là không xác định, do đó đầu ra sẽ không xác định nếu `chỉ số` chứa các bản sao -- do một số vấn đề về xấp xỉ bằng số, các số được tính tổng theo thứ tự khác nhau có thể mang lại kết quả khác nhau.

`chỉ số` là một tensor số nguyên chứa các chỉ số thành một tensor mới có hình dạng `shape`. Chiều cuối cùng của `chỉ số` tối đa có thể là cấp `hình dạng`:

chỉ số.shape[-1] <= hình dạng.rank

Chiều cuối cùng của `indices` tương ứng với các chỉ mục thành các phần tử (nếu `indices.shape[-1] = shape.rank`) hoặc lát cắt (nếu `indices.shape[-1] < shape.rank`) dọc theo chiều `indices .shape[-1]` của `shape`. `updates` là một tensor có hình dạng

index.shape[:-1] + hình dạng[indices.shape[-1]:]

Hình thức phân tán đơn giản nhất là chèn các phần tử riêng lẻ vào một tensor theo chỉ số. Ví dụ: giả sử chúng ta muốn chèn 4 phần tử phân tán vào một tensor hạng 1 có 8 phần tử.

Trong Python, thao tác phân tán này sẽ trông như thế này:

indices = tf.constant([[4], [3], [1], [7]])
     updates = tf.constant([9, 10, 11, 12])
     shape = tf.constant([8])
     scatter = tf.scatter_nd(indices, updates, shape)
     print(scatter)
 
Tensor thu được sẽ trông như thế này:

[0, 11, 0, 10, 9, 0, 0, 12]

Chúng ta cũng có thể chèn toàn bộ các lát cắt của tensor cấp cao hơn cùng một lúc. Ví dụ: nếu chúng ta muốn chèn hai lát cắt vào chiều thứ nhất của tensor hạng 3 với hai ma trận có giá trị mới.

Trong Python, thao tác phân tán này sẽ trông như thế này:

indices = tf.constant([[0], [2]])
     updates = tf.constant([[[5, 5, 5, 5], [6, 6, 6, 6],
                             [7, 7, 7, 7], [8, 8, 8, 8]],
                            [[5, 5, 5, 5], [6, 6, 6, 6],
                             [7, 7, 7, 7], [8, 8, 8, 8]]])
     shape = tf.constant([4, 4, 4])
     scatter = tf.scatter_nd(indices, updates, shape)
     print(scatter)
 
Tensor thu được sẽ trông như thế này:

[[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], [[0, 0, 0 , 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[5, 5, 5, 5], [6, 6 , 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], [[0, 0, 0, 0], [0, 0, 0, 0], [0 , 0, 0, 0], [0, 0, 0, 0]]]

Lưu ý rằng trên CPU, nếu tìm thấy chỉ mục ngoài giới hạn, lỗi sẽ được trả về. Trên GPU, nếu tìm thấy chỉ mục ngoài giới hạn, chỉ mục đó sẽ bị bỏ qua.

Phương pháp công khai

Đầu ra <U>
asOutput ()
Trả về phần điều khiển tượng trưng của một tenxơ.
tĩnh <U, T mở rộng Số> ScatterNd <U>
tạo ( Phạm vi phạm vi, chỉ số Toán hạng <T>, cập nhật Toán hạng <U>, Hình dạng Toán hạng <T>)
Phương thức gốc để tạo một lớp bao bọc một thao tác ScatterNd mới.
Đầu ra <U>
đầu ra ()
Một tenxơ mới có hình dạng nhất định và các cập nhật được áp dụng theo các chỉ số.

Phương pháp kế thừa

Phương pháp công khai

Đầu ra công khai <U> asOutput ()

Trả về phần điều khiển tượng trưng của một tenxơ.

Đầu vào của các hoạt động TensorFlow là đầu ra của một hoạt động TensorFlow khác. Phương pháp này được sử dụng để thu được một thẻ điều khiển mang tính biểu tượng đại diện cho việc tính toán đầu vào.

public static ScatterNd <U> tạo ( Phạm vi phạm vi, chỉ số Toán hạng <T>, cập nhật Toán hạng <U>, Hình dạng Toán hạng <T>)

Phương thức gốc để tạo một lớp bao bọc một thao tác ScatterNd mới.

Thông số
phạm vi phạm vi hiện tại
chỉ số Tenxơ chỉ số.
cập nhật Cập nhật để phân tán vào đầu ra.
hình dạng 1-D. Hình dạng của tensor thu được.
Trả lại
  • một phiên bản mới của ScatterNd

Đầu ra công khai đầu ra <U> ()

Một tenxơ mới có hình dạng nhất định và các cập nhật được áp dụng theo các chỉ số.