Bagaimana cara membagi dataset tensorflow menjadi train, test dan validation dalam skrip Python?

Oct 20 2020

Pada notebook jupyter dengan Tensorflow-2.0.0, pemisahan uji validasi-train 80-10-10 dilakukan dengan cara ini:

import tensorflow_datasets as tfds
from os import getcwd
splits = tfds.Split.ALL.subsplit(weighted=(80, 10, 10))

filePath = f"{getcwd()}/../tmp2/"
splits, info = tfds.load('fashion_mnist', with_info=True, as_supervised=True, split=splits, data_dir=filePath)

Namun, ketika mencoba menjalankan kode yang sama secara lokal, saya mendapatkan kesalahan

AttributeError: type object 'Split' has no attribute 'ALL'

Saya telah melihat saya dapat membuat dua set dengan cara ini:

splits, info = tfds.load('fashion_mnist', with_info=True, as_supervised=True, split=['train[:80]','test[80:90]'], data_dir=filePath)

tapi saya tidak tahu bagaimana saya bisa menambahkan set ketiga.

Jawaban

FrancescoBoi Oct 21 2020 at 07:55

tfds.Split.ALL.subsplitatau tfds.Split.TRAIN.subsplittampaknya sudah usang dan tidak lagi didukung.

Beberapa dataset sudah terbagi antara train dan test. Dalam hal ini saya menemukan solusi berikut (menggunakan misalnya dataset mode MNIST):

splits, info = tfds.load('fashion_mnist', with_info=True, as_supervised=True,
split=['train+test[:80]','train+test[80:90]', 'train+test[90:]'],
data_dir=filePath)
(train_examples, validation_examples, test_examples) = splits