热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

炼丹技巧(一)——MNIST数据上的炼丹(TensorFlow)之Shuffle_batch的探索

0.写作目的好记性不如烂笔头。记录在学习过程中遇到的问题,以及对问题的思考和解决方法,为后来人提供一些经验。1.网络的重要性虽然MNIST数据集相对比较简单,已经不能作为网络的评价

0. 写作目的

好记性不如烂笔头。记录在学习过程中遇到的问题,以及对问题的思考和解决方法,为后来人提供一些经验。

1. 网络的重要性

虽然MNIST数据集相对比较简单,已经不能作为网络的评价标准,因为许多网络在MNIST数据上的精度都超过了99%,但是网络也不是随意选择的。刚开始随即设计了一个网络,用于测试MNIST数据集,收敛较慢,因此修改了网络的结构。

原始网络

炼丹技巧(一)——MNIST数据上的炼丹(TensorFlow)之Shuffle_batch的探索

原始网络部分训练过程(由于训练时间有些长,就只训练了部分)

炼丹技巧(一)——MNIST数据上的炼丹(TensorFlow)之Shuffle_batch的探索

修改后的网络

炼丹技巧(一)——MNIST数据上的炼丹(TensorFlow)之Shuffle_batch的探索

修改后的网络的训练过程显示:

炼丹技巧(一)——MNIST数据上的炼丹(TensorFlow)之Shuffle_batch的探索

2.  Shuffle Batch 的探索

2.1 问题的来源

目前深度学习的框架,对于训练都有自己的一套完整流程。此处在验证如何读取较大数据时产生的一个问题,具体的读入数据方式可以参考我的博客——基于tensorflow的MNIST探索(基于图像版本的实现与探索)——如何读取较大数据集进行训练(一)。

2.2 问题的描述

在自己写的LoadDatas类中,存在一个public函数next_batch(self, batch_size=16)。在训练时,对于next_batch需要进行打乱,那么问题来了,如何进行打乱。博主认为有三种打乱的方式:

i) 对于每次的next_batch,将所有数据集打乱,然后取前batch_size个数据,然后抽取的样本放入总样本中,对应概率中的放回抽样

ii) 对于每次的next_batch,将所有数据集打乱,然后取前batch_size个数据,然后将抽取的样本不放入总样本中,对应概率中的不放回抽样

iii) 对于每次的next_batch,在每一个epoch时将顺序打乱,然后开始从头向后去batch_size个数据,即只打乱一次

2.3 针对问题进行的实验

网络架构选择修改后的网络(tf.train.MomentumOptimizer(learning_rate=0.001, momentum=0.9), batch_size=32)。

i)情况下的训练结果

炼丹技巧(一)——MNIST数据上的炼丹(TensorFlow)之Shuffle_batch的探索

ii) 情况下的训练结果

炼丹技巧(一)——MNIST数据上的炼丹(TensorFlow)之Shuffle_batch的探索

iii) 情况下的训练结果(由于时间关系,只训练了3个epoch)

炼丹技巧(一)——MNIST数据上的炼丹(TensorFlow)之Shuffle_batch的探索

2.4 实验的结果以及结论

从2.3中的训练结果图来看,采用i)情况,即有放回的batch_size结果比较好,而且iii)情况效果最差,原因可能是由于shuffle次数过少,导致数据的分布可能呈现一定的规律。当然也有可能实验不够充分,存在一定的随机性。

 

There may be some mistakes in this blog. So, any suggestions and comments are welcome!

 


