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 <?>>> | trình lặp () |
Ồ | 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
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. |
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
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 ()
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. |
---|