谷歌# -*- coding: utf-8 -*- """ Created on Wed May 20 10:20:00 2020 @author: 1052668570 """ import numpy as np import matplotlib.pyplot as plt import keras.backend as K from keras.models import Sequential from keras.layers import Dense, Activation from keras.optimizers import Adam from keras.utils.np_utils import to_categorical from keras.callbacks import EarlyStopping from sklearn.metrics import accuracy_score, confusion_matrix, classification_report from sklearn.preprocessing import StandardScaler from sklearn.model_selection import train_test_split from keras.datasets import mnist (X_train, y_train), (X_test, y_test) = mnist.load_data() # Checking data X_train.shape # (60000, 28, 28) y_train.shape # (60000,) X_test.shape # (10000, 28, 28) y_test.shape # (10000,) # Plotting some examples for i in range(9): plt.subplot(3, 3, i+1) plt.imshow(X_train[i], cmap='gray') plt.axis('off') # Reshaping data X_train = X_train.reshape(-1, 28*28) X_test = X_test.reshape(-1, 28*28) # Scaling data X_train = X_train/255 X_test = X_test/255 # One hot encoding y_train_cat = to_categorical(y_train, 10) y_test_cat = to_categorical(y_test, 10) # ============================================================================= # Building the model # ============================================================================= K.clear_session() model = Sequential() model.add(Dense(512, input_dim=28*28, activation='relu')) model.add(Dense(256, activation='relu')) model.add(Dense(128, activation='relu')) model.add(Dense(32, activation='relu')) model.add(Dense(10, activation='softmax')) model.compile(Adam(lr=0.01), loss='categorical_crossentropy', metrics=['accuracy']) model.summary() h = model.fit(X_train, y_train_cat, batch_size=128, epochs=10, verbose=2, validation_split=0.3) plt.plot(h.history['accuracy']) plt.plot(h.history['val_accuracy']) plt.legend(['Training', 'Validation']) plt.title('Accuracy') plt.xlabel('Epochs') test_pred = model.predict_classes(X_test) test_pred print(accuracy_score(y_test, test_pred)) print(confusion_matrix(y_test, test_pred)) print(classification_report(y_test, test_pred))

Laila Kearney