计算机算法重要知识点(个人笔记)

常见的排序算法汇总(详解篇) 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性 :假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中, r[i]=r[j] ,且 r[i] 在 r[j] 之前,而在排序后的序列中, r[i] 仍在 r[j] 之前,则称这种排序算法是稳定的;否则称为不稳定的。数据元素全部放在内存中的排序。数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。 阅读详情

计算机算法重要知识点(个人笔记)

目录

1.1 什么是算法

算法(algorithm)是一系列解决问题的明确指令,也就是说,对于符合一定规范的输入,能够在有限时间内获得要求的输出。
算法的概念图
观点:可以认为算法是问题的程序化解决方案。

1.2 算法的描述

伪代码(pseudocode) 是自然语言和类编程语言组成的混合结构。伪代码往往比自然语言更精确,而且用伪代码描述的算法往往会更简洁。用箭头代表赋值操作。

1.3 算法的分析

效率有两种

  • 时间效率(time efficiency),指出算法运行有多快。
  • 空间效率(space efficiency),说明算法需要多少额外的存储空间。

1.4重要的问题类型

  • 排序问题(sorting problem):要求我们按照升序重新排列给定列表中的数据项。
  • 查找问题(searching problem):就是在给定的集合(或者是多重集,它允许多个元素具有相同的值)中找一个给定的值[我们称之为查找键(search key)]。
  • 字符串处理,也称字符串匹配问题
  • 图问题
  • 组合问题
  • 几何问题:类似于点、线、多面体这样的几何对象。
  • 数值问题(numerical problem):是另一个广阔的具体应用领域,涉及具有连续性的数学问题:像解方程和方程组,计算定积分以及求函数的值等。
    第2章 算法效率分析基础

不做笔记
第3章 蛮力法

蛮力法(brute force)是一种简单直接地解决问题的方法,常常直接基于问题的描述和所涉及的概念定义。

3.1 选择排序和冒泡排序

3.1.1选择排序

在这里插入图片描述

3.1.2 冒泡排序

在这里插入图片描述

3.2 顺序查找和蛮力字符串匹配

3.2.1 顺序查找

该算法只是简单地将给定列表中的连续元素和给定的查找键进行比较,直到遇到一个匹配的元素(成功查找),或者在遇到匹配元素前就遍历了整个列表(失败查找)。
实现顺序查找时常常会使用这样一个小技巧:如果我们把查找键添加到列表的末尾,那么查找就一定会成功,所以不必在算法的每次循环时都检查是否到达了表的末尾。以下是这个增强版本的伪代码。
在这里插入图片描述

3.2.2蛮力字符串匹配

查找字符串第一个字符的位置
在这里插入图片描述
请注意,在这个例子中,几乎每做一次字符比较就要移动一次模式的位置。然而,最坏的情况比这还要糟得多:在移动模式之前,算法可能会做足m次比较,而n-m+1次尝试的每一次都可能会遇到这种情况。因此,在最坏的情况下,该算法属于O(nm)。

3.3 最近对和凸包问题的蛮力算法

3.3.1 最近问题

最近点对问题要求在一个包含n个点的集合中,找出距离最近的两个点。这种处理平面或者高维空间的邻近点的问题,在各种计算几何问题当中是最简单的。最近点对问题的一个最重要的应用是统计学中的聚类分析。
在这里插入图片描述

3.3.2 凸包问题

在平面或者高维空间的一个给定点集合中寻找凸包,被视为计算几何中最重要的问题之一。
定义: 对于平面上的一个点集合(有限的或无限的),如果以集合中任意两,点p和q为
端,点的线段都属于该集合,我们说这个集合是凸的。

在这里插入图片描述
凸包问题省略

3.4 穷举查找

对于组合问题来说,穷举查找(exhaustive search)是一种简单的蛮力方法。它要求生成问题域中的每一个元素,选出其中满足问题约束的元素,然后再找出一个期望元素(例如,使目标函数达到最优的元素)。 注意,虽然穷举查找的思想很简单直接,但在实现时,它常常会要求算法来生成某些组合对象。
常见问题

  1. 旅行商问题
  2. 背包问题
  3. 分配问题

3.5深度优先查找和广度优先查找

3.5.1 深度优先查找

