-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.py
23 lines (23 loc) · 1.44 KB
/
test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 导入著名的 tensorflow。在命令行下用 pip3 install tensorflow 安装
import tensorflow as tf
import numpy as np
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, Flatten, MaxPooling2D, Dense, BatchNormalization
# 从互联网上下载 mnist 数据集到本地 ~/.keras/datasets/mnist.npz
# x_train, y_train 分别是是60000个训练图像和答案
# x_test, y_test 分别是10000个测试图像和答案
# 训练的算是日常习题,测试的才是高考题。为了计算机防止作弊,计算机读书的时候是不能看到高考试卷的
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
# 下面两句做一个非常简单的预处理,就是先把 60000 x 28 x 28 的三维数据扩展成 60000 x 28 x 28 x 1的四维数据
# 这个对于数据没有任何变化,只是和Tensorflow要求的输入保持一致而已
# 然后再都除以 255,使得数据都落在0-1之间,仅仅提高些计算效率,不怎么影响结果的
x_train = x_train.astype(np.float32).reshape(*x_train.shape, 1)
x_train /= 255
# 翠花,上模型!
model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(10, activation='softmax'))
model.compile(optimizer='adam', metrics=['accuracy'], loss='sparse_categorical_crossentropy')
model.fit(x_train, y_train, epochs=10)