Training a deep autoencoder or a classifier on MNIST digits_之调试运行与理解

2023-11-13

运行这个程序的主要目的:深入理解deep autoencoder 的基本原理和基本架构,搞明白是如何搭建起来的,弄清它是如何训练学习的,又是如何提取目标的特征的,最终又是怎样分类的。
代码主程序如下:
mnistdeepauto.m
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <pre code_snippet_id="148729" snippet_file_name="blog_20140109_1_7166930" name="code" class="plain"><pre code_snippet_id="148729" snippet_file_name="blog_20140109_1_7166930" name="code" class="plain">% Version 1.000  
  2. %  
  3. % Code provided by Ruslan Salakhutdinov and Geoff Hinton    
  4. %  
  5. % Permission is granted for anyone to copy, use, modify, or distribute this  
  6. % program and accompanying programs and documents for any purpose, provided  
  7. % this copyright notice is retained and prominently displayed, along with  
  8. % a note saying that the original programs are available from our   
  9. % web page.   
  10. % The programs and documents are distributed without any warranty, express or  
  11. % implied.  As the programs were written for research purposes only, they have  
  12. % not been tested to the degree that would be advisable in any important  
  13. % application.  All use of these programs is entirely at the user's own risk.  
  14.   
  15.   
  16. % This program pretrains a deep autoencoder for MNIST dataset-  
  17.   % 这个程序是关于MNIST数据库的深度自编码预训练  
  18. % You can set the maximum number of epochs for pretraining each layer  
  19.   %在预训练各个隐藏层的时候,你可以设置epochs的最大值  
  20. % and you can set the architecture of the multilayer net.  
  21.   %你可以设置多层网络的架构  
  22.   
  23. clear all  %清除工作所有的变量  
  24. close all  %关闭其他的窗口  
  25.   
  26. maxepoch=10; %In the Science paper we use maxepoch=50, but it works just fine.   
  27. numhid=1000; numpen=500; numpen2=250; numopen=30;</pre><pre code_snippet_id="148729" snippet_file_name="blog_20140109_2_7730833" name="code" class="plain">%设置各个隐藏层的神经元的个数;这个程序所采用的网络共有四层,你可以追踪这个变量,就很容易知道这四个变量的代表的含义。【1000 500 250 30】  
  28.   
  29. fprintf(1,'Converting Raw files into Matlab format \n');  
  30. converter; </pre><pre code_snippet_id="148729" snippet_file_name="blog_20140109_3_2856028" name="code" class="plain">%作者提供的二进制数据需要转换Matlab格式的;当程序运行到第一个函数fread时,程序报错,提示说所产生的文件标志是错误的,建议采用fopen函数。  
  31.   
  32. fprintf(1,'Pretraining a deep autoencoder. \n');  
  33. fprintf(1,'The Science paper used 50 epochs. This uses %3i \n', maxepoch);  
  34.   
  35. makebatches;  
  36. [numcases numdims numbatches]=size(batchdata);  
  37.   
  38. fprintf(1,'Pretraining Layer 1 with RBM: %d-%d \n',numdims,numhid);  
  39. restart=1;  
  40. rbm;  
  41. hidrecbiases=hidbiases;   
  42. save mnistvh vishid hidrecbiases visbiases;  
  43.   
  44. fprintf(1,'\nPretraining Layer 2 with RBM: %d-%d \n',numhid,numpen);  
  45. batchdata=batchposhidprobs;  
  46. numhid=numpen;  
  47. restart=1;  
  48. rbm;  
  49. hidpen=vishid; penrecbiases=hidbiases; hidgenbiases=visbiases;  
  50. save mnisthp hidpen penrecbiases hidgenbiases;  
  51.   
  52. fprintf(1,'\nPretraining Layer 3 with RBM: %d-%d \n',numpen,numpen2);  
  53. batchdata=batchposhidprobs;  
  54. numhid=numpen2;  
  55. restart=1;  
  56. rbm;  
  57. hidpen2=vishid; penrecbiases2=hidbiases; hidgenbiases2=visbiases;  
  58. save mnisthp2 hidpen2 penrecbiases2 hidgenbiases2;  
  59.   
  60. fprintf(1,'\nPretraining Layer 4 with RBM: %d-%d \n',numpen2,numopen);  
  61. batchdata=batchposhidprobs;  
  62. numhid=numopen;   
  63. restart=1;  
  64. rbmhidlinear;  
  65. hidtop=vishid; toprecbiases=hidbiases; topgenbiases=visbiases;  
  66. save mnistpo hidtop toprecbiases topgenbiases;  
  67.   
  68. backprop;   
  69. </pre><br>  
  70. <br>  
  71. <pre></pre>  
  72. <pre></pre>  
  73. <pre></pre>  
  74. <pre></pre>  
  75. </pre>  
原文地址:http://blog.csdn.net/liyuanhao_1114/article/details/18033223
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Training a deep autoencoder or a classifier on MNIST digits_之调试运行与理解 的相关文章

  • 15款最好的Windows安全检测工具

    2006 05 09 13 29 Kevin Beaver TechTarget 你想测试你的Widnows系统的安全性吗 如果你选对了工具 其实这是一件非常有趣的工作 如果你正为挑选合适的工具而苦恼 那就让本文给你一些帮助吧 关于安全测试