深度优先查找可以从任意顶点开始访问图的顶点,然后把该顶点标记为已访问。在每次迭代的时候,该算法紧接着处理与当前顶点邻接的未访问顶点。(如果有若干个这样的顶点,可以任意选择一个顶点。但在实际应用中,选择哪一个邻接的未访问候选顶点主要是由表示图的数据结构决定的。在我们的例子中,我们总是根据顶点的字母顺序来选择顶点。)这个过程一直持续,直到遇到一个终点一该顶点的所有邻接顶点都已被访问过。在该终点上,该算法沿着来路后退一条边,并试着继续从那里访问未访问的顶点。在后退到起始顶点,并且起始顶点也是一个终点时,该算法最终停了下来。这样,起始顶点所在的连通分量的所有顶点都被访问过了。如果未访问过的顶点仍然存在,该算法必须从其中任一顶点开始,重复上述过程。
用一个栈来跟踪深度优先查找的操作是比较方便的。在第一次访问一个顶点时(也就是说,开始对该顶点的访问时),我们把该顶点入栈:当它成为一个终点时(也就是说,结束对该顶点的访问时),我们把它出栈。
深度优先查找树(depth-first search forest)
在这里插入图片描述

3.5.2 广度优先查找

按照一种同心圆的方式,首先访问所有和初始顶点邻接的顶点,然后是离它两条边的所有未访问顶点,以此类推,直到所有与初始顶点同在一个连通分量中的顶点都访问过了为止。如果仍然存在未被访问的顶点,该算法必须从图的其他连通分量中的任意顶点重新开始。
使用队列(注意它和深度优先查找的区别!)来跟踪广度优先查找的操作是比较方便的。该队列先从遍历的初始顶点开始,将该顶点标记为已访问。在每次迭代的时候,该算法找出所有和队头顶点邻接的未访问顶点,把它们标记为已访问,再把它们入队。然后,将队头顶点从队列中移去。
广度优先查找森林(breadth-first search forcest)
在这里插入图片描述
第4章 减治法

4.1 插入排序

我们考虑如何用减一技术对一个数组A[0.-1]排序。遵循该方法的思路,我们假设对较小数组A[0.n-2]排序的问题已经解决了,得到了一个大小为n-1的有序数组:A0]≤…≤[n-2]。我们如何利用这个较小规模的解,并将元素A[n-1]考虑进来,来得到原问题的解呢?显然,我们需要做的就是在这些有序的元素中为A[-1]找到一个合适的位置,然后把它插入到那里。一般来说,我们可以从右到左扫描这个有序的子数组,直到遇到第一个小于等于A[-1]的元素,然后把A[n-1]插在该元素的后面。这种算法被称为直接插入排序(straight insertion sort),或者简称为插入排序(insertion sort)。
在这里插入图片描述

4.2 拓扑排序

4.3生成祝贺对象的算法

4.4 减常因子算法

以上略,有时间再做笔记

4.4.1 折半查找

对于有序数组的查找来说,折半查找是一种性能卓越的算法。它通过 比较查找键K和数组中间元素A[m] 来完成查找工作。如果它们相等,算法结束。否则,如果K<A[m],就对数组的前半部分执行该操作,如果K>A[m],则对数组的后半部分执行该操作。
在这里插入图片描述

4.4.2 假币问题
4.4.3 俄式乘法
4.4.4 约瑟夫斯问题

== 三问题略==

4.5减可变规模算法

4.5.1 插值查找

有时间再做笔记
第五章 分治法

基本思想:
将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且原问题相同。递归地解这些子问题,然后将各子问题的解合并得到原问题的解。
精髓:
分——将问题分解为规模更小的子问题。
治——将这些规模更小的子问题逐个击破。
合——将已解决的子问题合并,最终得到原问题的解。

5.1 合并排序

在这里插入图片描述
在这里插入图片描述
图5.2演示的是用合并排序算法对数列8,3,2,9,7,1,5,4进行排序的操作过程。
在这里插入图片描述

5.2 快速排序

在这里插入图片描述

学习资源

如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你

