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, ...);
 

วัตถุขอบเขต ไม่ ปลอดภัยสำหรับเธรด

คอนสตรัคชั่นสาธารณะ

ขอบเขต ( ExecutionEnvironment env)
สร้างขอบเขตระดับบนสุดใหม่

วิธีการสาธารณะ

OperationBuilder
ใช้ (ตัวสร้าง OperationBuilder )
ใช้ข้อกำหนดเฉพาะของอุปกรณ์และเพิ่มตัวดำเนินการแต่ละตัวใน controlDependencies เป็นอินพุตควบคุมให้กับตัวสร้างที่ให้มา
OperationBuilder
ApplyControlDependencies (ตัวสร้าง OperationBuilder )
เพิ่มตัวดำเนินการแต่ละตัวใน controlDependencies เป็นอินพุตควบคุมให้กับตัวสร้างที่จัดเตรียมไว้
สภาพแวดล้อมการดำเนินการ
สิ่งแวดล้อม ()
ส่งคืนสภาพแวดล้อมการดำเนินการที่ใช้โดยขอบเขตนี้
สตริง
รับอุปกรณ์สตริง ()
ส่งคืนสตริงอุปกรณ์จากขอบเขต
สตริง
makeOpName (สตริง defaultName)
สร้างชื่อที่ไม่ซ้ำกันสำหรับโอเปอเรเตอร์ โดยใช้ค่าเริ่มต้นที่ให้ไว้หากจำเป็น
ขอบเขต
withControlDependencies (ควบคุมได้ < Op >)
ส่งกลับขอบเขตใหม่ที่การดำเนินการที่เพิ่มเข้ามาจะมีการขึ้นต่อกันของการควบคุมที่ให้มา
ขอบเขต
กับอุปกรณ์ ( DeviceSpec deviceSpec)
ส่งคืนขอบเขตใหม่ที่ใช้ข้อกำหนดอุปกรณ์ที่ให้มาสำหรับปฏิบัติการ
ขอบเขต
withName (สตริง opName)
กลับขอบเขตใหม่ที่ใช้ชื่อที่ให้ไว้สำหรับสหกรณ์
ขอบเขต
withNameAsSubScope (สตริง defaultName)
ส่งคืนขอบเขตใหม่ที่การดำเนินการที่เพิ่มจะนำหน้าด้วยชื่อ op ของขอบเขตนี้ (ตั้งค่าโดย withName(String) ) หรือค่าเริ่มต้นที่กำหนดหากไม่ได้ตั้งค่า
ขอบเขต
withSubScope (สตริงชื่อลูกขอบเขต)
ส่งกลับขอบเขตใหม่ที่การดำเนินการที่เพิ่มจะมีคำนำหน้าชื่อที่ให้ไว้

วิธีการสืบทอด

คอนสตรัคชั่นสาธารณะ

ขอบเขต สาธารณะ ( ExecutionEnvironment env)

สร้างขอบเขตระดับบนสุดใหม่

พารามิเตอร์
สิ่งแวดล้อม สภาพแวดล้อมการดำเนินการที่ใช้โดยขอบเขต

วิธีการสาธารณะ

ใช้ OperationBuilder สาธารณะ (ตัวสร้าง OperationBuilder )

ใช้ข้อกำหนดเฉพาะของอุปกรณ์และเพิ่มตัวดำเนินการแต่ละตัวใน controlDependencies เป็นอินพุตควบคุมให้กับตัวสร้างที่ให้มา

พารามิเตอร์
ผู้สร้าง OperationBuilder เพื่อเพิ่มอินพุตควบคุมและข้อมูลจำเพาะของอุปกรณ์

OperationBuilder สาธารณะ ApplyControlDependencies (ตัวสร้าง OperationBuilder )

เพิ่มตัวดำเนินการแต่ละตัวใน controlDependencies เป็นอินพุตควบคุมให้กับตัวสร้างที่จัดเตรียมไว้

พารามิเตอร์
ผู้สร้าง OperationBuilder เพื่อเพิ่มอินพุตควบคุม

env ExecutionEnvironment สาธารณะ ()

ส่งคืนสภาพแวดล้อมการดำเนินการที่ใช้โดยขอบเขตนี้

สตริงสาธารณะ getDeviceString ()

ส่งคืนสตริงอุปกรณ์จากขอบเขต

สาธารณะสตริง makeOpName (สตริง defaultName)

สร้างชื่อที่ไม่ซ้ำกันสำหรับโอเปอเรเตอร์ โดยใช้ค่าเริ่มต้นที่ให้ไว้หากจำเป็น

โดยปกติจะเรียกเฉพาะคลาสการสร้างตัวดำเนินการเท่านั้น

วิธีการนี้จะสร้างชื่อที่ไม่ซ้ำกัน ซึ่งเหมาะสมกับขอบเขตชื่อที่ควบคุมโดยอินสแตนซ์นี้ รหัสอาคารของตัวดำเนินการทั่วไปอาจมีลักษณะดังนี้

scope.env().opBuilder("Const", scope.makeOpName("Const"))...
 

หมายเหตุ: หากคุณจัดเตรียมคลาสการสร้างตัวดำเนินการแบบผสม (เช่น คลาสที่สร้างชุดของการดำเนินการที่เกี่ยวข้องโดยการเรียกโค้ดการสร้างตัวดำเนินการอื่นๆ) ชื่อที่ให้ไว้จะทำหน้าที่เป็นขอบเขตย่อยสำหรับตัวดำเนินการพื้นฐานทั้งหมด

