DatasetIterator

DatasetIterator คลาสสาธารณะ
คลาสย่อยโดยตรงที่รู้จัก

แสดงถึงสถานะของการวนซ้ำผ่าน tf.data Datset DatasetIterator ไม่ใช่ java.util.Iterator ในโหมดกระตือรือร้น คุณสามารถใช้ "ชุดข้อมูล" เป็น Iterable ได้ โดยส่งคืนองค์ประกอบชุดข้อมูลในแต่ละรอบ

ตัวอย่าง: การวนซ้ำในโหมดกราฟ

// Create input tensors
 Operand<?> features = tf.constant( ... );
 Operand<?> labels = tf.constant( ... );


 Dataset dataset = Dataset
         .fromTensorSlices(XTensor, yTensor);
         .batch(BATCH_SIZE);

 DatasetIterator iterator = dataset.makeInitializeableIterator();
 List<Operand<?>> components = iterator.getNext();
 Operand<?> featureBatch = components.get(0);
 Operand<?> labelBatch = components.get(1);

 // Build a TensorFlow graph that does something on each element.
 loss = computeModelLoss(featureBatch, labelBatch);

 optimizer = ... // create an optimizer
 trainOp = optimizer.minimize(loss);

 try (Session session = new Session(graph) {
   while (true) {
     session.run(iterator.getInitializer());
     try {
         session
           .addTarget(trainOp)
           .fetch(loss)
           .run();

         ...
      catch (TFOutOfRangeError e) {
         System.out.println("finished iterating.");
         break;
     }
   }
 }

 }

ตัวอย่าง: การวนซ้ำในโหมดกระตือรือร้น

// Create input tensors
 Operand<?> features = tf.constant( ... );
 Operand<?> labels = tf.constant( ... );

 int BATCH_SIZE = ...

 Dataset dataset = Dataset
         .fromTensorSlices(features, labels)
         .batch(BATCH_SIZE);
 DatasetIterator iterator = dataset.makeIterator();

 Optimizer optimizer = ... // create an optimizer

 for (List<Operand<?>> components : dataset) {
     Operand<?> featureBatch = components.get(0);
     Operand<?> labelBatch = components.get(1);

     loss = computeModelLoss(featureBatch, labelBatch);
     trainOp = optimizer.minimize(loss);
 
 }

ค่าคงที่

สตริง EMPTY_SHARED_NAME

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

DatasetIterator (Ops tf, ตัวดำเนินการ <?> iteratorResource, Op Initializer, List<Class<? ขยาย TType >> outputTypes, List< Shape > outputShapes)
DatasetIterator (Ops tf, ตัวดำเนินการ <?> iteratorResource, List<Class<? ขยาย TType >> outputTypes, List< Shape > outputShapes)

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

DatasetIterator แบบคงที่
fromStructure (Ops tf, List<Class<? ขยาย TType >> outputTypes, List< Shape > outputShapes)
สร้างตัววนซ้ำใหม่จาก "โครงสร้าง" ที่กำหนดโดย `outputShapes` และ `outputTypes`
ปฏิบัติการ
ตัวดำเนินการ <?>
รายการ < ตัวดำเนินการ <?>>
รับถัดไป ()
ส่งคืนรายการ Operand<?> ที่แสดงถึงส่วนประกอบขององค์ประกอบชุดข้อมูลถัดไป
ชุดข้อมูลไม่บังคับ
getNextAsOptional ()
ส่งคืน `DatasetOptional` ที่แสดงส่วนประกอบขององค์ประกอบชุดข้อมูลถัดไป
ปฏิบัติการ
ตัววนซ้ำ <รายการ < ตัวถูกดำเนินการ <?>>>
ปฏิบัติการ
makeInitializer (ชุด ข้อมูล )
สร้างและส่งกลับ TF `Op` ที่สามารถเรียกใช้เพื่อเริ่มต้นตัววนซ้ำนี้บนชุดข้อมูล

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

ค่าคงที่

สตริงสุดท้ายแบบคงที่สาธารณะ EMPTY_SHARED_NAME

ค่าคงที่: ""

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

DatasetIterator สาธารณะ (Ops tf, ตัวดำเนินการ <?> iteratorResource, Op Initializer, List<Class<? ขยาย TType >> outputTypes, List< Shape > outputShapes)

พารามิเตอร์
ไม่ ตัวเข้าถึง Ops ที่สอดคล้องกับ `ExecutionEnvironment` เดียวกันกับ `iteratorResource`
ทรัพยากรตัววนซ้ำ ตัวดำเนินการที่เป็นตัวแทนของตัววนซ้ำ (เช่น สร้างจาก `tf.data.iterator` หรือ `tf.data.anonymousIterator`)
ตัวเริ่มต้น `Op` ที่ควรรันเพื่อเริ่มต้นตัววนซ้ำนี้
ประเภทเอาต์พุต รายการคลาสที่สอดคล้องกับประเภทเทนเซอร์ของแต่ละองค์ประกอบขององค์ประกอบชุดข้อมูล
รูปร่างเอาท์พุท รายการออบเจ็กต์ "รูปร่าง" ที่สอดคล้องกับรูปร่างของแต่ละองค์ประกอบขององค์ประกอบชุดข้อมูล

DatasetIterator สาธารณะ (Ops tf, ตัวดำเนินการ <?> iteratorResource, List<Class<? ขยาย TType >> outputTypes, List< Shape > outputShapes)

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

DatasetIterator แบบคงที่สาธารณะ จากโครงสร้าง (Ops tf, List<Class<? ขยาย TType >> outputTypes, List< Shape > outputShapes)

สร้างตัววนซ้ำใหม่จาก "โครงสร้าง" ที่กำหนดโดย `outputShapes` และ `outputTypes`

พารามิเตอร์
ไม่ ตัวเข้าถึง Ops
ประเภทเอาต์พุต รายการคลาสที่แสดงถึงประเภทเทนเซอร์ของแต่ละองค์ประกอบขององค์ประกอบชุดข้อมูล
รูปร่างเอาท์พุท รายการวัตถุรูปร่างที่แสดงรูปร่างของแต่ละองค์ประกอบขององค์ประกอบชุดข้อมูล
การส่งคืน
  • DatasetIterator ใหม่

สาธารณะ Op getInitializer ()

ตัวดำเนิน การสาธารณะ <?> getIteratorResource ()

รายการสาธารณะ < ตัวดำเนินการ <?>> getNext ()

ส่งคืนรายการ Operand<?> ที่แสดงถึงส่วนประกอบขององค์ประกอบชุดข้อมูลถัดไป

ในโหมดกราฟ ให้เรียกใช้เมธอดนี้หนึ่งครั้ง และใช้ผลลัพธ์เป็นอินพุตในการคำนวณอื่น จากนั้นในลูปการฝึกอบรม เมื่อเรียกใช้ session.run() อย่างต่อเนื่อง องค์ประกอบชุดข้อมูลต่อเนื่องจะถูกดึงข้อมูลผ่านส่วนประกอบเหล่านี้

ในโหมดกระตือรือร้น ทุกครั้งที่เรียกใช้เมธอดนี้ องค์ประกอบชุดข้อมูลถัดไปจะถูกส่งกลับ (ซึ่งจะดำเนินการโดยอัตโนมัติโดยการวนซ้ำผ่าน `ชุดข้อมูล` เป็น Java `Iterable`)

การส่งคืน
  • List<Operand<?>> ที่แสดงส่วนประกอบองค์ประกอบชุดข้อมูล

ชุดข้อมูล สาธารณะ getNextAsOptional ()

ส่งคืน `DatasetOptional` ที่แสดงส่วนประกอบขององค์ประกอบชุดข้อมูลถัดไป

ในโหมดกระตือรือร้น ทุกครั้งที่เรียกใช้เมธอดนี้ องค์ประกอบชุดข้อมูลถัดไปจะถูกส่งกลับเป็น `DatasetOptional`

ใช้ `DatasetOptional.hasValue` เพื่อตรวจสอบว่าตัวเลือกนี้มีค่าหรือไม่ และใช้ `DatasetOptional.getValue` เพื่อดึงค่า

การส่งคืน
  • `DatasetOptional` ที่แสดงส่วนประกอบองค์ประกอบชุดข้อมูล

Ops สาธารณะ getOpsInstance ()

ตัววนซ้ำสาธารณะ <รายการ < ตัวดำเนินการ <?>>> ตัววนซ้ำ ()

public Op makeInitializer (ชุด ข้อมูล )

สร้างและส่งกลับ TF `Op` ที่สามารถเรียกใช้เพื่อเริ่มต้นตัววนซ้ำนี้บนชุดข้อมูล ชุดข้อมูลต้องมีโครงสร้าง (outputTypes, outputShapes) ที่ตรงกับตัววนซ้ำนี้ และใช้ ExecutionEnvironment เดียวกันกับตัววนซ้ำนี้

เมื่อรัน `Op` นี้ ตัววนซ้ำนี้จะถูก "เริ่มต้นใหม่" ที่องค์ประกอบแรกของชุดข้อมูลอินพุต

ในโหมดกระตือรือร้น op จะทำงานโดยอัตโนมัติโดยเป็นส่วนหนึ่งของการเรียก 'makeIterator'

พารามิเตอร์
ชุดข้อมูล `org.tensorflow.data.Dataset` ที่จะเริ่มต้นตัววนซ้ำนี้
การส่งคืน
  • TF `Op` ที่สามารถใช้เพื่อเริ่มต้นตัววนซ้ำนี้บนชุดข้อมูล
ขว้าง
ข้อยกเว้นอาร์กิวเมนต์ที่ผิดกฎหมาย หาก ExecutionEnvironment หรือโครงสร้างของชุดข้อมูลไม่ตรงกับตัววนซ้ำนี้