既知の直接サブクラス |
tf.data データセットによる反復の状態を表します。 DatasetIterator は java.util.Iterator ではありません。 Eager モードでは、「Dataset」を 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;
}
}
}
}
例: Eager モードでの反復。
// 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イニシャライザ、List<Class<? extends TType >> OutputTypes、List< Shape > OutputShapes) | |
DatasetIterator (Ops tf、オペランド<?> iteratorResource、List<Class<? extends TType >> OutputTypes、List< Shape > OutputShapes) |
パブリックメソッド
静的DatasetIterator | fromStructure (Ops tf、List<Class<? extends TType >>outputTypes、List <Shape> outputShapes) `outputShapes` と `outputTypes` によって定義された「構造体」から新しい反復子を作成します。 |
オペ | |
オペランド<?> | |
リスト<オペランド<?>> | getNext () 次のデータセット要素のコンポーネントを表す Operand<?> のリストを返します。 |
データセットオプション | getNextAsOptional () 次のデータセット要素のコンポーネントを表す `DatasetOptional` を返します。 |
作戦 | |
イテレータ<リスト<オペランド<?>>> | イテレータ() |
オペ |
継承されたメソッド
定数
パブリック静的最終文字列EMPTY_SHARED_NAME
パブリックコンストラクター
public DatasetIterator (Ops tf、 Operand <?> iteratorResource、 Opイニシャライザ、List<Class<? extends TType >> OutputTypes、List< Shape > OutputShapes)
パラメーター
TF | `iteratorResource` と同じ `ExecutionEnvironment` に対応する Ops アクセサー。 |
---|---|
イテレータリソース | イテレータを表すオペランド (例: `tf.data.iterator` または `tf.data.anonymousIterator` から構築) |
イニシャライザ | このイテレータを初期化するために実行する必要がある `Op` |
出力タイプ | データセット要素の各コンポーネントのテンソル タイプに対応するクラスのリスト。 |
出力形状 | データセット要素の各コンポーネントの形状に対応する `Shape` オブジェクトのリスト。 |
パブリックメソッド
public static DatasetIterator fromStructure (Ops tf, List<Class<? extends TType >> OutputTypes, List< Shape > OutputShapes)
`outputShapes` と `outputTypes` によって定義された「構造体」から新しい反復子を作成します。
パラメーター
TF | 運用アクセサー |
---|---|
出力タイプ | データセット要素の各コンポーネントのテンソル型を表すクラスのリスト。 |
出力形状 | データセット要素の各コンポーネントの形状を表す Shape オブジェクトのリスト。 |
戻り値
- 新しい DatasetIterator
public List<オペランド<?>> getNext ()
次のデータセット要素のコンポーネントを表すOperand<?>
のリストを返します。
グラフ モードでは、このメソッドを 1 回呼び出し、その結果を別の計算への入力として使用します。次に、トレーニング ループで session.run() を連続して呼び出すと、これらのコンポーネントを通じて連続したデータセット要素が取得されます。
熱心モードでは、このメソッドが呼び出されるたびに、次のデータセット要素が返されます。 (これは、Java `Iterable` として `Dataset` を反復処理することによって自動的に行われます)。
戻り値
- データセット要素コンポーネントを表す
List<Operand<?>>
。
public DatasetOptional getNextAsOptional ()
次のデータセット要素のコンポーネントを表す `DatasetOptional` を返します。
Eager モードでは、このメソッドが呼び出されるたびに、次のデータセット要素が `DatasetOptional` として返されます。
このオプションに値があるかどうかを確認するには `DatasetOptional.hasValue` を使用し、値を取得するには `DatasetOptional.getValue` を使用します。
戻り値
- データセット要素コンポーネントを表す `DatasetOptional`。
パブリック運用getOpsInstance ()
public Op makeInitializer ( Datasetデータセット)
データセット上でこのイテレータを初期化するために実行できる TF `Op` を作成して返します。データセットは、このイテレータと一致する構造 (outputTypes、outputShapes) を持ち、このイテレータと同じ ExecutionEnvironment を共有する必要があります。
この「Op」が実行されると、このイテレータは入力データセットの最初の要素で「再初期化」されます。
Eager モードでは、op は `makeIterator` への呼び出しの一部として自動的に実行されます。
パラメーター
データセット | このイテレータを初期化するための `org.tensorflow.data.Dataset`。 |
---|
戻り値
- データセット上でこのイテレータを初期化するために使用できる TF `Op`。
投げる
IllegalArgumentException | データセットの ExecutionEnvironment または構造がこのイテレータと一致しない場合。 |
---|