พารามิเตอร์
ชื่อเริ่มต้น ชื่อของตัวดำเนินการพื้นฐาน
การส่งคืน
  • ชื่อเฉพาะสำหรับโอเปอเรเตอร์
ขว้าง
ข้อยกเว้นอาร์กิวเมนต์ที่ผิดกฎหมาย หากชื่อเริ่มต้นไม่ถูกต้อง

ขอบเขต สาธารณะ ที่มีการควบคุมการพึ่งพา (Iterable < Op > การควบคุม)

ส่งกลับขอบเขตใหม่ที่การดำเนินการที่เพิ่มเข้ามาจะมีการขึ้นต่อกันของการควบคุมที่ให้มา

การดำเนินการที่สร้างขึ้นด้วยขอบเขตนี้จะมีขอบเขตการควบคุมจากแต่ละการควบคุมที่ให้มา คุณสมบัติอื่นๆ ทั้งหมดสืบทอดมาจากขอบเขตปัจจุบัน

พารามิเตอร์
การควบคุม ควบคุมการพึ่งพาสำหรับ ops ที่สร้างขึ้นด้วยขอบเขตที่ส่งคืน
การส่งคืน
  • ขอบเขตใหม่ที่มีการพึ่งพาการควบคุมที่ให้มา

ขอบเขต สาธารณะ กับอุปกรณ์ ( DeviceSpec deviceSpec)

ส่งคืนขอบเขตใหม่ที่ใช้ข้อกำหนดอุปกรณ์ที่ให้มาสำหรับปฏิบัติการ

การดำเนินการที่สร้างขึ้นภายในขอบเขตนี้จะวางการดำเนินการที่สร้างขึ้นบนอุปกรณ์ที่ตรงกับข้อมูลจำเพาะที่ให้ไว้

พารามิเตอร์
ข้อมูลจำเพาะของอุปกรณ์ ข้อมูลจำเพาะของอุปกรณ์สำหรับผู้ปฏิบัติงานในขอบเขตที่ส่งคืน
การส่งคืน
  • ขอบเขตใหม่ที่ใช้ opName สำหรับการดำเนินงาน

ขอบเขต สาธารณะ withName (String opName)

กลับขอบเขตใหม่ที่ใช้ชื่อที่ให้ไว้สำหรับสหกรณ์

การดำเนินการที่สร้างขึ้นภายในขอบเขตนี้จะมีชื่อของฟอร์ม name/opName[_suffix] ซึ่งช่วยให้คุณตั้งชื่อโอเปอเรเตอร์เฉพาะเจาะจงให้มีความหมายมากขึ้น

ชื่อต้องตรงกับนิพจน์ทั่วไป [A-Za-z0-9.][A-Za-z0-9_.\-]*

พารามิเตอร์
opName ชื่อของตัวดำเนินการในขอบเขตที่ส่งคืน
การส่งคืน
  • ขอบเขตใหม่ที่ใช้ opName สำหรับการดำเนินงาน
ขว้าง
ข้อยกเว้นอาร์กิวเมนต์ที่ผิดกฎหมาย ถ้าชื่อไม่ถูกต้อง

ขอบเขต สาธารณะ withNameAsSubScope (สตริง defaultName)

ส่งคืนขอบเขตใหม่ที่การดำเนินการที่เพิ่มจะนำหน้าด้วยชื่อ op ของขอบเขตนี้ (ตั้งค่าโดย withName(String) ) หรือค่าเริ่มต้นที่กำหนดหากไม่ได้ตั้งค่า สิ่งนี้มีจุดประสงค์เพื่อใช้สำหรับการดำเนินการแบบผสม

Ops ที่สร้างขึ้นด้วยขอบเขตนี้จะมี name/opName/ เป็นคำนำหน้า ชื่อจริงจะไม่ซ้ำกันในขอบเขตที่ส่งคืน คุณสมบัติอื่นๆ ทั้งหมดสืบทอดมาจากขอบเขตปัจจุบัน

ชื่อขอบเขตย่อยเริ่มต้นจะต้องตรงกับนิพจน์ทั่วไป [A-Za-z0-9.][A-Za-z0-9_.\-]*

พารามิเตอร์
ชื่อเริ่มต้น ชื่อของขอบเขตย่อย หากยังไม่ได้ตั้งชื่อขอบเขตนี้
การส่งคืน
  • ขอบเขตย่อยใหม่
ขว้าง
ข้อยกเว้นอาร์กิวเมนต์ที่ผิดกฎหมาย ถ้าชื่อไม่ถูกต้อง

ขอบเขต สาธารณะ withSubScope (สตริง childScopeName)

ส่งกลับขอบเขตใหม่ที่การดำเนินการที่เพิ่มจะมีคำนำหน้าชื่อที่ให้ไว้

Ops ที่สร้างขึ้นด้วยขอบเขตนี้จะมี name/childScopeName/ เป็นคำนำหน้า ชื่อจริงจะไม่ซ้ำกันในขอบเขตที่ส่งคืน คุณสมบัติอื่นๆ ทั้งหมดสืบทอดมาจากขอบเขตปัจจุบัน

ชื่อขอบเขตย่อยต้องตรงกับนิพจน์ทั่วไป [A-Za-z0-9.][A-Za-z0-9_.\-]*

พารามิเตอร์
ชื่อขอบเขตเด็ก ชื่อสำหรับขอบเขตลูกใหม่
การส่งคืน
  • ขอบเขตย่อยใหม่
ขว้าง
ข้อยกเว้นอาร์กิวเมนต์ที่ผิดกฎหมาย ถ้าชื่อไม่ถูกต้อง