CNN Menggunakan TensorFlow 2 – Bag 3

Pada modul ini kita akan melakukan proses compiling, training dan evaluation.

Langkah berikutnya adalah model compiling. KIta akan model dengan optimizer dan memilih loss function. Optimizer adalah proses dimana weight akan diupdate saat back propagating loss pada neural network.

Optimizer yang digunakan adalah adam dan loss function yang digunakan adalah Sparse softmax (categorical) crossentropy.

Cross entropy sangat cocok digunakan untuk model klasifikasi. Untuk Model regression lebih tepat digunakan mean squared error.

model.compile(loss="sparse_categorical_crossentropy", optimizer="Adam", metrics=["sparse_categorical_accuracy"])

Proses training menggunakan perintah fit dengan parameter dataset training dan epoch. Pada tutorial digunakan epochs=5. Batch menggunakan default value yaitu 32.

model.fit(X_train, y_train, epochs=5)
Epoch 1/5
1563/1563 [==============================] - 251s 160ms/step - loss: 1.6336 - sparse_categorical_accuracy: 0.4004
Epoch 2/5
1563/1563 [==============================] - 245s 156ms/step - loss: 0.9786 - sparse_categorical_accuracy: 0.6547
Epoch 3/5
1563/1563 [==============================] - 247s 158ms/step - loss: 0.7662 - sparse_categorical_accuracy: 0.7302
Epoch 4/5
1563/1563 [==============================] - 246s 157ms/step - loss: 0.6272 - sparse_categorical_accuracy: 0.7809
Epoch 5/5
1563/1563 [==============================] - 246s 158ms/step - loss: 0.5275 - sparse_categorical_accuracy: 0.8160
<tensorflow.python.keras.callbacks.History at 0x7f01c03567d0>

Evaluating menggunakan method evaluate dengan parameter dataset test.

test_loss, test_accuracy = model.evaluate(X_test, y_test)
313/313 [==============================] - 12s 39ms/step - loss: 0.8335 - sparse_categorical_accuracy: 0.7293
print("Test accuracy: {}".format(test_accuracy))
Test accuracy: 0.7293000221252441

Akurasi masih dapat ditingkatkan. SIlakan bereksperimen dengan mengubah hyper parameter.

Latihan dan Eksperimen

Silakan latihan dan bereksperimen dengan mengubah parameter:

  • menambahkan epochs 15-20.
  • menambahkan nilai dropout.
  • mengubah optimizer dan learning rates.

File colab di https://colab.research.google.com/drive/1auNlR_IBrgnMOuAiVszHwQ-M-3z_yCci?usp=sharing

Jika Anda tertarik melihat secara visual apa yang terjadi dengan CNN, silakan lihat di https://www.cs.ryerson.ca/~aharley/vis/conv/flat.html

Sharing is caring:

Leave a Comment