利用keras接口实现手写体识别


import tensorflow as tf
#定义数据集对象
mnist=tf.keras.datasets.mnist#28*28的图像
(x_train,y_train),(x_test,y_test)=mnist.load_data()#读取数据集
x_train,x_test=x_train/255.0,x_test/255.0#图像归一化

#定义模型
model=tf.keras.models.Sequential([
    #将输入拉成一维,全连接层只能接收一维数据
    tf.keras.layers.Flatten(input_shape=(28,28)),
    tf.keras.layers.Dense(128,activation='relu'),#第一个fc层(全连接层)
    tf.keras.layers.Dropout(0.2),#随机丢弃
    tf.keras.layers.Dense(10,activation='softmax')#输出层,激活函数
])

model.compile(optimizer='adam',
    # loss: 交叉熵
    # 如果目标是one-hot 编码,比如二分类[0,1] [1,0],损失函数用categorical_crossentropy
     # 如果目标是数字编码,比如二分类0/1, 损失函数用 sparse_categorical_crossentropy
            loss='sparse_categorical_crossentropy',#损失函数
            metrics=['accuracy']#准确率
)

model.fit(x_train,y_train,epochs=10)#训练
model.evaluate(x_test,y_test,verbose=2)

test_img=x_test[0:2]
result=model.predict(test_img)
for  r in result:
    print("预测结果:",tf.argmax(r).numpy())

#显示图像
import matplotlib.pyplot as plt
plt.figure("img1")
plt.imshow(test_img[0])
plt.show()

plt.figure("img2")
plt.imshow(test_img[1])
plt.show()








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值