TensorFlow - Keras
Keras, TensorFlow çerçevesi üzerinde çalışan kompakt, öğrenmesi kolay, yüksek seviyeli Python kitaplığıdır. Şekiller ve matematiksel ayrıntılar kavramlarını koruyan sinir ağları için katmanlar oluşturmak gibi derin öğrenme tekniklerini anlamaya odaklanır. Freamework oluşturma aşağıdaki iki türden olabilir -
- Sıralı API
- Fonksiyonel API
Keras'ta derin öğrenme modeli oluşturmak için aşağıdaki sekiz adımı göz önünde bulundurun -
- Verilerin yüklenmesi
- Yüklenen verileri ön işleme
- Modelin tanımı
- Modeli derlemek
- Belirtilen modeli takın
- Değerlendirin
- Gerekli tahminleri yapın
- Modeli kaydedin
Jupyter Not Defterini, aşağıda gösterildiği gibi çıktının yürütülmesi ve görüntülenmesi için kullanacağız -
Step 1 - Derin öğrenme modelini yürütmek için önce verilerin yüklenmesi ve yüklenen verilerin ön işleme tabi tutulması gerçekleştirilir.
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)
Bu adım "Kitaplıkları ve Modülleri İçe Aktar" olarak tanımlanabilir, bu da tüm kitaplıkların ve modüllerin ilk adım olarak içe aktarıldığı anlamına gelir.
Step 2 - Bu adımda model mimarisini tanımlayacağız -
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 - Şimdi belirtilen modeli derleyelim -
model.compile(loss = 'categorical_crossentropy', optimizer = 'adam', metrics = ['accuracy'])
Step 4 - Şimdi modeli eğitim verilerini kullanarak uyduracağız -
model.fit(X_train, Y_train, batch_size = 32, epochs = 10, verbose = 1)
Oluşturulan yinelemelerin çıktısı aşağıdaki gibidir -
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