TensorFlow实战笔记之(2):简单神经网络 实现手写数字识别

本文通过一个简单的单隐层前馈网络,使用TensorFlow进行手写数字识别。介绍了数据集MNIST,神经网络设计包括输入、隐藏和输出层,以及激活函数的选择。采用Adam优化算法,最终在Python 3.7.3和TensorFlow 1.13.1环境下实现约80%的识别准确率。
摘要由CSDN通过智能技术生成

本文使用一个最简单的单隐层前馈网络实现手写数字识别,借助TensorFlow可以很容易地实现。

一、数据集

数据集使用MNIST,由数万张28像素×28像素的手写数字组成,这些图片只包含灰度值信息。其中包含训练集55000个样本,测试集10000个样本,以及验证集5000个样本。MNIST数据集可以在THE MNIST DATABASE下载,也可以使用下面的代码直接在python中导入:

from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets('MNIST_data/', one_hot=True)

二、神经网络设计

将28×28的图片转换成向量,长度为784,因此神经网络的输入层有784个神经元;输出层显然需要10个神经元,因为输出的是0~9这10个数字;隐含层采用15个神经元。网络结构如下:

隐层的激活函数采用 sigmoid 函数,输出层的激活函数采用 softmax 函数。常用的激活函数及其选择方法见参考文献2和3。

损失函数为实际的label与概率归一化预测输出的交叉熵,具体采用 “tf.nn.softmax_cross_entropy_with_logits” 进行计算,其原理见参考文献4。</

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值