1つの.tfrecordファイルに基づくテンソルフローデータセットがあります。データセットをテストデータセットとトレーニングデータセットに分割するにはどうすればよいですか?例えば。 70%の訓練と30%のテスト?
編集:
私のTensorflowバージョン:1.8また、tfrecordファイルを使用しています。
Dataset.take()
およびDataset.skip()
を使用できます。
_train_size = int(0.7 * DATASET_SIZE)
val_size = int(0.15 * DATASET_SIZE)
test_size = int(0.15 * DATASET_SIZE)
full_dataset = tf.data.TFRecordDataset(FLAGS.input_file)
full_dataset = full_dataset.shuffle()
train_dataset = full_dataset.take(train_size)
test_dataset = full_dataset.skip(train_size)
val_dataset = test_dataset.skip(test_size)
test_dataset = test_dataset.take(test_size)
_
より一般的にするために、70/15/15 train/val/test分割を使用した例を挙げましたが、テストまたはvalセットが必要ない場合は、最後の2行を無視してください。
Take :
このデータセットから最大でcount個の要素を持つデータセットを作成します。
Skip :
このデータセットからcount個の要素をスキップするデータセットを作成します。
Dataset.shard()
を調べることもできます。
このデータセットの1/num_shardsのみを含むデータセットを作成します。