TensorFlow - Keras
Keras nhỏ gọn, dễ học, thư viện Python cấp cao chạy trên khung công tác TensorFlow. Nó được thực hiện tập trung vào việc hiểu các kỹ thuật học sâu, chẳng hạn như tạo các lớp cho mạng nơ-ron duy trì các khái niệm về hình dạng và chi tiết toán học. Việc tạo tác phẩm tự do có thể thuộc hai loại sau:
- API tuần tự
- API chức năng
Hãy xem xét tám bước sau để tạo mô hình học sâu trong Keras:
- Đang tải dữ liệu
- Xử lý trước dữ liệu đã tải
- Định nghĩa mô hình
- Biên dịch mô hình
- Phù hợp với mô hình được chỉ định
- Đánh giá nó
- Đưa ra các dự đoán bắt buộc
- Lưu mô hình
Chúng tôi sẽ sử dụng Máy tính xách tay Jupyter để thực thi và hiển thị đầu ra như hình dưới đây -
Step 1 - Việc tải dữ liệu và xử lý trước dữ liệu đã tải được thực hiện đầu tiên để thực thi mô hình học sâu.
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)
Bước này có thể được định nghĩa là “Nhập thư viện và mô-đun” có nghĩa là tất cả các thư viện và mô-đun được nhập như một bước ban đầu.
Step 2 - Trong bước này, chúng ta sẽ xác định kiến trúc mô hình -
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 - Bây giờ chúng ta hãy biên dịch mô hình được chỉ định -
model.compile(loss = 'categorical_crossentropy', optimizer = 'adam', metrics = ['accuracy'])
Step 4 - Bây giờ chúng tôi sẽ phù hợp với mô hình bằng cách sử dụng dữ liệu đào tạo -
model.fit(X_train, Y_train, batch_size = 32, epochs = 10, verbose = 1)
Đầu ra của các lần lặp được tạo như sau:
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