DNN:基于Keras对手写数字的识别

news/2024/11/12 12:22:40

DNN:基于Keras对手写数字的识别

  • Keras和TensorFlow的安装及常见故障处理
    • Keras和TensorFlow的安装
    • 常见故障处理
  • 编程实现
  • 运行结果

Keras和TensorFlow的安装及常见故障处理

Keras和TensorFlow的安装

1、在anaconda prompt中输入conda create -n keras创建keras环境
2、输入conda activate keras激活创建的环境
3、输入conda install tensorflow 安装TensorFlow,询问处输入y即可安装
4、创建的keras环境中若无Spyder,需要在keras环境中输入 conda install spyder进行安装

常见故障处理

1、若conda install 中出现PackagesNotFoundError,可采用pip install 进行替代,不过pip不支持断点续传,如果网络不好,可能出现下载到一半突然中断的现象,如下图所示:

在这里插入图片描述找个好点的网络即可解决,也可以使用国内的豆瓣镜像源进行下载。

2、若在Spyder中运行程序时出现Keras need TensorFlow 2.2 or higher,但是明明已经下了2.2或更高的版本,说明可能电脑里装了两个或以上TensorFlow,可以将所有的TensorFlow都卸载干净再装需要的版本。

3、若在Spyder中运行程序时出现AttributeError: module ‘tensorflow.python.framework.ops’ has no attribute ‘_TensorLike’,是Keras和TensorFlow的版本不匹配,可参照下面的链接选择Keras、TensorFlow和Python三者均匹配的版本。
List of Avaliable Environments

编程实现

导入需要的库和数据。

from keras.datasets import mnist
from keras import models
from keras.layers import Dense
from keras.utils import np_utils

(X_train,y_train),(X_test,y_test) = mnist.load_data()

由于每一个手写数字是一个二维的矩阵,在建立神经网络之前需要将其转化为一维的向量,并将其归一化。

num_pix = X_train.shape[1] * X_train.shape[2]
X_train = X_train.reshape(X_train.shape[0], num_pix)
X_train = X_train /255

X_test = X_test.reshape(X_test.shape[0], num_pix)
X_test = X_test /255

将训练目标集和测试目标集离散化。

y_train = np_utils.to_categorical(y_train)
y_test = np_utils.to_categorical(y_test)

搭建三层神经网络进行预测,共进行20轮计算。

net = models.Sequential()
net.add(Dense(input_dim = num_pix, output_dim = 500, activation = 'relu'))
net.add(Dense(output_dim = 500, activation = 'relu'))
net.add(Dense(output_dim = 10, activation = 'softmax'))

net.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics = ['accuracy'])

net.fit(X_train, y_train, batch_size = 16, epochs = 20)

输出预测的损失和准确度。

score = net.evaluate(X_test, y_test, )
print('loss is:\t ', score[0])
print('accuracy is:\t ', score[1])

运行结果

在这里插入图片描述


http://www.niftyadmin.cn/n/1934965.html

相关文章

作为大众熟知的电商应用,京东如何构建风控体系架构?

作为大众熟知的电商应用,京东是如何构建坚挺的风控体系架构?如何优化数据的计算和存储?如何基于设备做智能识别的?本文由京东技术专家王美青对以上问题进行解读。 风控技术体系介绍 风控技术架构 上图是风控技术架构图&#xff0c…

jquery作业

1. 通过jquery动态的创建一个表格,随机生成(id自增,name随机2-3个中文汉字(10个姓,20个名字),age随机100以内整数)大于50小于100行的数据(用户对象:id,name,age&#xff…

二次冲刺站立会议八

今天我们找到了音乐素材(徐梦圆 - christmas),并添加在了我们的游戏中。我添加音乐。 代码如下 SoundPlayer s new SoundPlayer("C:\Users\lenovo\Desktop\趣拼图\音乐\徐梦圆 - christmas.wav"); 转载于:https://www.cnblogs.com…

消息队列之kafka(基础介绍)

一、关于JMS 1. JMS 的基础 JMS是Java提供的一套技术规范。即Java消息服务(Java message service)。应用程序接口。是一个Java平台中关于面向消息中间件的API。用于在两个应用程序之间或者分布式系统中发送消息,进行异步通信。Java消息服务是…

如何快速打造一款高清又极速的短视频APP?

2019独角兽企业重金招聘Python工程师标准>>> 整个短视频的市场规模一直在增长,网络数据显示2018年已经突破100亿大关,在2019年预测将超过200亿。纵观行业,在生活资讯、美食、搞笑、游戏、美妆等领域,短视频流量巨大但竞…

Java中监控文件变化的多种方案

一、使用Apache.Common.io库 package yungoal.huafeng.utils.files;import com.sun.deploy.util.SyncFileAccess; import org.apache.commons.io.monitor.FileAlterationListenerAdaptor; import org.apache.commons.io.monitor.FileAlterationMonitor; import org.apache.comm…

安卓凹凸自定义View

这个是产品的效果图然后实际运行的结果那到这个需求感觉还是很简单的,让美术出了一张图,然后我把这个背景图做成了.9图,然而,并没有什么卵用,最大的原因就是background被拉伸、挤压,高度在不同的机型显示的…

网站一直优化不动,是不是被惩罚?

SEO是一个千变万化的工作,你的每一个优化策略,都决定网站不同的走向,在很长一段时期中,我们通常会遇到各种问题,比如:网站一直优化不动。 长期停留在某个阶段,这让SEO人员,显得无所…