DL 6
DL 6
df_train = pd.read_csv('train.csv')
X_train = df_train.iloc[:, 1:]
Y_train = df_train.iloc[:, 0]
X_train.head()
pixel0 pixel1 pixel2 pixel3 pixel4 pixel5 pixel6 pixel7 pixel8 pixel9 ... pixel774 pi
0 0 0 0 0 0 0 0 0 0 0 ... 0.0
1 0 0 0 0 0 0 0 0 0 0 ... 0.0
2 0 0 0 0 0 0 0 0 0 0 ... 0.0
3 0 0 0 0 0 0 0 0 0 0 ... 0.0
4 0 0 0 0 0 0 0 0 0 0 ... 0.0
Y_train.head()
0 1
1 0
2 1
3 4
4 0
Name: label, dtype: int64
import tensorflow as tf
from tensorflow.keras import layers, models
from tensorflow.keras.datasets import mnist
from tensorflow.keras.utils import to_categorical
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels)
train_labels
model = models.Sequential([
layers.Conv2D(6, (5, 5), activation='relu', input_shape=(28, 28, 1)),
layers.MaxPooling2D((2, 2)),
layers.Conv2D(16, (5, 5), activation='relu'),
layers.MaxPooling2D((2, 2)),
layers.Flatten(),
layers.Dense(120, activation='relu'),
layers.Dense(84, activation='relu'),
layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
Epoch 1/5
750/750 [==============================] - 22s 28ms/step - loss: 0.2750 - accuracy: 0.9172 - val_lo
Epoch 2/5
750/750 [==============================] - 21s 28ms/step - loss: 0.0771 - accuracy: 0.9769 - val_lo
Epoch 3/5
750/750 [==============================] - 22s 29ms/step - loss: 0.0561 - accuracy: 0.9820 - val_lo
Epoch 4/5
750/750 [==============================] - 21s 28ms/step - loss: 0.0440 - accuracy: 0.9860 - val_lo
Epoch 5/5
750/750 [==============================] - 22s 29ms/step - loss: 0.0358 - accuracy: 0.9885 - val_lo
313/313 [==============================] - 2s 6ms/step - loss: 0.0364 - accuracy: 0.9878
Test accuracy: 0.9878000020980835