我是靠谱客的博主 缓慢冷风,最近开发中收集的这篇文章主要介绍深度学习入门--手写数字识别(Keras),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#导入所需要的包
import keras
from keras.datasets import mnist
from keras.layers import Dense 
from keras.models import Sequential
from keras.optimizers import SGD

#下载数据集
(x_train,y_train),(x_test,y_test) = mnist.load_data()

#查看数据的size
print(x_train.shape, y_train.shape)
print(x_test.shape, y_test.shape)

此时输出的结果为:

#随机查看一下数据内容
import matplotlib.pyplot as plt
im = plt.imshow(x_train[0],cmap="gray")
plt.show()

输出为:

#向量化图片,将28*28转化成1*784
x_train = x_train.reshape(60000,784)
x_test = x_test.reshape(10000,784)


#数据归一化
x_train = x_train/255
x_test = x_test/255


#将标签值y进行独热编码 keras.utils.to_categorical()
y_train = keras.utils.to_categorical(y_train,10)
y_test = keras.utils.to_categorical(y_test,10)

#开始构建模型
model = Sequential()
model.add(Dense(512, activation='relu', input_shape=(784,)))
model.add(Dense(256, activation='relu'))
model.add(Dense(10, activation='softmax'))


#查看模型情况
model.summary()

输出的模型概况为:

#编译神经网络
model.compile(optimizer=SGD(), loss='categorical_crossentropy', metrics=['accuracy'])

#训练网络
model.fit(x_train, y_train, batch_size=64, epochs=10, validation_data=(x_test, y_test))

执行结果:

 

#查看最终结果
score = model.evaluate(x_test, y_test)
print("LOSS:",score[0])
print("ACCU:",score[1])

输出结果为:

 

完整版程序:

#导入所需要的包
import keras
from keras.datasets import mnist
from keras.layers import Dense 
from keras.models import Sequential
from keras.optimizers import SGD

#下载数据集
(x_train,y_train),(x_test,y_test) = mnist.load_data()

#查看数据的size
#此部分可省略
print(x_train.shape, y_train.shape)
print(x_test.shape, y_test.shape)


#随机查看一下图片
#此部分可省略
import matplotlib.pyplot as plt
im = plt.imshow(x_train[0],cmap="gray")
plt.show()


#向量化图片,将28*28转化成1*784
x_train = x_train.reshape(60000,784)
x_test = x_test.reshape(10000,784)


#数据归一化
x_train = x_train/255
x_test = x_test/255


#将标签值y进行独热编码 keras.utils.to_categorical()
y_train = keras.utils.to_categorical(y_train,10)
y_test = keras.utils.to_categorical(y_test,10)

#开始构建模型
model = Sequential()
model.add(Dense(512, activation='relu', input_shape=(784,)))
model.add(Dense(256, activation='relu'))
model.add(Dense(10, activation='softmax'))


#查看模型情况
#此部分可省略
model.summary()


#编译神经网络
model.compile(optimizer=SGD(), loss='categorical_crossentropy', metrics=['accuracy'])


#训练网络
model.fit(x_train, y_train, batch_size=64, epochs=10, validation_data=(x_test, y_test))

#查看结果
score = model.evaluate(x_test, y_test)
print("LOSS:",score[0])
print("ACCU:",score[1])

来源:慕课网学习笔记

最后

以上就是缓慢冷风为你收集整理的深度学习入门--手写数字识别(Keras)的全部内容,希望文章能够帮你解决深度学习入门--手写数字识别(Keras)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部