ACM 计划

【ACMer】大学期间ACM进阶计划总结 ACM进阶计划 闲来无聊,虽然大学的ACM参赛结局很狗血,还是把大学期间ACM集训队训练的一些经验作一个总结,希望看到这篇博文的ACMer能惊醒,至少博主没做到下面的规划,所以2年集训队只能惨淡收场。。。 ACM队不是为了一场比赛而存在的,为的是队员的整体提高。 大学期间,ACM队队员必须要学好的课程有: l C/C++两种语言 l 高等数学 l 线性代数 阅读详情

初期:
一.基本算法: 
    (1)枚举. (poj1753,poj2965)
    (2)贪心(poj1328,poj2109,poj2586)
    (3)递归和分治法. 
    (4)递推. 
    (5)构造法.(poj3295)
    (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)
二.图算法: 
    (1)图的深度优先遍历和广度优先遍历. 
    (2)最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra) 
 (poj1860,poj3259,poj1062,poj2253,poj1125,poj2240,poj1511,poj1847,poj2387,
poj3268,poj3037,poj1502,poj1797,poj3615,poj3660,poj3013,poj3159,poj1275)
    (3)最小生成树算法(prim,kruskal)
(poj1789,poj2485,poj1258,poj3026,poj1861,poj2395,poj2377,poj2421,poj1679,poj1751,poj1354,poj1251,poj3625,poj3522)
    (4)拓扑排序 (poj1094)
(5)二分图的最大匹配 (匈牙利算法) (poj3041,poj3020,poj1274,poj3692,
poj2195,poj1466,poj1469,poj2239,poj1325,poj2771,poj1422,poj2594,poj1087)
(6)最大流的增广路算法(EK算法,SAP算法,Dinic算法). (poj1459,poj3436,poj1273,poj3281,poj1087,poj1149 ,poj1698,poj2195,poj1815)
三.数据结构. 
    (1)串 (poj1035,poj3080,poj1936)
    (2)排序(快排、归并排(与逆序数有关)、堆排) (poj2388,poj2299)
    (3)简单并查集的应用. (poj1182,poj1456,poj1611,poj1988,poj2524,poj2236)
    (4)哈希表和二分查找等高效查找法(数的Hash,串的Hash)   
       (poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503)
    (5)哈夫曼树(poj3253)
    (6)堆 
(7)trie树(静态建树、动态建树) (poj2513poj3630,poj1204,
poj1056,hduoj1251,hduoj1247)
 
四.简单搜索 
    (1)深度优先搜索 (poj2488,poj3083,poj3009,poj1321,poj2251)
    (2)广度优先搜索(poj3278,poj1426,poj3126,poj3087.poj3414)
    (3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129)
五.动态规划 
    (1)背包问题. (poj1837,poj1276)
    (2)型如下表的简单DP(可参考lrj的书 page149): 
      1.E[j]=opt{D[i]+w(i,j)} (poj3267,poj1836,poj1260,poj2533)
      2.E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最长公共子序列)    
        (poj3176,poj1080,poj1159)
      3.C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最优二分检索树问题) 
六.数学 
    (1)组合数学: 
       1.加法原理和乘法原理. 
       2.排列组合. 
       3.递推关系. 
         (POJ3252,poj1850,poj1019,poj1942)
    (2)数论. 
       1.素数与整除问题 
       2.进制位. 
       3.同余模运算.
         (poj2635, poj3292,poj1845,poj2115)
    (3)计算方法. 
       1.二分法求解单调函数相关知识.(poj3273,poj3258,poj1905,poj3122)
七.计算几何学. 
    (1)几何公式.
    (2)叉积和点积的运用(如线段相交的判定,点到线段的距离等). (poj2031,poj1039)
    (3)多边型的简单算法(求面积)和相关判定(点在多边型内,多边型是否相交) 
        (poj1408,poj1584)
(4)凸包.  (poj2187,poj1113,poj1228,poj1794,poj2007,hoj1392,hoj1348,
hoj2202,hoj2215)
 
