import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
INPUT_NODE = 784
OUTPUT_NODE = 10
LAYER1_NODE = 500
BATCH_SIZE = 100
LEARNING_RATE_BASE = 0.8
LEARNING_RATE_DECAY = 0.99
REGULARIZATION_RATE = 0.0001
TRAINNING_STEPS = 30000
MOVING_AVERAGE_DECAY = 0.99
def inference(input_tensor, avg_class, weights1, biases1, weights2, biases2):
#当没有提供滑动平均类时,直接使用参数当前的取值
if avg_class == None:
layer1 = tf.nn.relu(tf.matmul(input_tensor, weights1) + biases1)
return tf.matmul(layer1, weights2) + biases2
else :
layer1 = tf.nn.relu(tf.matmul(input_tensor, avg_class.average(weights1)) + avg_class.average(biases1))
return tf.matmul(layer1, avg_class.average(weights2)) + avg_class.average(biases2)
def train(mnist):
x = tf.placeholder(tf.float32, [None, INPUT_NODE], name='x-input')
y_ = tf.placeholder(tf.float32, [None, OUTPUT_NODE], name='y-input')
weights1 = tf.Variable(tf.truncated_normal([INPUT_NODE, LAYER1_NODE], stddev=0.1))
biases1 = tf.Variable(tf.constant(0.1, shape=[LAYER1_NODE]))
weights2 = tf.Variable(tf.truncated_normal([LAYER1_NODE, OUTPUT_NODE], stddev=0.1))
biases2 = tf.Variable(tf.constant(0.1, shape=[OUTPUT_NODE]))
y = inference(x, None, weights1, biases1, weights2, biases2)
global_step = tf.Variable(0, trainable=False)
variables_averages = tf.train.ExponentialMovingAverage(MOVING_AVERAGE_DECAY, global_step)
variables_averages_op = variables_averages.apply(tf.trainable_variables())
average_y = inference(x, variables_averages, weights1, biases1, weights2, biases2)
#第一个参数是神经网络不包含softmax层的前向传播结果,第二个是训练数据的正确答案
cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y, labels=tf.argmax(y_, 1))
#计算当前batch中所有样例的交叉熵平均值
cross_entropy_mean = tf.reduce_mean(cross_entropy)
regularizer = tf.contrib.layers.l2_regularizer(REGULARIZATION_RATE)
regularization = regularizer(weights1) + regularizer(weights2)
#总损失等于交叉熵损失和正则化损失的和
loss = cross_entropy_mean + regularization
learning_rate = tf.train.exponential_decay(LEARNING_RATE_BASE, global_step, mnist.train.num_examples / BATCH_SIZE, LEARNING_RATE_DECAY)
train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss, global_step=global_step)
with tf.control_dependencies([train_step, variables_averages_op]):
train_op = tf.no_op(name='train')
correct_prediction = tf.equal(tf.argmax(average_y, 1), tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
with tf.Session() as sess:
tf.global_variables_initializer().run()
validate_feed = {x: mnist.validation.images, y_: mnist.validation.labels}
test_feed = {x: mnist.test.images, y_:mnist.test.labels}
for i in range(TRAINNING_STEPS):
if i % 1000 == 0:
validate_acc = sess.run(accuracy, feed_dict=validate_feed)
print("After %d training step(s), validation accuracy using averge model is %g" %(i, validate_acc))
xs, ys = mnist.train.next_batch(BATCH_SIZE)
sess.run(train_op, feed_dict={x:xs, y_:ys})
test_acc = sess.run(accuracy, feed_dict=test_feed)
print("After %d training step(s), test accuracy using averge model is %g" %(TRAINNING_STEPS, test_acc))
def main(argv=None):
mnist = input_data.read_data_sets("/tmp/data", one_hot=True)
train(mnist)
if __name__ == '__main__':
tf.app.run()
相关推荐
tensorflow实现MNIST手写数字识别演示
用tensorflow实现MNIST手写数字识别演示,分别参考这两篇文章: https://blog.youkuaiyun.com/dusin/article/details/108544965 https://blog.youkuaiyun.com/starlet_kiss/article/details/115550344 一.tensorflow实现MNIST手写数字识别演示 1.加加载数据 import tensorflow as tf #导入tensorflow库 mnist=tf.keras.datasets.mni
语言也是量子
“量子力学”可能是我们当下既熟悉而又陌生的一个概念,热衷于玩梗的我们聊天中总是脱口而出“遇事不决,量子力学”,新闻媒体上关于它的概念也不断出现,有去年获得突破的量子通信技术,有中央集中学...
【TensorFlow】T1:实现mnist手写数字识别
此处所需数据直接联网下载,故无需数据集。固定模板,直接调用即可。
TensorFlow入门之二:tensorflow手写数字识别
基础知识 本节内容可以跳过直接看后面的处理 MNIST数据集 MNIST数据集的官网是Yann LeCun’s website。可以使用下面的python代码自动下载数据集。 #已经下载input_data.py #import input_data #没有下载input_data.py from tensorflow.examples.tutorials.mnist import input_d...
TensorFlow入门 |(三)MNIST手写数字识别
(一)MNIST手写体数据集介绍 MNIST手写数字识别算是计算机视觉入门的一个项目。也是传说中机器学习入门的“Hello World”。小编写这篇文章的时候也算是一个新手,分享下自己的学习成果,和大家一起学习进步。 MNIST数据集包含各种(0~9)手写数字: 数据集官网:http://yann.lecun.com/exdb/mnist/ ,数据集包含60000个训练样本和10000个测试样本。...
基于Tensorflow CNN网络MNIST数据集手写数字识别
一、项目背景与意义手写数字识别是计算机视觉和机器学习领域的一个经典问题。MNIST数据集包含了大量手写数字的图片和对应的标签,是初学者和研究者们常用的数据集之一。通过使用卷积神经网络(CNN)对MNIST数据集进行训练和测试,我们可以构建一个能够自动识别和分类手写数字的系统。这不仅能够帮助我们理解卷积神经网络的工作原理,还能为更复杂的图像识别任务提供基础。二、项目目标构建一个基于TensorFlow的卷积神经网络模型。使用MNIST数据集对模型进行训练和测试。
android opengl camera2 实现相机的实时预览 以及 点坐标samplerExternalOES的纹理坐标
相机一直是我的心病,花了几周的时间学习了下opengl se。并利用opengl来实现android平台下的实时预览。,真的硬着头皮啃 网上的大神的代码,没有什么注解,确实有点苦逼,闲话不说了现在做好笔记 ,方便回顾。 相机的预览 首先回到相机的预览,我们知道camera2,利用surfacetexture 可以在非预览情况下获得相机的数据,,然后利用与surfacetexture同一个textu...
基于TensorFlow实现MNIST手写体数字识别
1. 背景描述 1.1 数据源介绍 数据源说明:60000训练集 + 10000测试集 图中的每个数字都是[28,28]的二阶数组表示,每个位点上的值是颜色的深度[0-255] ~ [白色-黑色]。根据规范化处理,我们后面会将灰度值缩放到[0,1]。 使用程序获取数据 from keras.datasets import mnist # 注意keras的默认路径是~/.keras/dataset...
基于tensorflow的MNIST数字识别
一、MNIST数据集介绍 MNIST是一个非常有名的手写体数字识别数据集,在很多资料中,这个数据集都会作为深度学习的入门样例。下面大致介绍这个数据集的基本情况,并介绍tensorflow对MNIST数据集做的封装。tensorflow的封装让使用MNIST数据集变得更加方便。MNIST数据集是NIST数据集的一个子集,它包含了60000张图片作为训练数据,10000张图片作为测试数据。在MNIS...
基于tensorflow lite的自定义手写识别网络App
App的安装包,里面包含两个例子,一个是Google自带的图像识别的例子,一个自定义手写识别神经网络的例子。
电阻、电容、电感的实际等效模型
1、电阻的等效模型 2、电容的寄生参数 3、电容的等效参数 4、理想铝电解电容与实际铝电解电容的区别 5、电感的等效模型
使用Tensorflow和MNIST识别自己手写的数字
最近在学习神经网络相关的东西,发现有很多资料是Tensorflow教程上的内容,但是教程很多只是一个验证官方程序的过程。如何将官方程序变成自己可以利用的程序,网上似乎资料比较少,所以我就来介绍一下如何使用Tensorflow和MNIST搭建自己的手写识别算法,识别自己写的数字。
智驾域控制器硬件架构:从接口丛林到算力核心的工程解码
本文深入解析了智驾域控制器硬件架构的设计挑战与工程实践。面对复杂的接口丛林,文章详细探讨了如何高效融合摄像头、雷达等多源传感器数据,并构建以多SOC为核心的强大算力平台。同时,文章强调了电源、时钟、散热等最小系统及车规级可靠性设计的关键作用,为工程师提供了从接口驯服到算力核心协同的完整硬件解码指南。
Tensorflow 实现 MNIST 手写数字识别
本节笔记作为 Tensorflow 的 Hello World,用 MNIST 手写数字识别来探索 Tensorflow。笔记的内容来自 Tensorflow 中文社区和黄文坚的《Tensorflow 实战》,只作为自己复习总结。
告别Overleaf!本地LaTeX环境配置:VSCode+TeXLive完全指南(Windows/Mac双平台)
本文详细介绍了如何在Windows和Mac平台上配置本地LaTeX环境,使用VSCode和TeXLive打造高效的专业写作工作流。从TeXLive安装到VSCode插件配置,再到高级技巧与性能优化,帮助用户摆脱Overleaf限制,实现更快速、更私密的学术写作体验。
手把手调试Android 14 ShellTransitions:用Log追踪ActiveTransition与Handler匹配过程
本文详细介绍了在Android 14中调试ShellTransitions机制的方法,重点通过Log追踪ActiveTransition与Handler的匹配过程。文章提供了关键日志点植入策略、Handler匹配机制解析及实战调试案例,帮助开发者解决窗口转场动画中的卡顿和错乱问题,提升系统动画性能。
Tensorflow实现mnist手写数字识别
一、Tensorflow实现mnist手写数字识别 代码里会有部分注释,仅供个人后续复习!ps:我也是小白,有兴趣大家可以一起交流! import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data import time """ mnist数据集有60000张图片,10000张图片作...
TensorFlow2深度学习实战(十四):目标检测算法 YOLOv4 解析
最易上手的【计算机视觉】小白教程!
TensorFlow | 实现mnist手写数字识别
这段代码构建了一个典型的卷积神经网络,适合处理图像数据,通过卷积层和池化层提取特征,最终通过全连接层进行分类。使用ReLU激活函数可以加快训练速度,同时保持较好的泛化能力。通过调用,设置了模型训练时的基本参数。这些配置将直接影响模型的训练效果和收敛速度。选择合适的优化器、损失函数和评估指标是成功训练深度学习模型的重要步骤。确保这些配置适合具体任务的特点,能够提升模型的性能通过调用方法,开始了模型的训练过程。
【YOLOv11多模态融合改进】(可见光+红外)涉及像素级融合、特征级融合(中期、中后期、后期)、决策级融合的完整配置步骤以及二次改进方案
在网络输入阶段将多模态数据直接合并,形成统一的特征表示。
Robot Framework 7.0 报告解析
本文深入解析 Robot Framework 7.0 新增的 JSON 报告功能,手把手教你如何从 output.xml 转换为结构清晰的 output.json,并通过 Python 脚本提取关键测试指标。文章附完整示例、命令、解析脚本,支持导出为 CSV 和 Markdown,方便接入可视化看板、群通知和 CI 流程。适用于测试自动化、质量平台建设和回归趋势分析场景。
Tensorflow实现MNIST手写数字识别
之前我们讲了神经网络的起源、单层神经网络、多层神经网络的搭建过程、搭建时要注意到的具体问题、以及解决这些问题的具体方法。本文将通过一个经典的案例:MNIST手写数字识别,以代码的形式来为大家梳理一遍神经网络的整个过程。 一 、MNIST手写数字数据集介绍 MNIST手写数字数据集来源于是美国国家标准与技术研究所,是著名的公开数据集之一,通常这个数据集都会被作为深度学习的入门案例。数据集中的数字...
华为MetaERP国资委语境下的 DRP(全域数字化资源管理平台/Digitalized Resource-management Platform)与传统 ERP(以 SAP、Oracle 为代表)的
【摘要】国资委推动的DRP(全域数字化资源管理平台)正在重构央国企数智化转型路径,其本质是通过"ERP管交易+DRP管管控"的双层架构实现升维替代。与传统ERP相比,DRP具有三大突破:采用国产分布式数据库实现全级次穿透监管、构建数据中台打破信息孤岛、以实时分析替代事后报表。当前政策明确2026-2030年分阶段建设目标,这将重塑产业格局——倒逼传统ERP厂商转型,为云原生/AI/信创企业创造新机遇。需注意DRP并非简单替代ERP,而是通过治理模式变革实现"交易系统做薄、管控中
mnist手写数字识别python_tensorflow实现MNIST手写数字识别
MNIST数据集是由0-9,10个手写数字组成。训练图像有60000张,测试图像有10000张。1、在tensorflow中可以使用python下载数据集,调用download.py。代码如下:from tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets("MNIST_data...
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
mnist手写数字识别python_基于Tensorflow的MNIST手写数字识别分类
本文实例为大家分享了基于Tensorflow的MNIST手写数字识别分类的具体实现代码,供大家参考,具体内容如下代码如下:import tensorflow as tfimport numpy as npfrom tensorflow.examples.tutorials.mnist import input_datafrom tensorflow.contrib.tensorboard.plug...
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
3494



被折叠的 条评论
为什么被折叠?



