Scope

محدوده کلاس نهایی عمومی

هنگام ایجاد عملیات Tensorflow ، مانند پیشوند نام مشترک ، گروههایی از خصوصیات مرتبط را مدیریت می کند.

Scope ظرفی برای خواص مشترک اعمال شده در TensorFlow Ops است. کد کاربر عادی یک Scope مقداردهی اولیه می کند و آن را در کلاس های ساخت Operation ارائه می دهد. به عنوان مثال:

Scope scope = new Scope(graph);
 Constant c = Constant.create(scope, 42);
 

یک کلاس ساختمان Operation یک Scope بدست می آورد و از آن برای تنظیم خصوصیات روی عملیات Tensorflow اساسی استفاده می کند. به عنوان مثال:

// An operator class that adds a constant.
 public class Constant {
   public static Constant create(Scope scope, ...) {
      scope.graph().opBuilder(
        "Const", scope.makeOpName("Const"))
        .setAttr(...)
        .build()
      ...
   
 }
 }

سلسله مراتب محدوده:

Scope روشهای مختلفی را with() ایجاد می کند که دامنه جدیدی ایجاد می کنند. دامنه جدید معمولاً یک ویژگی تغییر می کند در حالی که سایر خصوصیات از دامنه اصلی به ارث می رسند.

مثالی با استفاده از Constant که مانند قبل پیاده سازی شده است:

Scope root = new Scope(graph);

 // The linear subscope will generate names like linear/...
 Scope linear = Scope.withSubScope("linear");

 // This op name will be "linear/W"
 Constant.create(linear.withName("W"), ...);

 // This op will be "linear/Const", using the default
 // name provided by Constant
 Constant.create(linear, ...);

 // This op will be "linear/Const_1", using the default
 // name provided by Constant and making it unique within
 // this scope
 Constant.create(linear, ...);
 

اشیاء محدوده هستند موضوع امن است.

سازندگان عمومی

محدوده ( ExecutionEn Environment env)
یک دامنه جدید سطح بالا ایجاد کنید.

روشهای عمومی

OperationBuilder
applyControlDependency (سازنده OperationBuilder )
هر Operand را به عنوان ورودی کنترل به سازنده ارائه شده در controlDependency می افزاید.
محیط زیست
env ()
محیط اجرای مورد استفاده توسط این دامنه را برمی گرداند.
رشته
makeOpName (رشته پیش فرض نام)
در صورت لزوم با استفاده از پیش فرض ارائه شده یک نام منحصر به فرد برای یک اپراتور ایجاد کنید.
محدوده
withControlDependency ( کنترلهای تکرار شونده < Operand <؟ >>)
دامنه جدیدی را برمی گرداند که در آن عملیات های اضافه شده دارای وابستگی های کنترل ارائه شده هستند.
محدوده
withName (رشته opName)
یک دامنه جدید برگردانید که از نام ارائه شده برای op استفاده کند.
محدوده
withSubScope (رشته کودکScopeName)
دامنه جدیدی را برمی گرداند که در آن عملیات اضافه شده پیشوند نام ارائه شده را خواهد داشت.

روشهای ارثی

سازندگان عمومی

محدوده عمومی ( ExecutionEn Environment env)

یک دامنه جدید سطح بالا ایجاد کنید.

مولفه های
env محیط اجرای مورد استفاده توسط دامنه.

روشهای عمومی

عمومی OperationBuilder applyControlDependency (سازنده OperationBuilder )

هر Operand را به عنوان ورودی کنترل به سازنده ارائه شده در controlDependency می افزاید.

مولفه های
سازنده OperationBuilder برای افزودن ورودی های کنترل به

اجرای عمومی محیط زیست ()

محیط اجرای مورد استفاده توسط این دامنه را برمی گرداند.

رشته عمومی makeOpName (رشته پیش فرض نام)

در صورت لزوم با استفاده از پیش فرض ارائه شده یک نام منحصر به فرد برای یک اپراتور ایجاد کنید.

این معمولاً فقط توسط کلاسهای ساخت اپراتور فراخوانی می شود.

این روش یک نام منحصر به فرد ایجاد می کند ، متناسب با دامنه نامی که توسط این نمونه کنترل می شود. کد ساختمان معمولی اپراتور ممکن است به صورت

scope.env().opBuilder("Const", scope.makeOpName("Const"))...
 
باشد

توجه: اگر یک کلاس ساخت اپراتور مرکب (به عنوان مثال ، کلاسی که مجموعه ای از عملیات مرتبط را با فراخوانی کد ساختمان دیگر اپراتور ایجاد می کند) ارائه دهید ، نام ارائه شده به عنوان یک زیرمجموعه برای همه اپراتورهای زیر عمل می کند.

مولفه های
نام پیش فرض نام اپراتور اصلی
برمی گردد
  • نام منحصر به فرد برای اپراتور.
پرتاب می کند
IllegalArgumentException اگر نام پیش فرض نامعتبر باشد.

محدوده عمومی با ControlDependency ( کنترلهای تکرار شونده < Operand <؟ >>)

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

آپ های ایجاد شده با این دامنه از هر یک از کنترل های ارائه شده دارای یک لبه کنترل هستند. تمام خصوصیات دیگر از دامنه فعلی به ارث می رسند.

مولفه های
کنترل ها وابستگی ها را برای عملیات ایجاد شده با دامنه برگشتی کنترل کنید
برمی گردد
  • دامنه جدیدی با وابستگی های کنترل ارائه شده

محدوده عمومی با نام (رشته opName)

یک دامنه جدید برگردانید که از نام ارائه شده برای op استفاده کند.

در عملیات ایجاد شده در این محدوده ، نامی از فرم وجود دارد name/opName[_suffix] . با این کار می توانید یک اپراتور خاص را معنادارتر بنامید.

نام ها باید با عبارت منظم مطابقت داشته باشند [A-Za-z0-9.][A-Za-z0-9_.\-]*

مولفه های
opName نام یک اپراتور در محدوده برگشتی
برمی گردد
  • محدوده جدیدی که از opName برای عملیات استفاده می کند.
پرتاب می کند
IllegalArgumentException اگر نام نامعتبر باشد

محدوده عمومی با SubScope (String childScopeName)

دامنه جدیدی را برمی گرداند که در آن عملیات اضافه شده پیشوند نام ارائه شده را خواهد داشت.

گزینه های ایجاد شده با این دامنه دارای name/childScopeName/ به عنوان پیشوند هستند. نام واقعی در محدوده برگشتی منحصر به فرد خواهد بود. تمام خصوصیات دیگر از دامنه فعلی به ارث می رسند.

نام دامنه کودک باید با عبارت منظم مطابقت داشته باشد [A-Za-z0-9.][A-Za-z0-9_.\-]*

مولفه های
childScopeName نام دامنه کودک جدید
برمی گردد
  • زیرمجموعه جدید
پرتاب می کند
IllegalArgumentException اگر نام نامعتبر باشد