Dataset Custom gambar di Tensorflow


Tensorflow nyediain banyak dataset. Cuman saya lagi perlu training dengan dataset custom. Kemaren nemu tutorial dari Aladdin Persson tentang bikin dataset image custom di tensorflow. Menurut dia ada 3 metode yang bisa digunakan. Metode ini tergantung kondisi dataset yang kita punya

Dataset sudah terstruktur dibagi dalam subfolder (kelas)

Om Aladdin ngasih contoh pake dataset gambar angka dari 0-9 yang udah disusun dalam subfolder. Untuk data kayak gini ada 2 metode yang dia contohin:

  1. Pake dataset from directory: disini dia nyontohin pake tf.keras.preprocessing.image_dataset_from_directory(“nama/folder/”. terus dia definisikan parameter2nya kayak labels, label_mode, color_mode, batch_size, image_size, shuffle, seed dll
  2. Pake ImageDataGenerator dan flow_from_directory ; kalo pake cara ini dia pake perintah datagen=ImageDataGenerator kemudian didefinisikan dulu augmentasi datanya kayak rescale, rotation_range, zoom_range, horizontal_flip, vertical_flip, data_format dll. Kemudian dia panggil datanya pake train_generator = datagen.flow_from_directory(“nama/folder/, dan didefinisikan parameter seperti target_size, batch_size, color_mode, dll

kodenya dia share disini: https://github.com/aladdinpersson/Machine-Learning-Collection/blob/master/ML/TensorFlow/Basics/tutorial18-customdata-images/1_in_subfolders.py

Folder dengan file CSV

Metode kedua ini datanya semua ada dalam satu folder, dan ada 1 file csv yang ngelist nama file dan nama labelnya. Menurut om aladdin, kita definisikan dulu alamat directorinya, misalnya directory=’nama/folder/’

kemudian dia definisikan dataframenya; df=pd.read_csv(directory+’nama_file_.csv’

trus dia definisikan file_path = df[‘nama_file’].values ; ini nama file di csv tadi. trus definisikan labelnya dengan labels=df[‘label’].values

kemudian dia definisikan si dataset buat trainingnya pake perintah ds_train=tf.data.Dataset.fron_tensor_slices((file_paths,labels))

kode lengkapnya bisa dilihat disini: https://github.com/aladdinpersson/Machine-Learning-Collection/blob/master/ML/TensorFlow/Basics/tutorial18-customdata-images/2_csv_file.py

Semua Gambar dalam satu folder

Cara terakhir kalo semua gambar ada dalam satu folder. Gak ada csv nya. Tapi di nama filenya ada formatnya. misalnya nama filenya 7_1 .jpg 1_1.jpg dst. Disini ada tambahan import pathlib. Dia definisikan dulu directorynya, kemudian dia pake pareintah ds_train=tf.data.Dataset.list_files(str(pathlib.Path(directory+’*.jpg’)))

kodenya bisa dilihat disini:

https://github.com/aladdinpersson/Machine-Learning-Collection/blob/master/ML/TensorFlow/Basics/tutorial18-customdata-images/3_single_folder.py

Video tutorialnya bisa dilihat disini:

Semoga Bermanfaat!


Silahkan tuliskan tanggapan, kritik maupun saran