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:
- 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
- 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:
Video tutorialnya bisa dilihat disini:
Semoga Bermanfaat!