推荐阅读
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • NVIDIA最新推出的Ampere架构标志着显卡技术的一次重大突破,不仅在性能上实现了显著提升,还在能效比方面进行了深度优化。该架构融合了创新设计与技术改进,为用户带来更加流畅的图形处理体验,同时降低了功耗,提升了计算效率。 ... [详细]
  • 本文提供了PyTorch框架中常用的预训练模型的下载链接及详细使用指南,涵盖ResNet、Inception、DenseNet、AlexNet、VGGNet等六大分类模型。每种模型的预训练参数均经过精心调优,适用于多种计算机视觉任务。文章不仅介绍了模型的下载方式,还详细说明了如何在实际项目中高效地加载和使用这些模型,为开发者提供全面的技术支持。 ... [详细]
  • 如何在Linux系统中部署TensorFlow的详细指南
    本文详细介绍了在Linux系统中部署TensorFlow的过程。作者基于北京大学曹建教授的MOOC课程进行学习,但由于课程内容较旧,环境配置方面遇到了不少挑战。经过多次尝试,最终成功解决了这些问题,并总结了一套详细的安装指南,帮助初学者快速上手TensorFlow。 ... [详细]
  • 利用TensorFlow.js在网页浏览器中实现高效的人脸识别JavaScript接口
    作者|VincentMühle编译|姗姗出品|人工智能头条(公众号ID:AI_Thinker)【导读】随着深度学习方法的应用,浏览器调用人脸识别技术已经得到了更广泛的应用与提升。在 ... [详细]
  • 如何在Microsoft Visio中调整连接线的粗细设置
    Microsoft Visio 是一款功能强大的流程图绘制工具,以其直观易用的界面受到广泛欢迎。用户不仅能够轻松创建流程图、思维导图和组织结构图,还可以进行团队在线协作,提高工作效率。本文将详细介绍如何在 Microsoft Visio 中调整连接线的粗细,以满足不同场景下的绘图需求。 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 在日常的项目开发中,测试环境和生产环境通常采用HTTP协议访问服务。然而,从浏览器的角度来看,这种访问方式会被标记为不安全。为了提升安全性,当前大多数生产环境已经转向了HTTPS协议。本文将详细介绍如何在Spring Boot应用中配置SSL证书,以实现HTTPS安全访问。通过这一过程,不仅可以增强数据传输的安全性,还能提高用户对系统的信任度。 ... [详细]
  • 当前物联网领域十大核心技术解析:涵盖哪些关键技术?
    经过近十年的技术革新,物联网已悄然渗透到日常生活中,对社会产生了深远影响。本文将详细解析当前物联网领域的十大核心关键技术,包括但不限于:1. 军事物联网技术,该技术通过先进的感知设备实现战场环境的实时监测与数据传输,提升作战效能和决策效率。其他关键技术还包括传感器网络、边缘计算、大数据分析等,这些技术共同推动了物联网的快速发展和广泛应用。 ... [详细]
  • 视觉图像的生成机制与英文术语解析
    近期,Google Brain、牛津大学和清华大学等多家研究机构相继发布了关于多层感知机(MLP)在视觉图像分类中的应用成果。这些研究深入探讨了MLP在视觉任务中的工作机制,并解析了相关技术术语,为理解视觉图像生成提供了新的视角和方法。 ... [详细]
  • 在之前的系列中,我们探讨了多个关于AI学习的基础知识点。本篇将重点深入解析NumPy这一关键库的核心功能及其广泛应用。即使您对之前提到的例子印象模糊,也无妨,我们将从头开始,详细分析其代码结构与实现逻辑,如`import numpy as np`等基础语句,帮助您全面理解NumPy在数据处理与科学计算中的重要作用。 ... [详细]
  • 2019年斯坦福大学CS224n课程笔记:深度学习在自然语言处理中的应用——Word2Vec与GloVe模型解析
    本文详细解析了2019年斯坦福大学CS224n课程中关于深度学习在自然语言处理(NLP)领域的应用,重点探讨了Word2Vec和GloVe两种词嵌入模型的原理与实现方法。通过具体案例分析,深入阐述了这两种模型在提升NLP任务性能方面的优势与应用场景。 ... [详细]
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 马志强探讨语音识别技术的最新进展与实际应用案例——RTC开发者聚会分享
    本文主要分享【人工智能语音识别技术的研究前沿】,技术文章【马志强:语音识别技术研究进展和应用落地分享丨RTCDevMeetup】为【声网】投稿,如果你遇到RTCDevMeetup相关问题,本文 ... [详细]
author-avatar
王意之
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有