随机推荐

  • URL中的+,空格,/,?,%,#,&,= 及转义处理

    URL出现了有 空格 等特殊符号的时候 可能在服务器端无法获得正确的参数值 如何是好 解决办法 将这些字符转化成服务器可以识别的字符 对应关系如下 URL中的特殊字符 有些符号在URL中是不能直接传递的 如果要在URL中传递这些特殊符号 那
  • nginx 之优雅的关闭worker进程

    1 设置定时器 worker shutdown timeout 2 关闭监听句柄 3 关闭空闲连接 4 在循环中等待全部连接关闭 5 退出进程
  • Java比较两个对象是否相同并获得不同的字段

    在使用数据库以及做详细的权限控制的时候 遇到要比较两个对象的情况 获得两个对象是否相同以及有那些字段被修改了 以判断用户是否有权限修改对象 apache commons提供的只有collections的对比 因此 本文利用jackson将对
  • KaTeX使用

    前言 在 KaTeX KaTeX KATE X官网 有两张支持表 这里搬运过来以便于大家能够正确使用指令 这张表应该涵盖了纯 KaTeX KaTeX KATE X所有的功能 当然
  • u-boot的norflash驱动分析,以及一些调试信息

    Flash 存储器接口还有两个标准 CFI和JEDEC CFI为公共Flash接口 Common Flash Interface 用来帮助程序从Flash芯片中获取操作方式信息 而不用在程序中硬编码Flash的ID JEDEC用来帮助程序读
  • 怎么用计算机打开开发者模式,win10如何打开开发者选项模式

    我们的win10系统中自带有开发者选项模式 该模式为Win10技术预览版开发此风格应用你需要开启 开发者模式 开启之后 在将应用提交给微软进行测试和认证前 你可以先在本地计算机上进行部署和测试 为开发者们提供了自由发挥的空间 那么win10
  • Oracle date日期类型使用

    Oracle中将日期转换为字符串 需要设置日期格式 to char sysdate fmt fmt YYYY MM DD HH24 MI SS 结果 2021 03 04 19 42 50 fmt YYYY MM DD HH12 MI SS
  • 多线程-UncaughtException

    在多线程开发中 我们会面对很多的异常问题 但是 主线程的异常我们知道很方便捕获并且处理 但是对于子线程而言呢 package Thread UncaughtException program 多线程和IO descripton 传统方法无法
  • Java打印程序设计全攻略 .

    前言 在我们的实际工作中 经常需要实现打印功能 但由于历史原因 Java提供的打印功能一直都比较弱 实际上最初的jdk根本不支持打印 直到jdk1 1才引入了很轻量的打印支持 所以 在以前用Java Applet JSP Servlet设计
  • div盒模型宽高计算

    一 计算div盒模型宽高 div盒模型宽度 width 左右padding 左右border 不包含左右margin div盒模型高度 height 上下padding 上下border 不包含上下margin
  • Linux新手入门教程

    版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net li3839 article details 80658514 下面给你讲解新手第一次
  • 怎么看有没有用到ajax,使用AJAX请求JSON数据。我没有看到结果

    我正在学习Angular JS 为什么我看不到任何结果 使用AJAX请求JSON数据 我没有看到结果 这是我的例子 HTML post desc JS var app angular module MyApp app controller
  • discuz伪静态设置方法

    首先 进入后台 全局 SEO设置 URL静态化 如图 接着打开 查看当前的Rewrite规则 下载合适规则
  • mac上使用svn

    第一步 使用Homebrew安装subversion Homebrew不知道怎么安装的话 请自行百度 brew install subversion 第二步 使用如下的命令进行检查是否安装了这个软件 brew list 得到如下结果 使用如
  • vue常用组件库

    Vue是主流的前端框架一 Vue js UI组件 element 饿了么出品的Vue2的web UI工具套件 Vux 基于Vue和WeUI的组件库 mint ui Vue 2的移动UI元素 iview 基于 Vuejs 的开源 UI 组件库
  • 32黑马QT笔记之QPixmap和QImage的相互转换

    32黑马QT笔记之QPixmap和QImage的相互转换 1 QPixmap与QImage的互相转换 1 头文件 void paintEvent QPaintEvent 2 实现 cpp文件 void Widget paintEvent Q
  • 敏捷开发系列终极之旅 第六站(像橄榄球运动一样富有激情的SCRUM)

    由来 为什么是Scrum Scrum原本的意思是橄榄球运动的一个专业术语 指 在橄榄球比赛中 双方前锋站在一起紧密相连 当球在他们之间投掷时他们奋力争球 在敏捷开发系列中 把一种开发流程命名为Scrum 其实就意味着 这种敏捷开发的流程 就
  • 解决Android手机root仍然出现adbd connot run as root in production build

    对于手机已经root 但是使用 adb root命令仍然出新adbd connot run as root in production build 原因是手机固件里面设置了adb shell 禁止root 解决方法 下载文件 http do
  • Linux文件、磁盘管理的一些命令:

    Linux文件 磁盘管理的一些命令 Num01 gt ls ls 列出目录的内容 linux文件或目录名称英文最长可有255个字符 中文最长127个字符 表示当前目录 以 开头的文件为隐藏文件 需要以 a参数才能显示 表示上级目录或父目录
  • Training a deep autoencoder or a classifier on MNIST digits_之调试运行与理解

    运行这个程序的主要目的 深入理解deep autoencoder 的基本原理和基本架构 搞明白是如何搭建起来的 弄清它是如何训练学习的 又是如何提取目标的特征的 最终又是怎样分类的 代码主程序如下 mnistdeepauto m plain