CNN Menggunakan TensorFlow 2 – Bag 2

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.

Sharing is caring:

Leave a Comment