中级:
一.基本算法: 
    (1)C++的标准模版库的应用. (poj3096,poj3007)
    (2)较为复杂的模拟题的训练(poj3393,poj1472,poj3371,poj1027,poj2706)
二.图算法: 
(1)差分约束系统的建立和求解. (poj1201,poj2983,poj1364,poj3169,poj3159
,poj1716,poj1275,zoj1260,zoj1420,zoj1455) (利用最短路Bellman_Ford和SPFA算法)。
    (2)最小费用最大流(poj2516,,poj2195)
    (3)双连通分量(poj2942,poj3694,poj3177)
    (4)强连通分支及其缩点.(poj2186)
    (5)图的割边和割点(poj3352)
    (6)最小割模型、网络流规约(poj3308, )
三.数据结构. 
(1)线段树(poj2528,poj2828,poj2777,poj2886,poj2750,poj3277,poj3225,
poj2482,poj1177,poj1029,poj2182,poj2104,poj2761,poj2140,poj2155,poj2195,
hoj1166,hoj1754, hoj1698, hoj 1394 , hoj2795, hoj1540, hoj2781,
 hoj3016, hoj1542, hoj1255, hoj1828,hoj1823)
    (2)静态二叉检索树. (poj2482,poj2352)
    (3)树状树组(poj1195,poj3321)
    (4)RMQ. (poj3264(sample),poj3368(change something) 2823(滚动数组))
    (5)并查集的高级应用. (poj1703,2492)
    (6)KMP算法. (poj1961,poj2406)
四.搜索 
    (1)最优化剪枝和可行性剪枝 
    (2)搜索的技巧和优化 (poj3411,poj1724)
    (3)记忆化搜索(poj3373,poj1691)
    
五.动态规划 
    (1)较为复杂的动态规划(如动态规划解特别的旅行商问题等)
        (poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034)
    (2)记录状态的动态规划. (POJ3254,poj2411,poj1185)
    (3)树型动态规划(poj2057,poj1947,poj2486,poj3140)
六.数学 
    (1)组合数学: 
       1.容斥原理. 
       2.抽屉原理. 
       3.置换群与Polya定理(poj1286,poj2409,poj3270,poj1026). 
       4.递推关系和母函数. 
       
    (2)数学. 
       1.高斯消元法(poj2947,poj1487, poj2065,poj1166,poj1222)
       2.概率问题. (poj3071,poj3440)
       3.GCD、扩展的欧几里德(中国剩余定理) (poj3101) 
    (3)计算方法. 
       1.0/1分数规划. (poj2976)
       2.三分法求解单峰(单谷)的极值. 
       3.矩阵法(poj3150,poj3422,poj3070)
       4.迭代逼近(poj3301)
    (4)随机化算法(poj3318,poj2454)
    (5)杂题.
        (poj1870,poj3296,poj3286,poj1095)
七.计算几何学. 
       (1)坐标离散化. 
       (2)扫描线算法(例如求矩形的面积和周长并,常和线段树或堆一起使用). 
           (poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)
       (3)多边形的内核(半平面交)(poj3130,poj3335)
       (4)几何工具的综合应用.(poj1819,
             poj1066,poj2043,poj3227,poj2165,poj3429)
高级:
一.基本算法要求:  
     (1)代码快速写成,精简但不失风格  
         (poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)
     (2)保证正确性和高效性.  poj3434
二.图算法: 
     (1)度限制最小生成树和第K最短路. (poj1639)
     (2)最短路,最小生成树,二分图,最大流问题的相关理论(主要是模型建立和求解)
        (poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446
     (3)最优比率生成树.  (poj2728)
     (4)最小树形图(poj3164)
     (5)次小生成树. 
     (6)无向图、有向图的最小环   
三.数据结构.  
     (1)trie图的建立和应用. (poj2778)
     (2)LCA和RMQ问题(LCA(最近公共祖先问题) 有离线算法(并查集+dfs) 和 在线算法 
         (RMQ+dfs)).(poj1330)
     (3)双端队列和它的应用(维护一个单调的队列,常常在动态规划中起到优化状态转移的
         目的).  (poj2823)
     (4)左偏树(可合并堆).  
     (5)后缀树(非常有用的数据结构,也是赛区考题的热点).  
        (poj3415,poj3294)
四.搜索  
     (1)较麻烦的搜索题目训练(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)
     (2)广搜的状态优化:利用M进制数存储状态、转化为串用hash表判重、按位压缩存储状态、双向广搜、A*算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)
     (3)深搜的优化:尽量用位运算、一定要加剪枝、函数参数尽可能少、层数不易过大、可以考虑双向搜索或者是轮换搜索、IDA*算法. (poj3131,poj2870,poj2286)
