ScatterNd

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

Phân tán `cập nhật` thành một tenxơ có hình dạng `hình dạng` theo `chỉ số`.

Phân tán `cập nhật` thưa thớt theo các giá trị riêng lẻ tại `chỉ số` được chỉ định. Op này trả về một tenxơ đầu ra có `hình dạng` mà bạn chỉ định. Op này là nghịch đảo của toán tử tf.gather_nd để trích xuất các giá trị hoặc lát cắt từ một tenxơ nhất định.

Thao tác này tương tự như tf.tensor_scatter_nd_add , ngoại trừ việc tensor được khởi tạo bằng 0. Gọi tf.scatter_nd(indices, updates, shape) giống hệt với gọi `tf.tensor_scatter_nd_add(tf.zeros(shape,updates.dtype),index,update)`

Nếu `chỉ số` chứa các bản sao, thì `cập nhật` liên quan sẽ được tích lũy (tổng hợp) vào tensor đầu ra.

CẢNH BÁO : Đối với các kiểu dữ liệu dấu phẩy động, đầu ra có thể không xác định. Điều này là do thứ tự áp dụng các bản cập nhật không xác định và khi các số dấu phẩy động được thêm vào theo các thứ tự khác nhau thì kết quả là lỗi gần đúng bằng số có thể hơi khác nhau. Tuy nhiên, đầu ra sẽ mang tính quyết định nếu tính năng xác định op được bật thông qua tf.config.experimental.enable_op_determinism .

`chỉ số` là một tenxơ số nguyên chứa các chỉ số trong tenxơ đầu ra. 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

Thứ nguyên cuối cùng của `indices` tương ứng với chỉ số của 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 thứ nguyên `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 đơn giản nhất của hoạt động phân tán là chèn các phần tử riêng lẻ vào một tensor theo chỉ số. Hãy xem xét một ví dụ trong đó bạn 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]

Bạn 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ụ: bạn có thể 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([[1], [3]])
     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:

[[[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]], [[5, 5, 5, 5], [6, 6, 6, 6], [7 , 7, 7, 7], [8, 8, 8, 8]]]

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 cộng

Đầ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 tensor 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 cộng

Đầ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ơ của chỉ số.
cập nhật Các giá trị để phân tán vào tensor đầu ra.
hình dạng 1-D. Hình dạng của tensor đầu ra.
Trả lại
  • một phiên bản mới của ScatterNd

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

Một tensor 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ố.