ScatterNd

کلاس نهایی عمومی ScatterNd

«به‌روزرسانی‌ها» را با توجه به «شاخص‌ها» به یک تانسور شکل «شکل» پراکنده می‌کند.

«به‌روزرسانی‌ها» را با توجه به مقادیر فردی در «شاخص‌های» مشخص شده پراکنده کنید. این عملیات یک تانسور خروجی را با «شکل» که شما مشخص کرده‌اید برمی‌گرداند. این عملیات معکوس عملگر tf.gather_nd است که مقادیر یا برش ها را از یک تانسور معین استخراج می کند.

این عملیات مشابه tf.tensor_scatter_nd_add است، با این تفاوت که تانسور صفر اولیه است. فراخوانی tf.scatter_nd(indices, updates, shape) با فراخوانی «tf.tensor_scatter_nd_add(tf.zeros(شکل، updates.dtype)، شاخص‌ها، به‌روزرسانی‌ها» یکسان است.

اگر «شاخص‌ها» حاوی موارد تکراری باشد، «به‌روزرسانی‌های» مرتبط در تانسور خروجی جمع می‌شوند (جمع می‌شوند).

هشدار : برای انواع داده های ممیز شناور، خروجی ممکن است غیر قطعی باشد. این به این دلیل است که ترتیب اعمال به‌روزرسانی‌ها غیر قطعی است و وقتی اعداد ممیز شناور به ترتیب‌های مختلف اضافه می‌شوند، خطای تقریب عددی حاصل می‌تواند کمی متفاوت باشد. با این حال، اگر op determinism از طریق tf.config.experimental.enable_op_determinism فعال شود، خروجی قطعی خواهد بود.

«شاخص‌ها» یک تانسور عدد صحیح است که شامل شاخص‌هایی در تانسور خروجی است. آخرین بعد «شاخص‌ها» حداکثر می‌تواند رتبه «شکل» باشد:

indices.shape[-1] <= shape.rank

آخرین بعد «شاخص‌ها» به شاخص‌های عناصر (اگر «indice.shape[-1] = shape.rank») یا برش‌ها (اگر «indices.shape[-1] < shape.rank») در امتداد ابعاد «شاخص‌ها» مربوط می‌شود. شکل[-1]` از «شکل».

"به روز رسانی" یک تانسور با شکل است:

indices.shape[:-1] + shape[indices.shape[-1]:]

ساده‌ترین شکل عملیات پراکندگی، درج عناصر منفرد در یک تانسور با شاخص است. مثالی را در نظر بگیرید که در آن می‌خواهید 4 عنصر پراکنده را در یک تانسور رتبه-1 با 8 عنصر وارد کنید.

در پایتون، این عمل پراکندگی به این صورت است:

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)
 
تانسور حاصل به این صورت خواهد بود:

[0، 11، 0، 10، 9، 0، 0، 12]

همچنین می‌توانید تمام برش‌های یک تانسور رتبه بالاتر را به یکباره وارد کنید. به عنوان مثال، می توانید دو برش را در بعد اول یک تانسور رتبه-3 با دو ماتریس از مقادیر جدید وارد کنید.

در پایتون، این عمل پراکندگی به این صورت است:

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)
 
تانسور حاصل به این صورت خواهد بود:

[[[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]]]

توجه داشته باشید که در CPU، اگر یک نمایه خارج از کران پیدا شود، یک خطا برگردانده می شود. در GPU، اگر یک نمایه خارج از کران پیدا شود، شاخص نادیده گرفته می شود.

روش های عمومی

خروجی <U>
asOutput ()
دسته نمادین یک تانسور را برمی‌گرداند.
استاتیک <U، T تعداد را گسترش می دهد> ScatterNd <U>
ایجاد (حوزه دامنه ، شاخص های عملوند <T>، به روز رسانی های عملوند <U>، شکل عملوند <T>)
روش کارخانه برای ایجاد کلاسی که یک عملیات ScatterNd جدید را بسته بندی می کند.
خروجی <U>
خروجی ()
یک تانسور جدید با شکل داده شده و به روز رسانی های اعمال شده بر اساس شاخص ها.

روش های ارثی

روش های عمومی

خروجی عمومی <U> asOutput ()

دسته نمادین یک تانسور را برمی‌گرداند.

ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.

ایجاد ScatterNd ایستا عمومی (حوزه دامنه ، شاخص های عملوند <T>، به روز رسانی های عملوند <U>، شکل عملوند <T>)

روش کارخانه برای ایجاد کلاسی که یک عملیات ScatterNd جدید را بسته بندی می کند.

مولفه های
محدوده محدوده فعلی
شاخص ها تانسور شاخص ها
به روز رسانی ها مقادیر برای پراکندگی در تانسور خروجی.
شکل 1-D. شکل تانسور خروجی
برمی گرداند
  • یک نمونه جدید از ScatterNd

خروجی عمومی <U> خروجی ()

یک تانسور جدید با شکل داده شده و به روز رسانی های اعمال شده بر اساس شاخص ها.