يدير مجموعات من الخصائص ذات الصلة عند إنشاء عمليات Tensorflow، مثل بادئة الاسم الشائع.
Scope
عبارة عن حاوية للخصائص الشائعة المطبقة على TensorFlow Ops. يقوم رمز المستخدم العادي بتهيئة Scope
وتوفيره لفئات بناء العملية. على سبيل المثال:
Scope scope = new Scope(graph);
Constant c = Constant.create(scope, 42);
تحصل فئة بناء العملية على نطاق، وتستخدمه لتعيين الخصائص على عمليات 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 | ApplyControlDependeency (منشئ OperationBuilder ) يضيف كل معامل في controlDependeency كمدخل تحكم إلى المنشئ المقدم. |
بيئة التنفيذ | بيئى () إرجاع بيئة التنفيذ المستخدمة بواسطة هذا النطاق. |
خيط | makeOpName (الاسم الافتراضي للسلسلة) أنشئ اسمًا فريدًا لعامل التشغيل، باستخدام الاسم الافتراضي المقدم إذا لزم الأمر. |
نِطَاق | withControlDependeency (عناصر تحكم Iterable< Operand <?>>) إرجاع نطاق جديد حيث سيكون للعمليات المضافة تبعيات التحكم المتوفرة. |
نِطَاق | مع الاسم (سلسلة opName) قم بإرجاع نطاق جديد يستخدم الاسم المقدم للعملية. |
نِطَاق | withSubScope (سلسلة ChildScopeName) إرجاع نطاق جديد حيث سيكون للعمليات المضافة بادئة الاسم المقدمة. |
الطرق الموروثة
المقاولون العامون
النطاق العام (بيئة التنفيذ )
قم بإنشاء نطاق جديد عالي المستوى.
حدود
بيئة | بيئة التنفيذ التي يستخدمها النطاق. |
---|
الأساليب العامة
تطبيق OperationBuilder العام ControlDependeency (منشئ OperationBuilder )
يضيف كل معامل في controlDependeency كمدخل تحكم إلى المنشئ المقدم.
حدود
منشئ | OperationBuilder لإضافة مدخلات التحكم إليها |
---|
سلسلة makeOpName العامة (الاسم الافتراضي للسلسلة)
أنشئ اسمًا فريدًا لعامل التشغيل، باستخدام الاسم الافتراضي المقدم إذا لزم الأمر.
يتم استدعاء هذا عادةً فقط من خلال فئات بناء المشغلين.
تنشئ هذه الطريقة اسمًا فريدًا، مناسبًا لنطاق الاسم الذي يتحكم فيه هذا المثيل. قد يبدو رمز بناء المشغل النموذجي
scope.env().opBuilder("Const", scope.makeOpName("Const"))...
ملاحظة: إذا قمت بتوفير فئة بناء عامل تشغيل مركب (على سبيل المثال، فئة تقوم بإنشاء مجموعة من العمليات ذات الصلة عن طريق استدعاء كود بناء عامل تشغيل آخر)، فإن الاسم المقدم سيكون بمثابة نطاق فرعي لجميع عوامل التشغيل الأساسية.
حدود
الاسم الافتراضي | اسم المشغل الأساسي. |
---|
المرتجعات
- اسم فريد للمشغل.
رميات
IllegalArgumentException | إذا كان الاسم الافتراضي غير صالح. |
---|
النطاق العام مع تبعيات التحكم (عناصر تحكم Iterable< Operand <?>>)
إرجاع نطاق جديد حيث سيكون للعمليات المضافة تبعيات التحكم المتوفرة.
العمليات التي تم إنشاؤها باستخدام هذا النطاق سيكون لها حافة تحكم من كل عنصر من عناصر التحكم المتوفرة. كافة الخصائص الأخرى موروثة من النطاق الحالي.
حدود
الضوابط | تبعيات التحكم للعمليات التي تم إنشاؤها باستخدام النطاق الذي تم إرجاعه |
---|
المرتجعات
- نطاق جديد مع تبعيات التحكم المقدمة
النطاق العام مع الاسم (String opName)
قم بإرجاع نطاق جديد يستخدم الاسم المقدم للعملية.
العمليات التي تم إنشاؤها ضمن هذا النطاق سيكون لها اسم النموذج name/opName[_suffix]
. يتيح لك هذا تسمية عامل تشغيل محدد بشكل أكثر وضوحًا.
يجب أن تتطابق الأسماء مع التعبير العادي [A-Za-z0-9.][A-Za-z0-9_.\-]*
حدود
اسم العملية | اسم عامل التشغيل في النطاق الذي تم إرجاعه |
---|
المرتجعات
- نطاق جديد يستخدم opName للعمليات.
رميات
IllegalArgumentException | إذا كان الاسم غير صالح |
---|
النطاق العام مع SubScope (سلسلة ChildScopeName)
إرجاع نطاق جديد حيث سيكون للعمليات المضافة بادئة الاسم المقدمة.
العمليات التي تم إنشاؤها باستخدام هذا النطاق سيكون لها name/childScopeName/
كبادئة. سيكون الاسم الفعلي فريدًا في النطاق الذي تم إرجاعه. كافة الخصائص الأخرى موروثة من النطاق الحالي.
يجب أن يتطابق اسم النطاق الفرعي مع التعبير العادي [A-Za-z0-9.][A-Za-z0-9_.\-]*
حدود
ChildScopeName | اسم النطاق التابع الجديد |
---|
المرتجعات
- نطاق فرعي جديد
رميات
IllegalArgumentException | إذا كان الاسم غير صالح |
---|