هشدار: این API منسوخ شده است و پس از پایدار شدن جایگزینی، در نسخه بعدی TensorFlow حذف خواهد شد.

TensorScatterSub

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

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

این عملیات با کم کردن «به‌روزرسانی‌های» پراکنده از «تانسور» یک تانسور جدید ایجاد می‌کند. این عملیات بسیار شبیه به «tf.scatter_nd_sub» است، با این تفاوت که به‌روزرسانی‌ها از یک تانسور موجود (برخلاف یک متغیر) کم می‌شوند. اگر حافظه تانسور موجود قابل استفاده مجدد نباشد، یک کپی ساخته و به روز می شود.

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

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

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

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

ساده ترین شکل tensor_scatter_sub این است که عناصر منفرد را از یک تانسور با شاخص کم کنیم. به عنوان مثال، فرض کنید می خواهیم 4 عنصر پراکنده را در یک تانسور رتبه-1 با 8 عنصر وارد کنیم.

: در پایتون، این عملیات پراکنده جمع و تفریق شبیه به این خواهد

indices = tf.constant([[4], [3], [1], [7]])
     updates = tf.constant([9, 10, 11, 12])
     tensor = tf.ones([8], dtype=tf.int32)
     updated = tf.tensor_scatter_nd_sub(tensor, indices, updates)
     print(updated)
 
تانسور حاصل شبیه به این:

[1، -10، 1، -9، -8، 1، 1، -11]

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

: در پایتون، این عملیات پراکنده افزودنی شبیه به این خواهد

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]]])
     tensor = tf.ones([4, 4, 4],dtype=tf.int32)
     updated = tf.tensor_scatter_nd_sub(tensor, indices, updates)
     print(updated)
 
تانسور حاصل شبیه به این:

[[[-4، -4، -4، -4]، [-5، -5، -5، -5]، [-6، -6، -6، -6]، [-7، -7 ، -7، -7]]، [[1، 1، 1، 1]، [1، 1، 1، 1]، [1، 1، 1، 1]، [1، 1، 1، 1]] ، [[-4، -4، -4، -4]، [-5، -5، -5، -5]، [-6، -6، -6، -6]، [-7، -7 ، -7، -7]]، [[1، 1، 1، 1]، [1، 1، 1، 1]، [1، 1، 1، 1]، [1، 1، 1، 1]] ]

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

روش های عمومی

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

روش های ارثی

روش های عمومی

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

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

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

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

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

مولفه های
محدوده محدوده فعلی
تانسور تانسور برای کپی/به روز رسانی
شاخص ها تانسور شاخص
به روز رسانی ها به روز رسانی برای پراکندگی در خروجی.
برمی گرداند
  • یک نمونه جدید از TensorScatterSub

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

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