Caffe训练过程中的train,val,test的区别

valvalidation的简称。
training datasetvalidation dataset都是在训练的时候起作用。
而因为validation的数据集和training没有交集,所以这部分数据对最终训练出的模型没有贡献。
validation的主要作用是来验证是否过拟合、以及用来调节训练参数等。

比如训练0-10000次迭代过程中,trainvalidationloss都是不断降低,
但是从10000-20000过程中train loss不断降低,validationloss不降反升。
那么就证明继续训练下去,模型只是对training dataset这部分拟合的特别好,但是泛化能力很差。
所以与其选取20000次的结果,不如选择10000次的结果。
这个过程的名字叫做Early Stopvalidation数据在此过程中必不可少。

如果跑caffe自带的训练demo,你会用到train_val.prototxt,这里面的val其实就是validation
而网络输入的TEST层,其实就是validation,而不是test。你可以通过观察validationlosstrainloss定下你需要的模型。

但是为什么现在很多人都不用validation了呢?
我的理解是现在模型中防止过拟合的机制已经比较完善了,Dropout\BN等做的很好了。
而且很多时候大家都用原来的模型进行fine tune,也比从头开始更难过拟合。
所以大家一般都定一个训练迭代次数,直接取最后的模型来测试。

引用链接


图像识别训练样本集

ImageNet

ImageNet是一个计算机视觉系统识别项目,是目前世界上图像识别最大的数据库。是美国斯坦福的计算机科学家李飞飞模拟人类的识别系统建立的。能够从图片识别物体。目前已经包含14197122张图像,是已知的最大的图像数据库。每年的ImageNet大赛更是魂萦梦牵着国内外各个名校和大型IT公司以及网络巨头的心。图像如下图所示,需要注册ImageNet帐号才可以下载,下载链接为http://www.image-net.org/

继续阅读图像识别训练样本集

ubuntu 16.04执行letsencrypt的时候报告错误“ImportError: No module named datetime”

网站一直使用letsencrypt提供的HTTPS证书,这个证书的问题在于每隔三个月就必须更新一次,本次更新证书的时候,提示如下错误:

错误发生的原因在于letsencrypt自己构建了一个Python的虚拟环境来隔离,但是早期建立的虚拟环境中是缺少部分软件包的,而自身的BUG导致也没有重新更新虚拟环境,导致出现异常。

解决方法就是删除letsencrypt自己构建的Python的虚拟环境,然后继续执行脚本让他重建即可。

参考链接


语音识别商用开源代码与免费开放平台最全盘点分析

声学在线前几日盘点了语音识别业界相关的公司和技术,引起了众多朋友的关注。不少朋友都在咨询声学在线关于技术细节问题,因此,我们打算春节期间连续发布几篇深度文章,希望从语音识别领域的公司、技术、算法和专利的层面解读出语音识别的产生、发展、应用与瓶颈,以此提供给相关行业的朋友们作为参考。

目前朋友们最关心的就是当前有哪些语音识别开放平台,显然大家更担心被某个平台所绑架。为了促进语音识别的行业发展,我们更深入一步,不仅盘点当前的商业开放平台,也把这个领域的开源代码详细盘点一番,让更多的朋友了解这个行业。

语音识别领域的商用开源代码盘点

语音识别是一门交叉学科,其所涉及的领域包括:信号处理、模式识别、概率论和信息论、发声机理和听觉机理、人工智能等等。但是随着深度学习技术的发展,云端的语音识别更多的偏向于计算机技术。显然,从事计算机技术研究的人员更加众多,这也是语音识别的快速发展的基础,因而也形成了语音识别的开源代码要比开放平台更多的现象。

提到语音识别的开源代码,首先就要提到三个非常著名的开源平台,即Kaldi、CMU Sphinx和Julius。笔者大概按其重要性做了以下排名,Sphinx、HTK之类曾经很红火,但是确实也有点太老了。而Kaldi是Apache licence,完全可以商用,美国和中国很多公司都是直接修改Kaldi生成的语音识别引擎。另外,很多巨头公司内部研究部门也是在用Kaldi做研发,关于这些欢迎留言讨论。

继续阅读语音识别商用开源代码与免费开放平台最全盘点分析

Ubuntu 16.04.3/14.04.5系统上修改Docker镜像的存储路径

最近在Ubuntu 16.04.3/14.04.5系统上使用Docker结果由于默认的镜像存储路径在系统分区上,而系统分区又不足够大,导致整个系统都不能正常工作了。

因此我们需要把Docker的镜像存储目录移动到数据分区。

执行如下命令查询默认的存储路径

我们看到如下输出

比较简单的方法是通过软链接的方式来实现,具体命令如下:

参考链接