گروه هایی از ویژگی های مرتبط را هنگام ایجاد عملیات تنسورفلو، مانند پیشوند نام رایج، مدیریت می کند.
Scope
یک ظرف برای خواص مشترک اعمال شده به TensorFlow عملیات است. کد کاربر عادی مقداردهی اولیه می Scope
و آن را فراهم می کند به کلاس های ساختمان عملیات. به عنوان مثال:
Scope scope = new Scope(graph);
Constant c = Constant.create(scope, 42);
یک کلاس Operation building یک 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, ...);
اشیاء محدوده هستند موضوع امن است.
سازندگان عمومی
روش های عمومی
OperationBuilder | applyControlDependencies ( OperationBuilder ساز) هر عملوند را در controlDependencies به عنوان ورودی کنترلی به سازنده ارائه شده اضافه می کند. |
محیط اجرا | پاکت () محیط اجرای استفاده شده توسط این محدوده را برمی گرداند. |
رشته | makeOpName (رشته defaultName) یک نام منحصر به فرد برای اپراتور ایجاد کنید، در صورت لزوم از یک پیش فرض ارائه شده استفاده کنید. |
محدوده | withControlDependencies (Iterable < عملوند <؟ >> کنترل) محدوده جدیدی را برمیگرداند که در آن عملیات اضافه شده وابستگیهای کنترلی ارائه شده را خواهند داشت. |
محدوده | withName (رشته opName) یک محدوده جدید که از نام ارائه شده برای یک op استفاده می کند، برگردانید. |
محدوده | withSubScope (رشته childScopeName) محدوده جدیدی را برمیگرداند که در آن عملیات اضافهشده دارای پیشوند نام ارائهشده خواهد بود. |
روش های ارثی
سازندگان عمومی
محدوده عمومی ( ExecutionEnvironment ENV)
یک محدوده سطح بالا جدید ایجاد کنید.
مولفه های
env | محیط اجرای مورد استفاده توسط دامنه. |
---|
روش های عمومی
عمومی OperationBuilder applyControlDependencies ( OperationBuilder ساز)
هر عملوند را در controlDependencies به عنوان ورودی کنترلی به سازنده ارائه شده اضافه می کند.
مولفه های
سازنده | OperationBuilder برای افزودن ورودی های کنترلی به |
---|
عمومی رشته makeOpName (رشته defaultName)
یک نام منحصر به فرد برای اپراتور ایجاد کنید، در صورت لزوم از یک پیش فرض ارائه شده استفاده کنید.
این معمولاً فقط توسط کلاس های ساختمان اپراتور فراخوانی می شود.
این روش یک نام منحصر به فرد ایجاد می کند که برای محدوده نام کنترل شده توسط این نمونه مناسب است. نمونه اپراتور کد ساختمان ممکن است مانند نگاه
scope.env().opBuilder("Const", scope.makeOpName("Const"))...
توجه: اگر به شما ارائه یک اپراتور ساخت کلاس کامپوزیت (به عنوان مثال، یک کلاس است که ایجاد یک مجموعه ای از عملیات مرتبط با تماس با سایر کدهای ساختمان اپراتور)، نام ارائه خواهد به عنوان یک subscope به همه اپراتورهای اساسی عمل می کنند.
مولفه های
نام پیش فرض | نام اپراتور اصلی |
---|
برمی گرداند
- نام منحصر به فرد اپراتور
پرتاب می کند
IllegalArgumentException | اگر نام پیش فرض نامعتبر باشد. |
---|
عمومی محدوده withControlDependencies (Iterable < عملوند <؟ >> کنترل)
محدوده جدیدی را برمیگرداند که در آن عملیات اضافه شده وابستگیهای کنترلی ارائه شده را خواهند داشت.
عملیات ایجاد شده با این محدوده دارای یک لبه کنترل از هر یک از کنترل های ارائه شده خواهد بود. تمام خصوصیات دیگر از محدوده فعلی به ارث برده می شوند.
مولفه های
کنترل ها | کنترل وابستگی ها برای عملیات های ایجاد شده با محدوده بازگشتی |
---|
برمی گرداند
- یک دامنه جدید با وابستگی های کنترلی ارائه شده
عمومی محدوده withName (رشته opName)
یک محدوده جدید که از نام ارائه شده برای یک op استفاده می کند، برگردانید.
عملیات ایجاد شده در این حوزه یک نام از فرم باید name/opName[_suffix]
. این به شما امکان می دهد یک اپراتور خاص را با معنی بیشتری نام ببرید.
نام ها باید عبارت منظم مطابقت [A-Za-z0-9.][A-Za-z0-9_.\-]*
مولفه های
opName | نام یک اپراتور در محدوده بازگشتی |
---|
برمی گرداند
- یک Scope جدید که از opName برای عملیات استفاده می کند.
پرتاب می کند
IllegalArgumentException | اگر نام نامعتبر باشد |
---|
عمومی محدوده withSubScope (رشته childScopeName)
محدوده جدیدی را برمیگرداند که در آن عملیات اضافهشده دارای پیشوند نام ارائهشده خواهد بود.
عملیات ایجاد شده با این دامنه باید name/childScopeName/
به عنوان پیشوند. نام واقعی در محدوده بازگشتی منحصر به فرد خواهد بود. تمام خصوصیات دیگر از محدوده فعلی به ارث برده می شوند.
نام دامنه کودک باید به طور منظم بیان مطابقت [A-Za-z0-9.][A-Za-z0-9_.\-]*
مولفه های
childScopeName | نام دامنه فرزند جدید |
---|
برمی گرداند
- یک زیرمجموعه جدید
پرتاب می کند
IllegalArgumentException | اگر نام نامعتبر باشد |
---|