Scope

نطاق الفصل النهائي العام

يدير مجموعات من الخصائص ذات الصلة عند إنشاء عمليات 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 لإضافة مدخلات التحكم إليها

بيئة التنفيذ العامة env ()

إرجاع بيئة التنفيذ المستخدمة بواسطة هذا النطاق.

سلسلة 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 إذا كان الاسم غير صالح