**读者福利 |** 优快云大礼包:《网络安全入门&进阶学习资源包》免费分享 **(安全链接,放心点击)**![](https://i-blog.csdnimg.cn/img_convert/a6502ab41b1a86132b9ebb5aab9a2cdc.jpeg)

知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。

1、知识库价值

深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。

广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。

实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。

2、 部分核心内容展示

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

在这里插入图片描述

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。

1、网络安全意识

img

2、Linux操作系统

img

3、WEB架构基础与HTTP协议

img

4、Web渗透测试

img

5、渗透测试案例分享

img

6、渗透测试实战技巧

图片

7、攻防对战实战

图片

8、CTF之MISC实战讲解

图片

3、适合学习的人群

‌一、基础适配人群‌

  1. ‌零基础转型者‌:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌;
  2. ‌开发/运维人员‌:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展‌或者转行就业;
  3. ‌应届毕业生‌:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期‌;

‌二、能力提升适配‌

1、‌技术爱好者‌:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌;

2、安全从业者‌:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌;

3、‌合规需求者‌:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传优快云,朋友们如果需要可以在下方优快云官方认证二维码免费领取【保证100%免费】

*技术爱好者**‌:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌;

2、安全从业者‌:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌;

3、‌合规需求者‌:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传优快云,朋友们如果需要可以在下方优快云官方认证二维码免费领取【保证100%免费】

img

【软考-软件设计师精华知识点笔记】考试大纲及题型介绍 前言 今年上半年参加了软件设计师考试,考完感觉稳了,考试内容与我学习的内容基本一致,因此感觉自己的笔记可以帮助其他准备考试的童鞋。 《软件设计师教程(第5版)》 + 真题 + 大纲 链接:https://pan.baidu.com/s/1P21GKMk8QP7XxSsU-TH9Cg?pwd=优快云 提取码:优快云 考试大纲及题型 考试总纲: 掌握计算机内的数据表示、算术和逻辑运算方法; 掌握相关的应用数学及离散数学基础知识; 掌握计算机体系结构以及各主要部件的性能和基本工作原理; ...... 阅读详情

相关推荐

【自学笔记】计算机视觉基础知识点总览-持续更新

提示:这里对文章进行总结:例如:以上就是今天要讲的内容,自学记录计算机视觉基础知识点总览。

2301_78806917的博客 2481

常见的10种算法

Hash,一般翻译做散列、杂凑,或音译为哈希,是一个典型的利用空间换取时间的算法,把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。如有一个学生信息表:学生的学号为:年纪+学院号+班级号+顺序排序号【如:19(年纪)+002(2号学院)+01(一班)+17(17号)---à190020117】类似于一个这样的信息,

zxf347085420的博客 2万+

王道计算机网络:完整笔记

基于《王道计算机网络》得出的学习笔记和总目录导航

修行的凡人的博客 2162

基础夯实:基础数据结构与算法(二)

基础夯实:基础数据结构与算法(二)常见的10种算法1、递归算法例题1:计算n!例题2:斐波那契数列例题3:递归将整形数字转换为字符串例题4:汉诺塔例题5:猴子吃桃例题6:N皇后问题2、排序算法冒泡排序:快速排序:3、二分查找算法4、搜索算法5、哈希算法6、贪心算法7、分治算法求x的n次幂归并排序8、回溯算法9、动态规划(DP)算法10、字符串匹配算法参考文献 上一章我们说了常见的10种数据结构,接下来我们说常见的10种算法。 上一章地址:基础夯实:基础数据结构与算法(一),不怎么清楚的可以去瞅瞅。 常见的1

熊泽-学习中的苦与乐 4364

Informer复现 -- 完整模型

有了数据和核心的ProbAttention,接下来就可以复现完整的Informer(图1)了。图1:Informer模型结构[1]如果对图1还不太熟悉的同学,可以参考图2。由图2可知,informer与Transformer之间的差异并不大。主要区别是ProbAttention和可能的encoder最后一层的conv(源代码中用来distil)。图2:参考Transformer画的Informer模型结构。

AI_daily的博客 3492

利用CubeMX复现正点原子TFTLCD驱动例程

①准备delay.c、delay.h、sys.c和sys.h四个文件。FMC的工作原理暂时先欠着,先记录一下CRUD的过程。这里我们使用的是BANK1 的第一个分区。点击 Configuration->FMC。②把fmc自动生成的代码注释掉一部分。配置参数如下图 17.5.1。③这个printf语句要屏蔽掉。选项卡之下配置相关参数。④整体代码,按需裁剪。

qq_59757948的博客 1613

什么是算法

计算程序。

顺其自然~专栏 2万+

用LangFuse+LangChain打造可观测的AI应用:从埋点到成本监控实战

本文详细介绍了如何将开源可观测性平台LangFuse深度集成到基于LangChain构建的AI应用中,特别是电商客服机器人场景。通过从基础SDK集成、提示词管理到成本监控的完整实战,帮助开发者实现对LLM应用内部工作流的清晰追踪、问题排查与费用分析,从而打造稳定、可控的生产级AI应用。

dapp9builder的博客 711

什么是算法?读完这篇文章你就知道了

本文从算法的基本定义出发,详细解读了算法的发展历程、主要特征、衡量指标和算法设计的基本方法,供大家学习参考。

weixin_46880696的博客 8646

Qt Tab Widget 实战:如何打造一个可动态增删的标签页管理器(附完整代码)

本文深入探讨了使用Qt框架中的Tab Widget控件构建动态标签页管理器的实战方法。通过分析动态增删的核心挑战,提供了完整的C++代码示例,涵盖信号槽机制、页面生命周期管理、上下文菜单实现以及状态持久化等关键功能,帮助开发者打造高效、用户友好的桌面应用界面。

bb456的博客 1043

6、高通8155座舱平台--摄像头系统

在项目中遇到过,很多从手机转过来的工程师,上来就按手机那套调Camera,结果发现根本跑不通——为什么?我踩过这个坑——一开始想靠软件打时间戳来对齐,结果发现两个sensor的曝光时间不一样,时间戳根本对不上。我记得第一次调AWB时,怎么调颜色都不对,后来发现是BLC的参数没配好——黑电平偏了,后面所有颜色校正都是错的。上层应用说「我要拍张照」,HAL把它翻译成「ISP你给我处理这帧数据,sensor你给我曝光一次」。8155上推荐用camx,它是高通新一代的Camera框架,性能更好,而且支持多路同步。

woailuojp的博客 59

计算机算法核心知识点整理|个人精炼笔记,面试刷题直接背

本文是一篇计算机算法核心知识点的整理笔记,主要涵盖算法基础概念、蛮力法、减治法和分治法等内容。首先介绍了算法的定义、描述方式(伪代码)和分析方法(时间/空间效率),并列举了排序、查找、字符串处理等常见问题类型。接着重点讲解了蛮力法及其典型应用:选择排序、冒泡排序、顺序查找、字符串匹配算法,以及最近对问题和凸包问题的蛮力解法。最后简要提及减治法和分治法,包括插入排序、拓扑排序、折半查找、合并排序和快速排序等典型算法。文章采用伪代码和图示辅助说明,适合作为算法学习和面试准备的参考资料。

m0_71746416的博客 193

使用RV1126实现人脸识别——将Facenet模型转换为RKNN模型

在本文中,我们将探讨如何在RV1126芯片上实现人脸识别,并将Facenet模型转换为RKNN(Rockchip Neural Network)模型,以在RV1126上进行高效的人脸识别。Fine-tuning是指在预训练模型的基础上,使用自己的数据集进行进一步训练,以适应特定的任务。同时,我们需要下载Facenet模型的预训练权重,这些权重将作为我们的基础模型。综上所述,我们详细介绍了如何在RV1126上实现人脸识别,并将Facenet模型转换为RKNN模型。方法将模型导出为RKNN格式的文件。

code_program481的博客 1524

计算机算法核心知识点梳理|个人学习笔记(基础 + 高频考点)

这篇文章是计算机算法核心知识点的学习笔记,主要梳理了基础和高频考点内容。全文分为五章:第一章绪论介绍算法的基本概念、描述方法和分析要素,以及排序、查找、字符串处理等常见问题类型;第二章简要提及算法效率分析基础;第三章重点讲解蛮力法,包括选择排序、冒泡排序、顺序查找、字符串匹配、最近对问题和凸包问题的蛮力解法;第四章探讨减治法,涵盖插入排序、拓扑排序、折半查找等经典算法;第五章介绍分治法,重点分析合并排序和快速排序两种典型算法实现。文章通过定义描述和伪代码示例,对各类基础算法进行了系统归纳,适合作为算法学习的

m0_56146626的博客 258

C语言实现惯性导航初始对准全部核心代码

惯性导航初始对准包括间接粗对准和卡尔曼滤波精对准,其中。为基于卡尔曼滤波的精对准,其中。

十八与她的博客 2283

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

6.3 Python 实例9-基本统计值计算

本文内容为北京理工大学Python慕课课程的课程讲义,将其整理为OneNote笔记同时添加了本人上课时的课堂笔记,且主页中的思维导图就是根据课件内容整理而来, 为了方便大家和自己查看,特将此上传到优快云博文中, 源文件已经上传到我的资源中,有需要的可以去看看, 我主页中的思维导图中内容大多从我的笔记中整理而来,相应技巧可在笔记中查找原题, 有兴趣的可以去 我的主页了解更多计算机学科的精品思维导图整理 本文可以转载,但请注明来处,觉得整理的不错的小伙伴可以点赞关注支持一下哦! 博客中思维导图的...

孤柒的博客 1628

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

4.10 数值分析: 牛顿迭代法的变形

本文内容为东北大学数值分析国家精品慕课课程的课程讲义,将其整理为OneNote笔记同时添加了本人上课时的课堂笔记,且主页中的思维导图就是根据课件内容整理而来, 为了方便大家和自己查看,特将此上传到优快云博文中, 源文件已经上传到我的资源中,有需要的可以去看看, 我主页中的思维导图中内容大多从我的笔记中整理而来,相应技巧可在笔记中查找原题, 有兴趣的可以去 我的主页了解更多计算机学科的精品思维导图整理 本文可以转载,但请注明来处,觉得整理的不错的小伙伴可以点赞关注支持一下哦! 博客中思维导图的...

孤柒的博客 1040

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

深度学习工具包 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")

考研408 王道计算机考研 (初试/复试) 网课笔记总结

计算机(初试+复试)笔记总结:408、软件工程 笔记导航🚥🚥🚥 🥬 数据结构与算法 考研速成 - 知识点精炼 🥕 计算机网络 考研速成 - 知识点精炼 🥪 操作系统 考研速成 - 知识点精炼 🍊 计算机组成原理 考研速成 - 知识点精炼 🍒 软件工程 考研复试速成 - 知识点精炼 如果本篇文章对大家起到帮助的话,跪求各位帅哥美女们,求赞👍 、求收藏、求关注! 你必考上研究生!我说的,耶稣来了也拦不住!😀😀😀

clzZ2的博客 5万+

【粉丝福利社】算法竞赛入门笔记

算法是计算机科学的核心,也是构建数字世界的基石。在众多计算机相关赛事中,算法竞赛以其高含金量和挑战性著称,例如中学生的NOI信息学竞赛、大学生的ICPC/CCPC赛事以及蓝桥杯大赛、天梯赛等。特别是对于大学生来说,拥有算法竞赛的经历和奖项不仅能够显著提升个人简历的质量,还能为未来的职业发展奠定坚实的基础。进入大学之前,我没有任何编程经验。经过近两年的努力,我有幸在算法竞赛中取得了不错的成绩,并在退役后帮助许多同学一起学习并获奖。在这个过程中,我积累了大量关于算法和数据结构的学习心得。

愚公智库 13万+

计算机二级C语言知识点

计算机二级知识点 数据结构 树与二叉树 满二叉树是指除最后一层外,每一层上的所有结点都有两个子结点的二叉树。深度为n的满二叉树的结点个数为2n个,第n层的结点数为2n-1个。 二叉树中只有满二叉树与完全二叉树可以按层次进行顺序存储,满二叉树也是完全二叉树,而非完全二叉树不能采用顺序存储结构。 多重链表:结点中具有多个指针域的链表(双向链表有两个指针域,属于线性结构) 排序二叉树:设非空二叉树的所有子树中,其左子树上的结点值均小于根节点值,而右子树上的结点值均不小于根节点值,则称该二叉树为排序

qq_58233395的博客 8808

中职计算机基础知识点笔记5

计算机基础(五)   3.1计算机网络概述     3.1.1计算机网络概念和功能 计算机网络就是将地理位置不同且具有独立功能的多台计算机及其外部设备,通过通信设备和通信线路连接起来,在网络操作系统、网络管理软件、网络通信协议等网络软件的管理和协调下实现彼此间信息传递和资源共享的系统。 由此,可以得到许多结论: (1)计算机网络存在的主要目的在于解决计算机之间的数据通信和资源共享; (2)计算机网络系统是一个复杂的软硬件系统,不仅包括计算机

weixin_45861032的博客 4637

苦逼计算机类大学生的编程笔记

常言道,“ 鲲之大,一锅炖不下 ”;笔记之多,一文也写不尽。且先说一说我记笔记的心酸历程。相信很多小伙伴在刚开始学习编程的时候,都碰到过大大小小很多坑。像 Lin 的话,就在记编程笔记上踩过不少坑。在刚上大一那会儿,我还比较懵懂🤡,当时一口气就买了一叠“ 漂亮 ”的笔记本,打算像高三一样,记上满满当当的优美的笔记。因为我本人有点儿强迫症,在记笔记这件事儿上,只要笔记里哪部分写得不好看了,我都会发自心底地“ 厌恶 ”我的笔记;哪曾想,编程笔记上一堆代码,手写起来根本没法看,于是用小本本记笔记就哒咩了。

Skylar Lin的博客 144
上一篇: 【懒人版】labview 软件加密+试用期限制+绑定硬件
下一篇: 黑客入门技能
披荆斩棘的GG
博客等级 码龄4年 1万+粉丝 2960原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值