方法1: データセットをシャッフルして分割する
tf.data.Datasetのshuffle
メソッドとtake
メソッドを組み合わせて、データセットをシャッフルしてからトレーニングデータとテストデータに分割する方法です。
import tensorflow as tf
# データセットを作成する(例として、リストを使用)
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# データセットをシャッフルする
data = tf.data.Dataset.from_tensor_slices(data).shuffle(len(data))
# トレーニングデータとテストデータに分割する
train_data = data.take(7) # 7つの要素をトレーニングデータとして取得
test_data = data.skip(7) # 最初の7つの要素をスキップし、残りの3つの要素をテストデータとして取得
# データを表示して確認する
print("トレーニングデータ:")
for item in train_data:
print(item)
print("テストデータ:")
for item in test_data:
print(item)
方法2: データセットをインデックスを使用して分割する データセットの要素のインデックスを使用して、トレーニングデータとテストデータに分割する方法です。
import tensorflow as tf
# データセットを作成する(例として、リストを使用)
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# データセットの要素のインデックスを作成する
indices = tf.range(len(data))
# インデックスをシャッフルする
indices = tf.random.shuffle(indices)
# トレーニングデータとテストデータに分割する
train_indices = indices[:7] # 最初の7つのインデックスをトレーニングデータとして取得
test_indices = indices[7:] # 残りの3つのインデックスをテストデータとして取得
# インデックスを使用してデータを取得する
train_data = tf.gather(data, train_indices)
test_data = tf.gather(data, test_indices)
# データを表示して確認する
print("トレーニングデータ:")
print(train_data)
print("テストデータ:")
print(test_data)
これらの方法を使用することで、tf.data.Datasetを効果的にトレーニングデータとテストデータに分割することができます。適切な方法を選択し、自身のデータに適用してください。