我是靠谱客的博主 拼搏战斗机,最近开发中收集的这篇文章主要介绍tensorflow2.0 手写数字识别demotensorflow2.0 手写数字识别demo,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
tensorflow2.0 手写数字识别demo
tensorflow2.0 使用keras高级API,可以摆脱繁琐的tf.nn了。
tf.keras 用法和 keras基本相同。
通过手写数字识别CNN demo,熟悉tf.keras的基本用法。
demo 代码
#%%
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 手写数字识别demotensorflow2.0 手写数字识别demo所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复