用TensorFlow实现MNIST

本文介绍了如何使用TensorFlow构建一个包含输入层、隐藏层和输出层的三层神经网络来识别MNIST数据集的手写数字。文章详细解释了相关参数设置,如学习率、批次大小等,并提供了完整的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前两天,我们已经知道了TensorFlow的安装,以及基础语法,今天我们用这些来实现一个MNIST 也

这里,我们用TensorFlow实现一个3层,即输入层、隐藏层、输出层的神经网络。

引入相关模块 # tensorflow 自带mnist模块from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets(".", one_hot=True, reshape=False)import tensorflow as tf

这里有个one_hot=True,one_hot表示独热编码,可以看下面的图片理解意思:

  one hot encoding

参数设置 learning_rate = 0.001training_epochs = 20batch_size = 128display_step = 1# 设置日志显示次数用的n_input = 784# 输入的大小n_classes = 10# 最后分成10个类别

learning rate是学习的速度,每次更新参数时的步长(速度),太小会造成学习速度太慢,太大会造成无法拟合的结果。

一个 epoch(代)是指整个数据集正向反向训练一次。

batch size 是一次拿多少数据去训练,具体可以参考What is a batch in TensorFlow? - Stack Overflow。

这里有个奇怪的地方,tf.reshaple()里面有个参数是-1,这里官方文档特别给出了解释:

定义模型

Session

完整代码可以在这里下载。

训练结果

 

▍需要帮助?联系我们

 

转载于:https://www.cnblogs.com/tecdat/p/9518502.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值