我是靠谱客的博主 拼搏战斗机,这篇文章主要介绍tensorflow2.0 手写数字识别demotensorflow2.0 手写数字识别demo,现在分享给大家,希望可以做个参考。

tensorflow2.0 手写数字识别demo

tensorflow2.0 使用keras高级API,可以摆脱繁琐的tf.nn了。

tf.keras 用法和 keras基本相同。

通过手写数字识别CNN demo,熟悉tf.keras的基本用法。

demo 代码

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#%% import tensorflow as tf import time #%% #自动加载mnist dataset mnist = tf.keras.datasets.mnist #%% #training set 60000 samples, test set 10000 samples #labels格式0-9数字 (x_train, y_train), (x_test, y_test) = mnist.load_data() #%% #normalization x_train, x_test = x_train/255.0, x_test/255.0 #%% print(y_train[0:20]) #%% #building model model = tf.keras.models.Sequential() model.add(tf.keras.layers.Reshape((28, 28, 1))) # 1 是 channels,model.fit()需要channels model.add(tf.keras.layers.Conv2D(64, (5,5), activation=tf.keras.activations.relu)) model.add(tf.keras.layers.MaxPool2D(2,2)) model.add(tf.keras.layers.Conv2D(128, (3,3),activation=tf.keras.activations.relu)) model.add(tf.keras.layers.AveragePooling2D((2,2))) model.add(tf.keras.layers.Flatten()) model.add(tf.keras.layers.Dense(512, activation=tf.keras.activations.relu)) model.add(tf.keras.layers.Dense(10, activation=tf.keras.activations.softmax)) model.compile( optimizer='SGD', loss='sparse_categorical_crossentropy', #如果想使用categorical_crossentropy, 需要把labels转成onehot格式 metrics=['accuracy'] ) #%% #training now = time.time() model.fit(x_train, y_train, epochs=20) #跑20次就结束吧 #testing model.evaluate(x_test, y_test) print(time.time()-now)

运行结果

训练集 准确率99.00%
测试集 准确率99.03%
使用2080 maxq 训练的,每个epoch耗时5s左右。
没有过拟合,epochs设置更大或许还能继续提高准确率,不过只是为了体验一下tensorflow2.0,无所谓了。

最后

以上就是拼搏战斗机最近收集整理的关于tensorflow2.0 手写数字识别demotensorflow2.0 手写数字识别demo的全部内容,更多相关tensorflow2.0内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部