TensorFlow - Keras
Keras adalah library Python tingkat tinggi yang ringkas, mudah dipelajari, dan dijalankan di atas framework TensorFlow. Itu dibuat dengan fokus pada pemahaman teknik pembelajaran yang mendalam, seperti membuat lapisan untuk jaringan saraf yang mempertahankan konsep bentuk dan detail matematika. Pembuatan freamework dapat dari dua jenis berikut -
- API Sekuensial
- API Fungsional
Simak delapan langkah berikut untuk membuat model deep learning di Keras -
- Memuat data
- Memproses ulang data yang dimuat
- Definisi model
- Menyusun model
- Sesuaikan model yang ditentukan
- Evaluasi itu
- Buat prediksi yang diperlukan
- Simpan modelnya
Kami akan menggunakan Notebook Jupyter untuk eksekusi dan tampilan output seperti yang ditunjukkan di bawah ini -
Step 1 - Memuat data dan preprocessing data yang dimuat diimplementasikan terlebih dahulu untuk menjalankan model pembelajaran yang dalam.
import warnings
warnings.filterwarnings('ignore')
import numpy as np
np.random.seed(123) # for reproducibility
from keras.models import Sequential
from keras.layers import Flatten, MaxPool2D, Conv2D, Dense, Reshape, Dropout
from keras.utils import np_utils
Using TensorFlow backend.
from keras.datasets import mnist
# Load pre-shuffled MNIST data into train and test sets
(X_train, y_train), (X_test, y_test) = mnist.load_data()
X_train = X_train.reshape(X_train.shape[0], 28, 28, 1)
X_test = X_test.reshape(X_test.shape[0], 28, 28, 1)
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')
X_train /= 255
X_test /= 255
Y_train = np_utils.to_categorical(y_train, 10)
Y_test = np_utils.to_categorical(y_test, 10)
Langkah ini dapat didefinisikan sebagai "Impor perpustakaan dan Modul" yang berarti semua perpustakaan dan modul diimpor sebagai langkah awal.
Step 2 - Pada langkah ini, kita akan mendefinisikan arsitektur model -
model = Sequential()
model.add(Conv2D(32, 3, 3, activation = 'relu', input_shape = (28,28,1)))
model.add(Conv2D(32, 3, 3, activation = 'relu'))
model.add(MaxPool2D(pool_size = (2,2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation = 'relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation = 'softmax'))
Step 3 - Mari kita sekarang mengkompilasi model yang ditentukan -
model.compile(loss = 'categorical_crossentropy', optimizer = 'adam', metrics = ['accuracy'])
Step 4 - Kami sekarang akan menyesuaikan model menggunakan data pelatihan -
model.fit(X_train, Y_train, batch_size = 32, epochs = 10, verbose = 1)
Output dari iterasi yang dibuat adalah sebagai berikut -
Epoch 1/10 60000/60000 [==============================] - 65s -
loss: 0.2124 -
acc: 0.9345
Epoch 2/10 60000/60000 [==============================] - 62s -
loss: 0.0893 -
acc: 0.9740
Epoch 3/10 60000/60000 [==============================] - 58s -
loss: 0.0665 -
acc: 0.9802
Epoch 4/10 60000/60000 [==============================] - 62s -
loss: 0.0571 -
acc: 0.9830
Epoch 5/10 60000/60000 [==============================] - 62s -
loss: 0.0474 -
acc: 0.9855
Epoch 6/10 60000/60000 [==============================] - 59s -
loss: 0.0416 -
acc: 0.9871
Epoch 7/10 60000/60000 [==============================] - 61s -
loss: 0.0380 -
acc: 0.9877
Epoch 8/10 60000/60000 [==============================] - 63s -
loss: 0.0333 -
acc: 0.9895
Epoch 9/10 60000/60000 [==============================] - 64s -
loss: 0.0325 -
acc: 0.9898
Epoch 10/10 60000/60000 [==============================] - 60s -
loss: 0.0284 -
acc: 0.9910