DatasetIterator

lớp công khai DatasetIterator
Các lớp con trực tiếp đã biết

Biểu thị trạng thái của một lần lặp thông qua Bộ dữ liệu tf.data. DatasetIterator không phải là java.util.Iterator. Ở chế độ háo hức, `Bộ dữ liệu` có thể được sử dụng làm Iterable, trả về các phần tử tập dữ liệu mỗi lần lặp.

Ví dụ: Lặp lại trong chế độ đồ thị.

// 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;
     }
   }
 }

 }

Ví dụ: Lặp lại ở chế độ háo hức.

// 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);
 
 }

Hằng số

Sợi dây EMPTY_SHARED_NAME

Nhà xây dựng công cộng

DatasetIterator (Ops tf, Toán hạng <?> iteratorResource, Bộ khởi tạo Op , Danh sách<Class<? mở rộng TType >> loại đầu ra, Danh sách< Hình dạng > hình dạng đầu ra)
DatasetIterator (Ops tf, Toán hạng <?> iteratorResource, Danh sách<Class<? mở rộng TType >> loại đầu ra, Danh sách< Hình dạng > hình dạng đầu ra)

Phương pháp công cộng

DatasetIterator tĩnh
fromStructure (Ops tf, Danh sách<Class<? mở rộng TType >> loại đầu ra, Danh sách< Hình dạng > hình dạng đầu ra)
Tạo một trình vòng lặp mới từ một "cấu trúc" được xác định bởi `outputShapes` và `outputTypes`.
Toán hạng <?>
Danh sách< Toán hạng <?>>
getNext ()
Trả về danh sách Operand<?> đại diện cho các thành phần của phần tử tập dữ liệu tiếp theo.
Tập dữ liệuTùy chọn
getNextAsOptional ()
Trả về `DatasetOptional` đại diện cho các thành phần của phần tử tập dữ liệu tiếp theo.
Rất tiếc
Trình vòng lặp<Danh sách< Toán hạng <?>>>
makeInitializer ( Bộ dữ liệu tập dữ liệu)
Tạo và trả về một TF `Op` có thể chạy để khởi tạo trình vòng lặp này trên một tập dữ liệu.

Phương pháp kế thừa

Hằng số

Chuỗi cuối cùng tĩnh công khai EMPTY_SHARED_NAME

Giá trị hiện có: ""

Nhà xây dựng công cộng

public DatasetIterator (Ops tf, Toán hạng <?> iteratorResource, Trình khởi tạo Op , List<Class<? kéo dài TType >> loại đầu ra, Danh sách< Hình dạng > hình dạng đầu ra)

Thông số
tf Trình truy cập Ops tương ứng với cùng `ExecutionEnvironment` như `iteratorResource`.
iteratorResource Một Toán hạng đại diện cho trình vòng lặp (ví dụ: được xây dựng từ `tf.data.iterator` hoặc `tf.data.anonymousIterator`)
trình khởi tạo Một `Op` cần được chạy để khởi tạo trình vòng lặp này
loại đầu ra Danh sách các lớp tương ứng với loại tensor của từng thành phần của phần tử dữ liệu.
đầu raHình dạng Danh sách các đối tượng `Shape` tương ứng với hình dạng của từng thành phần của phần tử tập dữ liệu.

public DatasetIterator (Ops tf, Operand <?> iteratorResource, List<Class<? kéo dài TType >> loại đầu ra, Danh sách< Hình dạng > hình dạng đầu ra)

Phương pháp công cộng

public static DatasetIterator fromStructure (Ops tf, List<Class<?extend TType >>outputTypes, List< Shape >outputShapes)

Tạo một trình vòng lặp mới từ một "cấu trúc" được xác định bởi `outputShapes` và `outputTypes`.

Thông số
tf Trình truy cập hoạt động
loại đầu ra Danh sách các lớp đại diện cho loại tensor của từng thành phần của phần tử tập dữ liệu.
đầu raHình dạng Danh sách các đối tượng Hình dạng biểu thị hình dạng của từng thành phần của phần tử tập dữ liệu.
Trả lại
  • Một DatasetIterator mới

Hoạt động công khai getInitializer ()

Toán hạng công khai <?> getIteratorResource ()

Danh sách công khai< Toán hạng <?>> getNext ()

Trả về danh sách Operand<?> đại diện cho các thành phần của phần tử tập dữ liệu tiếp theo.

Trong chế độ biểu đồ, hãy gọi phương thức này một lần và sử dụng kết quả của nó làm đầu vào cho một phép tính khác. Sau đó, trong vòng đào tạo, trong các lệnh gọi liên tiếp đến session.run(), các phần tử tập dữ liệu liên tiếp sẽ được truy xuất thông qua các thành phần này.

Ở chế độ háo hức, mỗi lần phương thức này được gọi, phần tử tập dữ liệu tiếp theo sẽ được trả về. (Việc này được thực hiện tự động bằng cách lặp qua `Bộ dữ liệu` dưới dạng Java `Iterable`).

Trả lại
  • Một List<Operand<?>> đại diện cho các thành phần phần tử tập dữ liệu.

Bộ dữ liệu công khai Tùy chọn getNextAsOptional ()

Trả về `DatasetOptional` đại diện cho các thành phần của phần tử tập dữ liệu tiếp theo.

Ở chế độ háo hức, mỗi khi phương thức này được gọi, phần tử tập dữ liệu tiếp theo sẽ được trả về dưới dạng `DatasetOptional`.

Sử dụng `DatasetOptional.hasValue` để kiểm tra xem tùy chọn này có giá trị hay không và `DatasetOptional.getValue` để truy xuất giá trị.

Trả lại
  • Một `DatasetOptional` đại diện cho các thành phần phần tử tập dữ liệu.

Hoạt động công khai getOpsInstance ()

public Iterator<List< Toán hạng <?>>> iterator ()

công khai Op makeInitializer ( Tập dữ liệu dữ liệu )

Tạo và trả về một TF `Op` có thể chạy để khởi tạo trình vòng lặp này trên một tập dữ liệu. Tập dữ liệu phải có cấu trúc (loại đầu ra, hình dạng đầu ra) khớp với trình lặp này và chia sẻ cùng Môi trường thực thi như trình lặp này.

Khi `Op` này được chạy, trình vòng lặp này sẽ được "khởi tạo lại" ở phần tử đầu tiên của tập dữ liệu đầu vào.

Ở chế độ háo hức, op sẽ được chạy tự động như một phần của lệnh gọi tới `makeIterator`.

Thông số
tập dữ liệu Một `org.tensorflow.data.Dataset` để khởi chạy trình vòng lặp này.
Trả lại
  • Một TF `Op` có thể được sử dụng để khởi tạo trình vòng lặp này trên tập dữ liệu.
Ném
Ngoại lệ Đối số bất hợp pháp nếu Môi trường thực thi hoặc cấu trúc của tập dữ liệu không khớp với trình vòng lặp này.