矢量编程——随着MNIST案例
矢量编程使用的所有明确的矢量运算,而不是for周期。
上一节所用的是512*512*10的数据集非常小。我们取的patch非常小(8*8),学来的特征非常少(25)。而我又凝视掉了梯度校验(偷懒),所以程序用了1分钟就跑完了(i5处理器)。
但实际上我们遇到的问题规模比这个打太多了,略微大一点的数据集比方说MNIST。这个数据库是另外一个更大的手写体数据库NIST的子集,包括60000个训练样例和10000測试样本,全部的图片都经过了尺寸标准化和中心化,图片的大小固定(28*28)。
输入
images= loadMNISTImages('train-images-idx3-ubyte');
display_network(images(:,1:100));
瞧瞧MNIST前100个图片。
图1
图片变了,对应可见层和隐藏层的节点都要变,这里改动一下參数:
visibleSize= 28*28;
hiddenSize= 196;
sparsityParam= 0.1;
lambda= 3e-3;
beta= 3;
images= loadMNISTImages('train-images.idx3-ubyte');
patches=images(:,1:10000);
因为上一节我的代码已经是矢量化之后的代码了。这里就直接拿来用即可了,Andrew说:“Ourimplementation takes around 15-20 minutes on a fast machine.”感受了一下,确实差点儿相同。假设没有矢量化,预计一上午都难以出结果。
执行后直接等即可了10多分钟就出炉了,键盘有点微烫
图2
欢迎參与讨论并关注本博客和微博以及知乎个人主页兴许内容继续更新哦~
转载请您尊重作者的劳动。完整保留上述文字以及文章链接,谢谢您的支持。
版权声明:本文博主原创文章,博客,未经同意不得转载。
矢量编程——随着MNIST案例的更多相关文章
- 【原创 Hadoop&Spark 动手实践 6】Spark 编程实例与案例演示
[原创 Hadoop&Spark 动手实践 6]Spark 编程实例与案例演示 Spark 编程实例和简易电影分析系统的编写 目标: 1. 掌握理论:了解Spark编程的理论基础 2. 搭建 ...
- Shell编程—企业生产案例
Linux系统Shell编程—企业生产案例(一) 企业数据库可以说是重点保护对象啊,没有之一,数据在当今企业里就是生命线,因此今天就来说一说,如何通过shell脚本来检查或监控MYSQL数据库服务是否 ...
- UFLDL接听教程练习(来自编码器和矢量编程疏)
最近想在深入学习研究,开始看UFLDL(unsuprisedfeature learning and deep learning)教程了.特将课后习题答案放在这里,作为一个笔记. 笔记: 1:自编码算 ...
- 案例学编程系列:案例认识 Spring IOC
本文spring libs 地址:https://github.com/yizhiamumu/springlibs Spring 能帮我们做什么 ①.Spring 能帮我们根据配置文件创建及组装对象之 ...
- Spark(1.6.1) Sql 编程指南+实战案例分析
首先看看从官网学习后总结的一个思维导图 概述(Overview) Spark SQL是Spark的一个模块,用于结构化数据处理.它提供了一个编程的抽象被称为DataFrames,也可以作为分布式SQL ...
- shell脚本编程——生产实战案例
生产实战案例 在日常的生产环境中,可能会遇到需要批量检查内网目前在线的主机IP地址有哪些,还可能需要检查这些在线的主机哪些端口是开放状态,因此依靠手工来检查是可以实现,但比较费时费力,所以需要 ...
- 2D游戏编程7—星空案例
// INCLUDES /////////////////////////////////////////////// #define WIN32_LEAN_AND_MEAN // just say ...
- Java-Swing编程之对话框案例详解
package com.xushouwei.cn.photo; import java.awt.GraphicsConfiguration; import java.awt.GridLayout; i ...
- Python学习笔记【第十五篇】:Python网络编程三ftp案例练习--断点续传
开发一个支持多用户在线的FTP程序-------------------主要是学习思路 实现功能点 1:用户登陆验证(用户名.密码) 2:实现多用户登陆 3:实现简单的cmd命令操作 4:文件的上传( ...
随机推荐
- Loser应该知道的6个残酷人生事实(血泪翻译)
Loser应该知道的6个残酷人生事实(血泪翻译) - Acfun - 天下漫友是一家 Loser应该知道的6个残酷人生事实(血泪翻译)
- POj 1879 Tempus et mobilius Time and motion (模拟+群)
题目特别长,大意为球的传递. 三个轨道,一个库.各自是分钟单位的轨道.5min单位的轨道.一小时单位的轨道.还有就是n容量的库. 每过一分钟,一个小球从库里面出来,库符合先进先出,进入分钟轨道.假设分 ...
- 读懂Java中的Socket编程(转)
Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...
- hdu 4404 Worms(多边形与圆的交)
求出爆炸点的坐标,就成了多边形与圆相交面积的模板题了... #include<algorithm> #include<iostream> #include<cstring ...
- C++ 中获取 可变形參函数中的參数
#include <iostream> #include <stdarg.h> using namespace std; int ArgFunc(const char * st ...
- hdu3555(数位dp)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 题意:求区间[a,b]内包含有'49'的数的总个数. 分析:dp[pos][0]表示到第pos位 ...
- hdu5046(重复覆盖+二分)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5046 题意:要在n个城市里建造不超过k个机场覆盖所有城市,问机场城市之间最大距离最小为多少. 分析:二 ...
- Knockout应用开发指南 第十章:更多信息(完结篇)
原文:Knockout应用开发指南 第十章:更多信息(完结篇) 1 浏览器支持 Knockout在如下浏览器通过测试: Mozilla Firefox 2.0+(最新测试版本:3.6.8) Goo ...
- Knockout应用开发指南 第五章:创建自定义绑定
原文:Knockout应用开发指南 第五章:创建自定义绑定 创建自定义绑定 你可以创建自己的自定义绑定 – 没有必要非要使用内嵌的绑定(像click,value等).你可以你封装复杂的逻辑或行为,自定 ...
- vmware: The file system upon which * resides is critically low on free space.
The file system upon which ******.localized/Windows XP Professional.vmwarevm' resides is critically ...