手写数字识别----全连接网络(DNN)

手写数字识别

数据集和部分代码来自:https://aistudio.baidu.com/aistudio/projectDetail/101813

我们直接进入我们的实现部分;
我们先来本次任务的流程,大部分神经网络也是这个流程:
在这里插入图片描述
接下来我们直接进入数据的处理部分:

#导入需要的包
import numpy as np
import paddle as paddle
import paddle.fluid as fluid
from PIL import Image
import matplotlib.pyplot as plt
import os   #导入必要的包 用飞桨网络作为框架
BUF_SIZE=512
BATCH_SIZE=128
#用于训练的数据提供器,每次从缓存中随机读取批次大小的数据
train_reader = paddle.batch(
    paddle.reader.shuffle(paddle.dataset.mnist.train(),
                          buf_size=BUF_SIZE),
    batch_size=BATCH_SIZE)
#用于训练的数据提供器,每次从缓存中随机读取批次大小的数据
test_reader = paddle.batch(
    paddle.reader.shuffle(paddle.dataset.mnist.test(),
                          buf_size=BUF_SIZE),
    batch_size=BATCH_SIZE)
#用于打印,查看mnist数据
train_data=paddle.dataset.mnist.train();
sampledata=next(train_data()) #next用法:返回迭代器的下一个项目
print(sampledata)

train_reader和test_reader
paddle.dataset.mnist.train()和test()分别用于获取mnist训练集和测试集
paddle.reader.shuffle()表示每次缓存BUF_SIZE个数据项,并进行打乱
paddle.batch()表示每BATCH_SIZE组成一个batch

接下来就到了配置网络的部分,本次网络使用的是DNN全连接网络,把每一个神经元都连接在一起,全部连接,所以命名为:全连接网络
在这里插入图片描述
在这里插入图片描述

# 定义多层感知器 
def multilayer_perceptron(input): 
    # 第一个全连接层,激活函数为ReLU 
    hidden1 = fluid.layers.fc(input=input, size=100, act='relu') 
    # 第二个全连接层,激活函数为ReLU 
    hidden2 = fluid.layers.fc(input=hidden1, size=100, act='relu') 
    # 以softmax为激活函数的全连接输出层,输出层的大小必须为数字的个数10 
    prediction = fluid.layers.fc(input=hidden2, size=10, act='softmax') 
    return prediction 

以上我们就定义完了一个简单的全连接网络,两个隐层都是100层,最后全连接输出层为10层,聪明的朋友应该已经想到为什么是十层了,手写数字识别,识别的数字是0-9,固然为10层。
激活函数:<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值