data generator tensorflow

data generator tensorflow

tf.keras.preprocessing.image.ImageDataGenerator - TensorFlow tf.keras.preprocessing.image.ImageDataGenerator adalah suatu alat yang dapat digunakan untuk menghasilkan batch data gambar tensor dengan augmentasi data secara real-time. Cara terbaik untuk memahami Custom Data Generator adalah dengan memahami cara dasar pengembangan model dan cara penggunaan ImageDataGenerator di tf.keras. Terdapat dua cara yang dapat dilakukan untuk membuat suatu dataset, yaitu dengan menggunakan data source atau data transformation. Data source akan menghasilkan suatu dataset dari data yang disimpan dalam memori atau dalam satu atau beberapa file. Sedangkan data transformation akan menghasilkan suatu dataset dari satu atau beberapa objek tf.data.Dataset. Berikut ini adalah contoh kode program untuk membuat suatu DataGenerator dengan menggunakan TensorFlow: import tensorflow as tf class DataGenerator (tensorflow.keras.utils.Sequence): def __init__ (self, files_path, labels_path, batch_size=32, shuffle=True, random_state=42): 'Inisialisasi' self.files = files_path self.labels = labels_path self.batch_size = batch_size self.shuffle = shuffle self.random_state = random_state self.on_epoch_end () def on_epoch_end... def __data_generation (self, list_IDs_temp): 'Menghasilkan data dalam bentuk batch' # X : (n_samples, *dim, n_channels) # Inisialisasi X = np.empty((self.batch_size, *self.dim, self.n_channels)) y = np.empty((self.batch_size), dtype=int) # Menghasilkan data for i, ID in enumerate(list_IDs_temp): # Menyimpan sampel X[i,] = np.load(' data ... Suatu DataGenerator dapat mengatasi masalah kekurangan memori dengan menghasilkan data dalam bentuk batch daripada menyimpan keseluruhan dataset dalam memori. Hal ini memungkinkan penggunaan memori yang lebih efisien sehingga mencegah terjadinya kesalahan pada saat kompilasi. Pengguna juga dapat mengatur cara pengaturan generator untuk menghasilkan data dengan jumlah siklus/step yang lebih dari satu. Pada TensorFlow, terdapat dua cara untuk mengendalikan proses pembangkitan angka acak, yaitu dengan menggunakan objek tf.random.Generator atau fungsi acak tanpa keadaan (purely-functional stateless random functions) seperti tf.random.stateless_uniform. Pengguna dapat mengatur shapes dari nilai yang dihasilkan dari suatu generator menggunakan argumen output_shapes pada fungsi tf.data.Dataset.from_generator(). Dataset tidak perlu mengeksekusi keseluruhan dataset dalam memori, melainkan satu batch pada suatu waktu. Oleh karena itu, penggunaan tf.data.Dataset API akan membantu mencegah kesalahan pada saat kompilasi.