我们在使用Keras训练深度学习模型时,往往不能一次将数据全部加载进内存中,那样会导致内存不足的问题。包括Keras在内的深度学习框架提供了动态数据加载的模式,也就是说,需要使用到哪些数据时,才会加载哪些数据,而Keras需要我们自己定义一个数据生成器,并通过多线程的机制调用我们传入的数据生成器,克服硬盘的IO速度瓶颈,以实现数据的动态加载。
-
通过同步和加锁解决多线程的线程安全问题
在计算机多线程编程中,线程之间的安全问题是很重要的,它不仅关系到所需要的功能能否正确地实现,还关系到算法运行结果的稳定性等问题。当在多线程编程时,或者使用到的软件框架是具有多线程运行功能的时候,一名训练有素且技术过硬的合格程序员是会考虑程序在多线程环境下运行时的线程安全问题的,尤其是在多个线程间存在共享的资源的情况下。博主最近在使用Keras框架做深度学习训练的时候,就遇到了这样的问题,多线程时,Python的普通生成器会遇到异常。本文主要介绍两种实现多线程之间线程安全的方案,同步和加锁。
-
记一次机械硬盘出现数据写入错误的真实案例
由于博主做的工作原因,最近获取到了一批语音数据集,全部为wav格式。数据拿到手,自然要将数据存储到自己的硬盘中。由于固态硬盘的容量有限,所以我就将其全部复制粘贴到机械结构的移动硬盘中,随后要进行的工作就是数据的处理。
-
C++ 常用STL库总结
我们在使用C++开发相关软件、实现一些算法的时候,不可避免的会使用到STL标准库,本文对这个标准库常用的几种数据结构和算法库进行了整理。代码样例来自HowieMen,感谢。
-
如何解决神经网络训练时loss不下降的问题
当我们训练一个神经网络模型的时候,我们经常会遇到这样的一个头疼的问题,那就是,神经网络模型的loss值不下降,以致我们无法训练,或者无法得到一个效果较好的模型。导致训练时loss不下降的原因有很多,而且,更普遍的来说,loss不下降一般分为三种,即:训练集上loss不下降,验证集上loss不下降,和测试集上loss不下降。这里,首先默认各位都能理解过拟合和欠拟合的概念,如果有不清楚的可以参考下面的一些文章。
-
GitHub宣布无限创建免费私有仓库
GitHub公司当地时间2019年1月7日,在其官方博客上发布文章,宣布私有仓库完全免费,每个仓库最多可以拥有3名协作者,此前只能通过学生认证来免费使用私有仓库。另外,在本次更新中,还有一项内容,对于企业来说,提供更简单、更统一的产品。
-
ASVRG:一个更好的加速近端SVRG
ASVRG是由西安电子科技大学一科研团队于近期新提出来的一个加速的近端随机变量减小的梯度方法,通过设计一个简单高效的动量加速技巧,只添加一个额外的变量和一个动量参数,使得其拥有了一个更简单且所需的训练迭代数更少的加速效果。并且,ASVRG被证明可以实现强凸和非强凸目标的最著名的oracle复杂性,此外,还可以扩展到小批量和非平滑设置。作者在论文中,还凭经验验证了理论结果,并表明ASVRG的性能与最先进的随机方法相当,有时甚至更好。
-
分布式机器学习:新书推荐和介绍
博主前一段时间在其他人的推荐下,入手了近期新出的一本名为《分布式机器学习:算法、理论与实践》的书。这是一本全面介绍分布式机器学习的现状,深入分析其中的核心技术问题,并讨论分布式机器学习领域未来的发展,不可多得的好书。这本书是基于微软亚洲研究院机器学习研究团队多年的研究成果和实践经验编写成的,可为研究生从事分布式机器学习方向研究提供参考文献,也可为人工智能从业者提供算法选择和系统设计的指导。
-
几个最新免费开源的中文语音数据集
工欲善其事必先利其器,做机器学习,我们需要有利器,才能完成工作,数据就是我们最重要的利器之一。做中文语音识别,我们需要有对应的中文语音数据集,以帮助我们完成和不断优化改进项目。我们可能很难拿到成千上万小时的语音数据集,但是这里有一些免费开源的语音数据集,大家一定不要错过。文末附数据集下载地址。我们也非常感谢相关单位和团体为国内的开源界做出的贡献。
共20份数据集,2022年5月6日持续更新~
-
神经网络: 正向传播与反向传播
在进行深层神经网络的计算过程中,现在主流框架(比如TensorFlow、Pytorch、MXNet等)提供了自动求导函数,极大地简化了深度学习模型训练算法的实现。但求导,又称反向传播(back-propagation),是Deep Learning中的一个重要概念,所以在这一篇文章中主要用数学和计算图两个方式来描述正向传播和反向传播。我们将使用一个带有L2范数正则化的单隐藏层感知机为例解释正向传播和反向传播。 (更多…)