神经网络实现Mnist数据集简单分类

本文通过TensorFlow框架构建四层神经网络,对MNIST手写数字数据集进行分类。使用双曲正切激活函数,探讨了神经网络存活率(keep_prob)对过拟合的影响,通过对比实验展示了适当降低keep_prob能有效缓解过拟合,提高模型的泛化能力。

本文针对mnist手写数字集,搭建了四层简单的神经网络进行图片的分类,详细心得记录下来分享
我是采用的TensorFlow框架进行的训练

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data

首先要加载数据集

#加载数据集
mnist = input_data.read_data_sets('MNIST_data',one_hot=True)
#设定批次大小
batch_size = 200
#计算批次数量
n_batch = mnist.train.num_examples // batch_size    

加载数据集可以直接调用input_data下的read_data_sets方法,括号里的路径我是放在了当前目录下可以直接引用,当然也可以引用文件的绝对路径

x = tf.placeholder(tf.float32,[None,784])
y = tf.placeholder(tf.float32,[None,10])
keep_prob = tf.placeholder(tf.float32)

接着创建三个placeholder占位符,None表示可以是任意维度的张量,784是由每一个手写数字为28*28的像素伸展成一维向量的原因,10表示待分为的0-910个类别,keep_prop表示神经网络训练时设置神经元的存活率,如果为1,表示所有神经元参与工作,相当于不设置这个值,如果为0.6表示有60%的神经元参与工作。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值