五.动态规划  
     (1)需要用数据结构优化的动态规划.
        (poj2754,poj3378,poj3017)
     (2)四边形不等式理论. 
     (3)较难的状态DP(poj3133)
六.数学  
     (1)组合数学. 
       1.MoBius反演(poj2888,poj2154)
       2.偏序关系理论. 
     (2)博奕论. 
       1.极大极小过程(poj3317,poj1085)
       2.Nim问题. 
七.计算几何学.  
     (1)半平面求交(poj3384,poj2540)
     (2)可视图的建立(poj2966)
     (3)点集最小圆覆盖. 
     (4)对踵点(poj2079)
     八.综合题.
     (poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263)
 
数据结构
  组织结构
    二叉堆
    左偏树
    二项树
    胜者树
    跳跃表
    样式图标
    斜堆
    treap
 
 统计结构
    树状数组
    虚二叉树
    线段树
    矩形面积并
    圆形面积并
 
 关系结构
    Hash表
    并查集
    路径压缩思想的应用
 
 STL中的数据结构
    vector
    deque
set / map
 
1:数学
1.1:数论
1.1.1:中国剩余定理
1.1.2:欧拉函数
1.1.3:欧几里得定理
1.1.3.1:欧几里得定理
1.1.3.2:扩展欧几里得
1.1.4:大数分解与素数判定
1.1.5:佩尔方程
1.2:组合数学
1.2.1:排列组合
1.2.2:容斥原理
1.2.3:递推关系和生成函数
1.2.4:Polya计数法
1.2.4.1:Polya计数公式
1.2.4.2:Burnside定理
1.3:计算方法
1.3.1:二分法
1.3.1.1:用矩阵加速的计算
1.3.2:迭代法
1.3.3:三分法
1.3.4:解线性方程组
1.3.4.1:LUP分解
1.3.4.2:高斯消元
1.3.5:解模线性方程组
1.3.6:定积分计算
1.3.7:多项式求根
1.3.8:周期性方程
1.3.9:线性规划
1.3.10:快速傅立叶变换
1.3.11:随机算法
1.4:构造方法
1.4.1:N皇后构造解
1.4.2:幻方的构造
1.4.3:满足一定条件的hamilton圈的构造
1.5:特殊的数
1.5.1:Catalan数
1.5.2:Stirling数
1.5.3:斐波拉契数
1.5.4:调和数
1.5.4:连分数
2:数据结构
2.1:栈,队列,链表
2.2:哈希表
2.3:堆,优先队列
2.3.1:左偏树
2.4:二叉查找树
2.4.1:Treap
2.4.2:伸展树
2.5:并查集
2.6:平衡二叉树
2.7:线段树
2.7.1:一维线段树
2.7.2:二维线段树
2.8:树状数组
2.8.1:一维树状数组
2.8.2:N维树状数组
2.9:字典树
2.10:后缀数组
2.11:块状链表
3:图论
3.1:图
3.1.1.:广度优先遍历
3.1.2.:深度优先遍历
3.1.3.:拓扑排序
3.1.4.:割边割点
3.1.5.:强连通分量
3.1.5:2-SAT问题
3.1.6.:欧拉回路
3.1.7.:哈密顿回路
3.2.:最小生成树
3.2.1.:Prim算法
3.2.2.:Kruskal算法
3.2.3.:Sollin算法
3.2.4.:次小生成树
3.2.5.:第k小生成树
3.2.6.:最优比例生成树
3.2.7.:最小树形图
3.2.8.:最小度限制生成树
3.2.9.:平面点的欧几里德最小生成树
3.2.10.:平面点的曼哈顿最小生成树
3.2.11.:最小平衡生成树
3.3.:最短路径
3.3.1.:有向无环图的最短路径->拓扑排序
3.3.2.:非负权值加权图的最短路径->Dijkstra算法
3.3.3.:含负权值加权图的最短路径->Bellmanford算法
3.3.4.:含负权值加权图的最短路径->Spfa算法
3.3.5.:全源最短路弗洛伊德算法Floyd
3.3.6.:全源最短路Johnson算法
3.3.7.:次短路径
3.3.8.:第k短路径
3.3.9.:差分约束系统
3.3.10.:平面点对的最短路径(优化)
3.3.11.:双标准限制最短路径
3.4.:最大流
3.4.1.:增广路->Ford-Fulkerson算法
3.4.2.:预推流
3.4.3.:Dinic算法
3.4.4.:有上下界限制的最大流
3.4.5.:节点有限制的网络流
3.4.6.:无向图最小割->Stoer-Wagner算法
3.4.7.:有向图和无向图的边不交路径
3.4.8.:Ford-Fulkerson迭加算法
3.4.9.:含负费用的最小费用最大流
3.5.:匹配
3.5.1.:Hungary算法
3.5.2.:最小点覆盖
3.5.3.:最小路径覆盖
3.5.4.:最大独立集问题
3.5.5.:二分图最优完备匹配Kuhn-Munkras算法
3.5.6.:一般图的最大基数匹配
3.5.7.:一般图的赋权匹配问题
4:搜索
5:计算几何:
5.1基本公式
5.1.1:叉乘
5.1.2:点乘
5.1.3:常见形状的面积、周长、体积公式
5.2:线段
5.2.1:判断两线段(一直线、一线段)是否相交
5.2.2:求两线段的交点
5.3:多边形
5.3.1:判定凸多边形,顶点按顺时针或逆时针给出,(不)允许相邻边共线
5.3.2:判点在凸多边形内或多边形边上,顶点按顺时针或逆时针给出
5.3.3:判点在凸多边形内,顶点按顺时针或逆时针给出,在多边形边上返回0
5.3.4:判点在任意多边形内,顶点按顺时针或逆时针给出
5.3.5:判线段在任意多边形内,顶点按顺时针或逆时针给出,与边界相交返回1
5.3.6:多边形重心
5.3.7:多边形切割(半平面交)
5.4:三角形
5.4.1:内心
5.4.2:外心
5.4.3:重心
5.4.4:垂心
5.4.5:费马点
5.5:圆
5.5.1:判直线和圆相交,包括相切
5.5.2:判线段和圆相交,包括端点和相切
5.5.3:判圆和圆相交,包括相切
5.5.4:计算圆上到点p最近点,如p与圆心重合,返回p本身
5.5.5:计算直线与圆的交点,保证直线与圆有交点
5.5.6:计算线段与圆的交点可用这个函数后判点是否在线段上
5.5.7:计算圆与圆的交点,保证圆与圆有交点,圆心不重合
5.5.8:计算两圆的内外公切线
5.5.9:计算线段到圆的切点
5.6:经典问题
5.6.1:平面凸包
5.6.2:三维凸包
5.6.3:Delaunay剖分/Voronoi图

