NPM : 10220366
Kelas : 4EA07
1. `from keras.datasets import mnist`: Ini mengimpor dataset MNIST, yang berisi
gambargambar angka tulisan tangan untuk digunakan dalam pelatihan GAN. 2.
`from keras.models import Sequential`: Ini mengimpor modul untuk membuat
model neural network berurutan.
3. `from keras.layers import BatchNormalization, Dense, Reshape, Flatten`:
Ini mengimpor lapisan-lapisan yang akan digunakan dalam model GAN.
`BatchNormalization` digunakan untuk normalisasi batch, `Dense` untuk lapisan
dense (lapisan terhubung penuh), `Reshape` untuk mengubah bentuk data, dan
`Flatten` untuk mengubah gambar menjadi vektor.
4. `from keras.layers.advanced_activations import LeakyReLU`: Ini
mengimpor lapisan aktivasi LeakyReLU, yang digunakan untuk menghindari
masalah gradien yang hilang.
5. `from tensorflow.keras.optimizers import Adam`: Ini mengimpor optimizer
Adam, yang akan digunakan untuk mengoptimalkan model GAN.
6. `import numpy as np`: Ini mengimpor modul NumPy, yang sering
digunakan untuk manipulasi data numerik.
7. `!mkdir generated_images`: Ini adalah perintah untuk membuat direktori
"generated_images" jika belum ada, yang akan digunakan untuk menyimpan
gambar-gambar yang dihasilkan oleh GAN.
Kode ini adalah langkah awal dalam mengatur lingkungan untuk melatih
dan menghasilkan gambar-gambar dengan GAN menggunakan dataset MNIST.
Langkah-langkah selanjutnya akan mencakup pengaturan model generator, model
discriminator, pelatihan GAN, dan pengambilan gambar-gambar hasil generasi.
1. `img_width` dan `img_height`: Ini adalah lebar dan tinggi gambar yang akan
dihasilkan.
1. `model = Sequential()`: Ini membuat model keras berurutan yang akan digunakan
untuk menggabungkan lapisan-lapisan secara berurutan.
2. Ada tiga blok lapisan serupa dalam generator, yang masing-masing terdiri dari:
1. `model = Sequential()`: Ini membuat model keras berurutan yang akan digunakan
untuk menggabungkan lapisan-lapisan secara berurutan.
2. `model.add(Flatten(input_shape=img_shape)`: Ini adalah lapisan Flatten yang
digunakan untuk mengubah gambar dengan bentuk yang sesuai (sesuai dengan
`img_shape`) menjadi vektor 1D untuk input ke lapisan-lapisan berikutnya.
3. Lalu, ada beberapa lapisan dense dalam model:
Proses ini akan terus berlanjut hingga jumlah `epochs` yang telah ditentukan
selesai. Selama pelatihan, model generator akan berusaha untuk menghasilkan
gambar-gambar yang semakin mendekati gambar nyata, sementara model
discriminator akan berusaha untuk membedakan gambar-gambar palsu dari yang
nyata. Hasil pelatihan yang berhasil akan menghasilkan generator yang mampu
menghasilkan gambar-gambar yang semakin realistis.
```python
display_image(epoch_no): return
PIL.Image.open('generated_images/{:08f}.png'.format(epoch_no))
anim_file = 'dcgan.gif'
filenames =
glob.glob('generated_images/*.png')
filenames = sorted(filenames) for
filename in filenames: image =
imageio.imread(filename)
writer.append_data(image)
```
Kode ini menciptakan sebuah GIF yang berisi gambar-gambar yang dihasilkan
oleh model generator selama pelatihan GAN. Prosesnya adalah sebagai berikut: