คลาสย่อยโดยตรงที่รู้จัก |
แสดงถึงสถานะของการวนซ้ำผ่าน 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 ใหม่
รายการสาธารณะ < ตัวดำเนินการ <?>> 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 หรือโครงสร้างของชุดข้อมูลไม่ตรงกับตัววนซ้ำนี้ |
---|