ACM 2. 旅行计划(水最短路) 2. 旅行计划 ★☆   输入文件:djs.in   输出文件:djs.out   简单对比 时间限制:3 s   内存限制:128 MB 过暑假了,阿杜准备出行旅游,他已经查到了某些城市的两两之间的距离及可行路线(可行路线有方向),如下图所示。请你编程计算从阿杜所住城市到其它城市的最短路径以帮助阿杜制定旅行计划。 【输入格式】 输入由若干行组成,第一行有三个整数,n(1≤n≤1 阅读详情

相关推荐

基于SSD2828和STM32的MIPI显示屏驱动系统设计与实现

在硬件层面,需要将STM32、SSD2828和MIPI显示屏连接起来。STM32与SSD2828的连接:通过SPI接口连接STM32和SSD2828,用于配置和控制SSD2828。SSD2828与MIPI显示屏的连接:通过MIPI DSI接口连接SSD2828和MIPI显示屏,用于传输显示数据。

qq_38334677的博客 7143

质量检验GB/T 2828

质检的检验方式有四种 全检 免检 抽检   需要GB2828  其他  自定义检验比例    

fwk19840301的博客 6万+

第8章第4节-关键道路-图的割边

/* 割边(桥):即在一个无向连通图中,如何删除某条边之后,图不在连通 如果low[v]和num[u]相等则表示还可以回到父亲,而low[v] > num[u]则表示连父亲都回不到了。 倘若顶点v不能回到祖先,也没有另外一条路能回到父亲,那么u-v这条边就是割边 实际应用中需要改为邻接表来存储图,时间复杂度为OM((N + M)),否则时间复杂度为O(N2) */ #include "std...

越努力越幸运! 334

GB/T2828.1-2003与GB/T2828-1987的差异(转载)

GB/T2828.1-2003与GB/T2828-1987的差异(转载)GB/T2828.1-2003与GB/T2828-1987的差异http://www.quality-world.cn/guanli/2503.html摘要...

csdn785029689的博客 1万+

Accelstepper 库中的参数计算公式

要完全调试电机的各个参数,例如最大速度,加速度等,就需要了解其计算公式和原理。 以下是代码注释: /// This code uses speed calculations as described in /// "Generate stepper-motor speed profiles in real time" by David Austin/// http://fab.cba.mi...

wenguitao的博客 4455

MQTT(轻量级消息中间件)基本使用指南

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种轻量级的发布 / 订阅模式(Pub/Sub)消息传输协议,专为低带宽、不稳定网络环境设计,广泛应用于物联网(IoT)、移动设备、传感器网络等场景(如空气净化器、智能家居设备的远程控制)。Eclipse Mosquitto 是一款轻量级、开源的 MQTT 消息服务器(Broker),由 Eclipse 基金会维护,专为低资源消耗和易用性设计。

墨鸦的博客 1万+

ACM学习计划

正在学(learning),未学(waiting),已学(cut vovering) 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(...

weixin_30239339的博客 247

深入解析luckyExcel处理xlsx与xls文件的实战技巧

本文深入解析了使用luckyExcel库在前端处理.xlsx与.xls文件的实战技巧。针对.xlsx文件,可直接调用API转换;对于老旧的.xls格式,则需结合SheetJS进行预处理。文章详细介绍了核心API的使用、两种格式的处理流程、数据提取方法以及性能优化建议,为开发在线Excel编辑应用提供了完整解决方案。

cherry的博客 817

ACM训练计划

                                  &...

yan454790122的博客 5031

80MHz~100MHz频谱分析仪设计

由理论分析可知,经过乘法器后输出的信号为频率为w1+w2的高频信号和w1-w2的低频信号,除了想要采样的直流信号外,最小的信号频率为100kHz。因此,经过一系列推导可以得到该滤波器的元件C1,C2,C3,R1,R2的近似值分别为:C1=2.36nF,C2=32.1nF,C3=1.07nF,R1=1.39k,R2=2.84k。AK,此时的频率w2即为被测信号的频率,待测信号源电压幅度为,因此为了能达到直流采样的设计,我们将本振源的频率输出范围做成80~110 MHz,提高了题目的频率要求。

qq_48771816的博客 5242

第十篇|网络子系统 ②——无损以太网、PFC/ECN、DCQCN 与拥塞可视化

网络部分了解了解

qq_37535542的博客 1874

ACM学习进阶计划

ACM进阶计划 对ACM学习历程还感到迷茫的童鞋可以看一看,从大一到大三的所有计划,零基础照样可以参加ACM比赛,希望可以对你们有些帮助>_<

结构之美 算法之道 1901

[网络安全提高篇] 一二〇.恶意软件动态分析经典沙箱Cape批量提取动态API特征

这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步。前文详细介绍动态分析沙箱Cape的安装过程,其是一个开源的自动恶意软件分析系统,通过自动运行和分析恶意软件,全面分析和提取恶意软件的关键特征。然而,当样本数量增加时,单个样本分析会降低效率。这篇文章将讲解如何实现Cape沙箱的批量分析,通过调用Python脚本文件来实施批量处理,并将分析结果存储在指定位置,最后补充submit.py的参数及Python调用方式。基础性文章,希望对您有帮助!

杨秀璋的专栏 4121

ACM训练史上最详细计划(大神养成记)

ACM训练史上最详细计划(大神养成记)

H_define的博客 647

【3天快速入门WPF】1-从最简单的xaml开始

首先我们要知道xaml语法中声明即定义,意思就是“见到元素就相当于创建实例”,MainWindow.xaml的主干是一个元素里包含着一个 元素。这段程序就是在定义一个Window类的实例,这个实例的一个组成部分是一个Grid类的实例。

Zy100Papa的博客 1623

036、算子映射:如何将ONNX算子映射到NPU硬件指令?

《算子映射:ONNX到NPU的转换艺术》 本文深入探讨了将ONNX算子映射到NPU硬件指令的技术挑战与实践经验。作者通过真实案例揭示了映射过程中的常见陷阱,如Reshape算子被错误映射导致分类错误。文章详细分析了三种映射策略(直接映射、拆分映射和融合映射),并强调映射表在编译器中的核心作用。特别针对动态形状、精度对齐等难题提供了解决方案,分享了编写映射表时的实用铁律,包括先优化后映射、严格单元测试等。最后指出,成功的算子映射需要在数学语义、硬件约束和性能优化之间找到精确平衡,这种看似枯燥的工作实则决定着N

m0_50546716的博客 185

ACM进阶计划

ACM进阶计划 ACM队不是为了一场比赛而存在的,为的是队员的整体提高。 大学期间,ACM队队员必须要学好的课程有: l C/C++两种语言 l 高等数学 l 线性代数 l 数据结构 l 离散数学 l 数据库原理 l 操作系统原理 l 计算机组成原理 l 人工智能 l 编译原理 l 算法设计与分析 除此之外,我希望

69小石头的博客 1038

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

ACM_暑期计划

这几天在学校刷题,但是状态不是很好,与放假前的想法完全有点背离了。然后这两天有感冒了,更是状态下滑,一天好像都没写出一两道。。。 今天和张引还有苟继承一起出去买了个大西瓜,吃起来还是挺不错的~ 不过一下就饱啦~~ 哈哈哈哈~ 看着电脑屏幕,突然想到了一件事情——退役,在打完区域赛后就不玩了。说是突然,但也许早就在脑海深处想过了吧。想想自己参加ACM已经一年多了,感觉好久啊。。。 退役的主要原

剑洋侠客 862

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ACM训练计划【转载】

文章目录写在前面正文下面给个计划你练练:第一阶段:第二阶段:第三阶段:(一)(二)(三)(四)(五)(六)ACM基本算法分类ACM基本算法分类、推荐学习资料和配套pku习题一.动态规划二.搜索三. 常用数据结构四.图论基础五.数论及组合计数基础主流算法:1、 排序2、 搜索、回溯、遍历3、 历法4、 枚举5、 数据结构的典型算法6、 动态规划7、 贪心8、 模拟9、 递归10、字符串处理11、数论...

qq_45739382的博客 1535

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

大神详细的ACM训练计划

看完人家的博客,发现任重道远。。。 一位高手对我的建议: 一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的 ,主要时间是花在思考算法上,不是花在写程序与debug上。 下面给个计划你练练: 第一阶段: 练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码, 因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打 出...

来日浅谈的博客 1016
上一篇: STL_ count,count_if用法
下一篇: @冯姐
i丹明扬
博客等级 码龄15年 331粉丝 115原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值