Pada modul ini kita akan membuat model.
Pertama definisikan dahulu model
model = tf.keras.models.Sequential()
Menambahkan layer
Layer pertama, adalah convolutional layer. Dengan hyper parameter
- filters: 32
- kernel_size: 3
- padding: same
- activation: relu
- input_shape: (32, 32, 3)
model.add(tf.keras.layers.Conv2D(filters=32, kernel_size=3, padding="same", activation="relu", input_shape=[32, 32, 3]))
Menambahkan Convolutional layer kedua denga hyper-parameters:
- filters: 32
- kernel_size:3
- padding: same
- activation: relu
Langkah berikutnya menambahkan MaxPool layer dengan hyper-parameters:
- pool_size: 2
- strides: 2
- padding: valid
model.add(tf.keras.layers.Conv2D(filters=32, kernel_size=3, padding="same", activation="relu")) model.add(tf.keras.layers.MaxPool2D(pool_size=2, strides=2, padding='valid'))
Menambahkan Convolutional layer ketiga dengan hyper-parameters:
- filters: 64
- kernel_size:3
- padding: same
- activation: relu
model.add(tf.keras.layers.Conv2D(filters=64, kernel_size=3, padding="same", activation="relu"))
Menambahkan convolutional layer keempat dengan layer hyper-parameters:
- filters: 64
- kernel_size:3
- padding: same
- activation: relu
Tambahkan MaxPool layer hyper-parameters:
- pool_size: 2
- strides: 2
- padding: valid
model.add(tf.keras.layers.Conv2D(filters=64, kernel_size=3, padding="same", activation="relu")) model.add(tf.keras.layers.MaxPool2D(pool_size=2, strides=2, padding='valid'))
Menambahkan flattening layer
model.add(tf.keras.layers.Flatten())
Menambahkan fully-connected layer pertama dengan layer hyper-parameters:
- units/neurons: 128
- activation: relu
model.add(tf.keras.layers.Dense(units=128, activation='relu'))
Terakhir adalah menambahkan output layer dengan hyper-parameters:
- units/neurons: 10 (number of classes)
- activation: softmax
Softmax adalah fungsi untuk menghitung probabilitas output dengan range 0-1 dengan total dari probabilitas adalah 1. Untuk lebih jelas mengenai softmax bisa lihat di https://en.wikipedia.org/wiki/Softmax_function
model.add(tf.keras.layers.Dense(units=10, activation='softmax'))
Model summary akan seperti berikut
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d (Conv2D) (None, 32, 32, 32) 896
_________________________________________________________________
conv2d_1 (Conv2D) (None, 32, 32, 32) 9248
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 16, 16, 32) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 16, 16, 64) 18496
_________________________________________________________________
conv2d_3 (Conv2D) (None, 16, 16, 64) 36928
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 8, 8, 64) 0
_________________________________________________________________
flatten (Flatten) (None, 4096) 0
_________________________________________________________________
dense (Dense) (None, 128) 524416
_________________________________________________________________
dense_1 (Dense) (None, 10) 1290
=================================================================
Total params: 591,274
Trainable params: 591,274
Non-trainable params: 0
_________________________________________________________________
Pada modul ini model selesai dibuat, proses training dan evaluation akan kita lakukan pada modul berikutnya.