شمارنده یک RNG مبتنی بر شمارنده را پیش ببرید.
وضعیت RNG بعد از «rng_read_and_skip(n)» مانند حالت بعد از «uniform([n])» (یا هر توزیع دیگری) خواهد بود. افزایش واقعی اضافه شده به شمارنده یک انتخاب اجرایی نامشخص است.
در موردی که الگوریتم ورودی RNG_ALG_AUTO_SELECT باشد، شمارنده در حالت باید اندازه int64[2]، حداکثر اندازه شمارنده فعلی در بین الگوریتمها باشد. در این حالت، این عملیات شمارنده را طوری مدیریت میکند که انگار یک عدد صحیح 128 بیتی با طرحبندی [lower_64bits, above_64bits] است. اگر یک الگوریتم به کمتر از 128 بیت برای شمارنده نیاز دارد، باید از قسمت سمت چپ int64 [2] استفاده کند. به این ترتیب، int64[2] با تمام الگوریتم های RNG فعلی (Philox، ThreeFry و xla::RandomAlgorithm::RNG_DEFAULT) سازگار است. بنابراین، عملیات RNG پاییندست میتواند از این شمارنده با هر الگوریتم RNG استفاده کند.
روش های عمومی
خروجی <Long> | asOutput () دسته نمادین یک تانسور را برمیگرداند. |
استاتیک RngReadAndSkip | |
خروجی <Long> | ارزش () مقدار قدیمی متغیر منبع، قبل از افزایش. |
روش های ارثی
روش های عمومی
خروجی عمومی <طولانی> asOutput ()
دسته نمادین یک تانسور را برمیگرداند.
ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.
ایجاد RngReadAndSkip استاتیک عمومی ( دامنه دامنه ، منبع عملوند <?>، عملوند <عدد صحیح> alg، عملوند <?> دلتا)
روش کارخانه برای ایجاد کلاسی که عملیات RngReadAndSkip جدید را بسته بندی می کند.
مولفه های
محدوده | محدوده فعلی |
---|---|
منبع | دسته متغیر منبع که وضعیت RNG را ذخیره می کند. حالت شامل شمارنده و به دنبال آن کلید است. |
alg | الگوریتم RNG |
دلتا | میزان پیشرفت. |
برمی گرداند
- یک نمونه جدید از RngReadAndSkip
مقدار <طولانی> خروجی عمومی ()
مقدار قدیمی متغیر منبع، قبل از افزایش. از آنجایی که اندازه حالت وابسته به الگوریتم است، این خروجی با صفر به سمت راست اضافه می شود تا به شکل int64 [3] برسد (اندازه حالت حداکثر فعلی در بین الگوریتم ها).