2016 408 应用题

计组+OS——虚拟存储器之页式存储及分页存储真题解析 经常作为计组和操作系统综合考点出题 分页存储 真题 逻辑地址 物理地址 阅读详情

1

假设图中的H3访问Web服务器时S时,S为新建的TCP连接分配了20KB(K=1024)的接收缓存,最大段长MSS=1KB,平均往返时间RTT=200ms。H3建立连接时的初始序号为100,且持续以MSS大小的段向S发送数据,拥塞窗口初始阈值为32KB;S对收到的每个段进行确认,并通告新的接收窗口。假定TCP连接建立完成后,S端的TCP接收缓存仅有数据存入而无数据取出。请回答下列问题。
这一题考的是什么?考的是三报文握手和四报文分手。
(1)在TCP连接建立过程中,H3收到的S发送过来的第二次握手TCP段的SYN和ACK标志位的值分别是多少?确认序号是多少?
TCP连接的建立分以下三个阶段。首先,H3向Web服务器S发出连接请求报文段,这时首部中的同步位SYN=1,ACK=0,同时选择一个初始序号seq=100.TCP规定,SYN报文段(即SYN=1)的报文段不能携带数据,但是要消耗一个序号。接着,S收到连接请求报文段,为自己选择一个初始序号seq=y,向A发送确认。这个报文段SYN=1,ACK=1,seq=y,确认号ack是100+1=101.它不能携带数据,但是也要消耗一个序号。最后,H3收到S的确认报文段后,还要向S给出确认。这份确认报文段SYN=0,ACK=1,确认号ack=y+1,自己的序号seq=101.因此,第二次握手TCP段的SYN=1,ACK=1,确认序号是101。
(2)H3收到的第8个确认帧所通告的接收窗口是多少?此时H3的拥塞窗口变为多少?H3的发送窗口变为多少?
20-8=12,此时H3的拥塞窗口8
H3的发送窗口8
这里我犯的错误是我忽略了拥塞窗口初始就为1,每收到一个确认报文拥塞窗口就加1,H3收到了8个确认帧,那么拥塞窗口就变成8+1=9。
这里既然有拥塞窗口,那么很显然不是数据链路层的流量控制,而是传输层的流量控制。
那么发送窗口就等于min[rwnd,cwnd]

因特网建议标准定义了进行拥塞控制的四种算法:,满开始,拥塞避免,快重传和快恢复。
在TCP刚刚连接好并开始发送TCP报文段时,先令拥塞窗口cwnd=1,即一个最大报文段长度MSS。每收到一个对新报文段的确认后,将cwnd加1,即增大一个MSS。用这样的办法逐步增大发送方的cwnd。

算术移位会失去一定的位数,造成一些误差,为减小误差,要进行舍入操作。
如1000 0000左移一位,0000 0001右移一位。
首先左移一位代表乘2,右移一位代表除2。
其次移位包括算术移位和逻辑移位
其中算术移位针对带符号数,逻辑移位针对无符号数
逻辑移位较为简单,无论左移还是右移都只需要补0.
算术移位因为有符号的原因,所以左移是在右边补0,右移的话要在左边补上符号位,符号位是1就补1,符号位是0就补0。
(3)当H3的发送窗口等于0时,下一个待发送的数据段序号是多少?H3从发送第一个数据段到发送窗口等于0时刻为止,平均数据传输速率是多少?
首先拥塞窗口不可能为0,所以发送窗口为0的原因只能使接收窗口为0,也就是说发了20个MSS,缓存被耗尽了。
平均往返时间RTT=200ms,所以每隔200ms就完成以此满开始的循环。
200ms cwnd =1+1=2 ,rwnd=20-1=19
400ms cwnd=2+2=4,rwnd=19-2=17
600ms cwnd = 4+4=8,rwnd = 17-4=13
800ms cwnd = 8+8 = 16,rwnd=13-8=5
10000ms cwnd=16+16=32,rwnd
所以每秒发送20个MSS,也就是20KB/S
下一个待发送的数据段序号为:101+20K=20581
(4)
若H3与S之间通信已经结束,在t时刻H3请求断开该连接,则从t时刻起,S释放该连接的最短时间是多少?
这个地方有一个小陷阱,那就是服务器在发出确认报文段后,立刻发出连接释放报文段,就相当于有半个RTT重复了,所以最短时间是1.5个RTT,就是300ms。
这里考的应该是四报文分手吧。
第一步,客户机打算关闭连接时,向其TCP发送连接释放报文段,并停止发送数据,主动关闭TCP连接,该报文段的终止位FIN置1,序号seq=u,它等于前面已传送过的数据的最后一个字节的序号加1,FIN报文段即使不携带数据,也消耗掉一个序号。这时,TCP客户进程进入FIN-WAIT-1(终止等待1)状态。TCP是全双工的,既可以想象为一条TCP连接上有两条数据通路,发送FIN的一端不能再发送数据,即关闭了其中一条数据通路。但对方还可以发送数据。
第二步,服务器收到连接释放报文段后即发出确认,确认号ack=u+1,序号seq=v,等于它前面已传送的数据的最后一个字节的序号加1.然后服务器进入CLOSE-WAIT(关闭等待)状态。此时,从客户机到服务器这个方向的连接就释放了,TCP连接处于半关闭状态。但服务器若发送数据,客户机仍要接受,即从服务器到客户机这个方向的连接并未关闭。
第三步,若服务器已没有要向客户机发送的数据,就通知TCP释放连接,此时其发出FIN=1的连接释放报文段。设该报文段的序号为w(在半关闭状态服务器可能又发送了一些数据),
还须重复上次已发送的确认号ack=u+1.这时服务器进入LAST-ACK(最后确认)状态。
第四步。客户机收到连接释放报文段后,必须发出确认。把确认报文段中的确认位ACK置1;确认号ack=w+1,序号seq=u+1.此时TCP连接还未释放,必须经过时间等待计时器设置的时间2MSL(最长报文段寿命后),客户机才进入CLOSE(连接关闭)状态。

2

假定CPU主频为500MHz,CPI为4.设备D采用异步串行通信方式向主机传送七位ASCII字符,通信规程中有1位ji校验位和一位停止位,从D接受启动命令到字符送入I/O端口需要0.5ms。请回答下列问题,要求说明理由。
(1)每传送一个字符,在异步串行通信方式上共需传输多少位?在设备D持续工作过程中,每秒钟最多可向I/O端口送入多少个字符。
首先我需要了解ASCII码,
第一,一个ASCII码占据一个字节,其中首位是校验位,可能是ji校验,也可能是偶校验。
而对于汉字而言,一个汉字对应两个字节。
(2)
我需要了解异步串行通信方式
在这里插入图片描述
因为异步通信方式发送方和接收方要约定时间,因此必须有起始位和校验位,而同步通信方式因为建立了连接,所以就不需要起始位和校验位了。

所以每传送一个字符,就传送包括7位ASCII码,1位校验位,一位起始位和一位停止位,一共包括10位。
(2)设备D采用中断方式进行输入/输出,示意图如下。
在这里插入图片描述
我发现但凡是这种带图的题,如果看不懂图,那么必然抓瞎。
就比如这里,它问CPU需从D读取字符完成的时间是多少?
那我们就需要直到CPU从D读取一个字符需要多少时间?
首先从D接受启动命令到到字符送入I/O端口需要0.5ms,其次,CPU进行中断响应需要10个时钟周期。然后题中说第15条指令启动D工作指的是第15条指令后CPU就要开始读取下一个字符。因此读取一个CPU字符需要
50M*0.0005+10+15 * 4=25000+70=25070
完成1000个字符需要25070000个时钟周期。
中断响应阶段,CPU主要进行以下操作:关中断,保护断点和程序状态,识别中断源。

3

在这里插入图片描述

某计算机采用页式虚拟存储管理方式,按字节编址,虚拟地址为32位,物理地址为24位,页大小为8KB;TLB采用全相联映射;Cache数据区大小为64KB,按2路组相联方式组织,主存块大小为64B。存储访问过程的示意图如下。

(1)页大小为8KB,也就是块内地址有13位。所以虚页号有32-17=15位,物理块号有24-13=11位
Cache数据区大小为64KB,一个块大小为8KB,那么一个Cache就包括8个块,按2路组相联方式,那么就有4个组,所以组号为2位,块内地址还是13位,前面的标记就是24-2-13=9位
虚页号的标记就是32-13=19位。
因此A,B都是19位,C是11位,D是13位,E和H都是9位,F是2位,G是13位
B存放的是标记信息,是用来和虚地址的前一部分比较的。

标准答案

第1题中F和G我回答错了,因为我忽略了主存块大小为64B,我需要记住在虚拟地址到物理地址的映射中,页的大小起作用;在物理地址到Cache的映射中,主存块大小起作用。
因此G为6位,F代表组号,为64KB/64B/2=512,因此F为9位。
TLB标记字段B的内容是虚页号,表示该TLB项对应哪个虚页的页表项。
(2)将块号为4099的主存块装入到Cache中,所映射的Cache组号是多少?对应的H字段内容是什么?
块号从0开始,一个Cache有8个块,用4099去mod8,余1,因为用的是2路组相联,所以4099映射的组号为1,H字段为标记,这个不清楚

标准答案

这里我错的地方是4099mod8居然出错了,正确的余数为1。
由此可见,还是直接取对应的组号比较正确。4099是一个10进制数,其16进制表示为1003,它的二进制表示就是0001 0000 0000 0011
我们发现,这里的二进制一共才18位,可是在本题中cache的标记位+组号一共是9+9=18位,因此要在前面补上两位,之后再取组号就是0 0000 0011
因此Cache组号为3,对应H字段的内容也就是 0 0000 1000B
(3)Cache缺失处理的时间开销大还是缺页处理的时间开销大?
Cache缺失以后需要从主存中调取主存块,缺页以后需要进行的处理比较麻烦,所以应该是却也处理的时间开销大。

标准答案

其实这里我回想缺页处理的时候感觉很麻烦,所以才说缺页处理时间开销大,现在我要重新学习一下缺页处理。
在请求分页系统中,每当所要访问的页面不在内存中时,便产生一个缺页中断,请求操作系统将所缺的页调入内存。(这里有一点没说但很重要,所缺的页是从外存,也可以说磁盘中调入内存的)。此时应将缺页的进程阻塞(调页完成唤醒),若内存中有空闲块,则分配一个块,将要调入的页装入该块,并修改页表的相应页表项,若此时内存中没有空闲块,则要淘汰某页(若被淘汰页在内存期间被修改过,则要将其写回外存)。
缺页中断作为中断,同样要经历诸如保护CPU环境,分析中断原因,转入缺页中断处理程序,恢复CPU环境等几个步骤。但与一般的中断相比,它有以下两个明显的区别:
在指令执行期间而非一条指令执行完后产生和处理中断信号,属于内部中断。
一条指令在执行期间,可能产生多次缺页中断。

用简洁的话语来描述的话就是:缺页中断需要访问磁盘,而Cache缺失只需要访问主存即可。

(4)为什么Cache可以采用直写(write-through)策略,而修改页面内容时总是采用回写(write back)策略?直写的话cache中不会修改对应的内容,根据局部性原理,它有可能在接下来的操作中用到,这时再进行调入等操作比较麻烦。而回写法有助于在接下来的操作中使用到该内容。

标准答案:这里我把write-through,write-back和write-allocate,not-write-allocate弄混了。
因为采用直写策略时需要同时写快速存储器和慢速存储器,而写磁盘比写主存慢很多,所以在Cache-主存层次,Cache可以采用直写策略,而在主存-外存层次,修改页面内容时总是采用回写策略。

4

某进程调度程序采用基于优先数(priority)的调度策略。即选择优先数最小的进程运行,进程创建时由用户指定一个nice作为静态优先数。为了动态调整优先数,引入运行时间cpuTime和等待时间waitTime,初值均为0.进程处于执行态时,cpuTime定时加1,且waitTime置0;进程处于就绪态时,cpuTime置0,waitTime定时加1。
(1)若调度程序只将nice的值作为进程的优先数,即priority=nice,则可能会出现饥饿现象,为什么?
如果某些进程的nice值较大,就有可能一直得不到运行,也就进入了饥饿状态。
(2)使用nice,cpuTime和waitTime设计一种动态优先数计算方法,以避免产生饥饿现象,并说明waitTime的作用。
若要避免产生饥饿现象,就必须使那些nice值较大的进程也能得到运行。也就是说随着waitTime的不断增大,优先数应该逐渐变小,所以waitTime应该作为分母,以此来避免nice值较大的进程长期得不到运行。
(nice+cpuTime)/waitTime。
标准答案中给出了另一种计算方法,给了我一种新思路。即为:
priority=nice+k1cpuTime-k2waitTime;其中k1>0,k2>0,用来分别调整cpuTime和waitTime在priority中所占的比例。我以前一直以为可以用除法降低优先数,但这道题给了我一个新思路,减法也可以用来降低优先数。

5

某磁盘文件系统使用链接分配方式组织文件,簇大小为4KB。文件目录的每个目录项包括文件名和文件的第一个簇号,其他簇号存放在文件分配表FAT中。
(1)假定目录树如下图所示,各文件占用的簇号及顺序如下表所示,其中dir,dir1是目录,file1,file2是用户文件。请给出所有目录文件的内容。
dir中的内容是dir1,dir1中的内容是file1和file2。
看图看图还是看图,除了文件名还有簇号我怎么就把簇号给忘了呢?
文件名 簇号 文件名 簇号
dir1 48 file1 100
file2 200
记住一件事情,在有图的题中,不根据图来答题,死路一条
(2)若FAT的每个表项仅存放簇号,占2字节,则FAT的最大长度为多少字节?该文件系统支持的文件长度最大是多少?
这道题我没有思路,因此我翻阅了答案,以后要重点复习。
由于FAT的簇号最多为2个字节,即16比特,因此在FAT表中最多允许2^16(65536)个表项,一个FAT文件最多包含
2^16(65535)个簇,FAT的最大长度为
2^162B=128KB
文件的最大长度是2^16
4B=256MB。
(3)系统通过目录文件和FAT实现对文件的按名存取,说明file1的106,108两个簇号分别存放在FAT的哪个表项中。
什么叫按名存取?所谓的按名存取,就是在FAT的每个表项中存放下一个簇号。file1的簇号106存放在FAT的100号表项中,簇号108存放在FAT的106表项中。
(4)假设仅FAT和dir目录文件已读入内存,若需将文件dir/dir1/file1的第5000个字节读入内存,则要访问哪几个簇?
我们直到一个簇大小为4KB,就是4096字节,所以第5000个字节应该存放在file1的第2个簇中,也就是file1的第106号簇。
先在dir目录文件里找到dir1的簇号,然后读取48号簇,得到dir1目录文件,接着找到file1的第一个簇号,据此在FAT里查找file1的第5000个字节所在的簇号,最后访问磁盘中的该簇。因此,需要访问目录文件dir1所在的48号簇及文件file1的106号簇。

【计算机网络】传输层精选习题(含联考真题) 【计算机网络】网络层精选习题(含联考真题)传输层提供的服务、UDP协议、TCP协议 阅读详情

相关推荐

计算机考研408真题解析(2024-45 页式虚拟存储器地址转换与页表管理深度剖析)

本文针对2024年计算机考研408操作系统真题第45题,深入剖析了页式虚拟存储器中虚拟地址到物理地址的转换机制及页表管理。通过详细的计算过程、代码实现与易错点分析,旨在帮助读者全面理解虚拟内存的核心原理,提升操作系统理论与实践能力。

goodteacher408的博客 3039

滑动窗口

【2016年 题41】假设题33~41图中的H3访问Web服务器S时,S为新建的TCP连接分配了20 KB(K=1 024)的接收缓存,最大段长MSS=1 KB,平均往返时间RTT=200 ms。H3建立连接时的初始序号为100,且持续以MSS大小的段向S发送数据,拥塞窗口初始阈值为32 KB;S对收到的每个段进行确认,并通告新的接收窗口。假定TCP连接建立完成后,S端的TCP接收缓存仅有数据存入...

weixin_44737877的博客 6056

数字IC后端笔记-libcell命名规则与标准单元库介绍

ND3D1BWP13T40P140HVTND3D1BWP13T40P140HVTTSMC两种工艺,Metalization Stack的截面示意图:还有一层AP用来走RDL,RDL这层是最厚的一层,一般用于连接IO的bump,信号线基本上不会用这层绕线。

sinat_41774721的博客 2467

关于计算机网络的计算题(六)

1.在采用TCP连接的数据传输阶段,如果发送端的发送窗口值由1000变为2000,那么发送端在收到一个确认之前可以发送( )。 A.2000个报文段 B.2000B C.1000B D.1000个报文段 2.一个TCP连接的数据传输阶段,如果发送端的发送窗口值由2000变为3000,那么意味着发送端可以( )。 A. 在收到一个确认之前可以发送3000个TCP报文段 B.在收到一个确认之前可以发送1000B C.在收到一个确认之前可以发送3000B D.在收到一个确认之前可以发送2000个TCP报文段 3.

qq_44274905的博客 1万+

OpenClaw 完整命令文档(2026.3.13 最新版)

本文档为OpenClaw 2026.3.13通用版使用指南,包含核心命令大全。主要内容包括:1)基础安装/升级/卸载命令;2)ClawHub扩展安装命令(支持飞书/钉钉/企微等平台连接);3)Skills技能安装命令(实现聊天/搜索/记忆等功能);4)飞书机器人授权与配对命令;5)启动运行与配置检查命令;6)工作区与记忆管理命令;7)插件安全设置命令;8)调试日志命令;9)飞书机器人一键部署简化流程。文档特别强调飞书机器人部署需feishu扩展+对应技能+用户授权的完整配置,所有命令均需在终端执行,安装后需

MKliudan的专栏 1294

大模型在心律失常预测及治疗方案制定中的应用研究报告

目录一、引言1.1 研究背景与意义1.2 研究目的与方法1.3 研究创新点二、大模型技术概述2.1 大模型基本原理2.2 常见大模型类型及特点2.3 大模型在医疗领域的应用现状三、心律失常的术前预测与准备3.1 术前心律失常预测的重要性3.2 大模型在术前预测中的应用案例3.3 基于预测结果的术前准备方案四、术中监测与实时调整4.1 术中监测心律失常的方法与技术4.2 大模型辅助术中决策的机制4.3 实时调整手术方案的策略与实践五、术后恢复与并发症风险预测5.1 术后心律失常的监测与评估5.2 大模型预测术

嵌入式毕设/课设资料清单(速查手册·文档模板·题库,持续更新)→ 见最新文章 1599

多级队列应用题-2016年408习题

多级队列@(算法学习)3) 设有如下的火车车轨,入口与出口之间有n条轨道,列车行进方向从左至右,列车可以驶入任意一条轨道,现在有编号为1~9列列车,驶入的次序一次是8,4,2,5,3,9,1,6,7。若期望驶出的顺序是1~9,则n至少是:A. 2 B. 3 C. 4 D. 5分析:拿到这样的题目会有一个典型的错误方向。认为一个轨道只能装一列火车,实际不是。因为题目并未直接告知,需要自己推断,假

Bing's Blog 6832

从平衡车到寻迹小车:IMU963RA九轴陀螺仪实战避坑与四元数融合指南

本文详细解析了IMU963RA九轴陀螺仪在机器人姿态控制中的应用,重点探讨了从六轴升级到九轴系统的技术路径及四元数融合算法。通过实战案例,揭示了如何利用地磁计补偿陀螺积分漂移,并提供硬件集成、传感器校准及算法实现的完整解决方案,有效将8小时漂移控制在2度以内。

weixin_27219587的博客 255

2016年全国硕士研究生招生考试计算机学科专业基础试题(408)详细解析

2016年计算机408考研真题解析涵盖单链表插入、双向循环链表删除、栈的应用(火车调度)、三对角矩阵压缩存储、森林与树的关系、图的DFS与拓扑排序、Dijkstra算法、查找算法比较、B+树特性、外部排序选择、编译程序功能、数据类型转换及小端存储等核心知识点。试题注重基础概念与实际应用结合,体现对数据结构、算法、计算机组成原理和操作系统知识的综合考查。

小宝哥Code的专栏 364

龙虾机器人(OpenClaw)本地部署完全技术指南

在开始部署之前,我们需要明确部署的对象。通常所说的“龙虾机器人”指的是开源项目 OpenClaw(曾用名:Clawdbot、Moltbot)。它由程序员彼得·斯坦伯格开发,是一个开源的、可本地部署的通用型AI代理系统。与ChatGPT等对话式AI不同,OpenClaw被赋予了操作系统的权限:它可以执行终端命令、读写文件、操控浏览器、安装软件,甚至通过MCP协议调用外部工具。

huanghm88的专栏 2万+

最优控制 (Optimal Control) 算法详解及案例分析

最优控制是一种通过优化控制输入,使系统在满足约束条件的情况下达到最优性能的控制方法。其目标是最小化或最大化一个性能指标。

闲人编程的博客 2092

408-2016

408-2016

2301_76145947的博客 2767

Android12 适配 usb 触屏

在 Android 系统中,输入设备 IDC(Input Device Configuration)设备描述文件(.idc)是用于配置和定义输入设备行为和属性的文本文件。 该文件通常在`/system/usr/idc/` 或 `/vendor/usr/idc/`,具体位置因芯片厂商SDK而异。一般情况此类文件是预置到系统,开发者 root 权限才能修改这些文件。输入设备 IDC 设备描述文件在 Android 系统中起到了识别、配置、映射和定制输入设备的作用,使得系统能够准确解析和处理各种输入设备的事件,提

weixin_35723192的博客 1234

决战408:应用题

干!干的就是408

qiqi_liuliu的博客 1728

使用Matlab实现海洋监视雷达检测仿真

海洋监视雷达是一项重要的海洋探测技术,可以用于海上船只、飞机、潜艇等目标的探测和监视,具有广泛的应用价值。本篇文章将介绍如何使用Matlab进行海洋监视雷达的检测仿真,并提供相应的源代码。本篇文章提供了利用Matlab进行海洋监视雷达检测仿真的基本思路和代码实现。读者可以根据自己的需求进行修改和优化,以适应不同的应用场景。使用Matlab实现海洋监视雷达检测仿真。

2301_78484069的博客 450

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

408操作系统

这部分分值最高,且题型相对固定,必须优先拿下。根据文档统计数据,这些是出题频率最高的考点。这部分如果不复习,考试时很容易二选一选错。

qq_46118239的博客 953

深度学习工具包 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&#39;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(&#39;DeepLearnToolbox&#39;));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(&#39;state&#39;,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&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,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 = &#39;sigm&#39;;%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, &#39;Too big error&#39;);```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(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;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)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;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, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% 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&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 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, &#39;Too big error&#39;);```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(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % 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, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);%% 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(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

计算机考研专业课408什么意思,科普:考研408是什么意思

原标题:科普:考研408是什么意思如今计算机考研的热度越来越高,相信2021考研也有不少同学会选择计算机考研。那相信大家也发现现在越来越多的学校专业课采用了408,那么考研408是什么意思呢?一起来看看吧~考研408的意思就是你考研要考的专业课之一是408,那么什么是408计算机统考?计算机考研专业课在2009年年初实行了第一次统考,统考是国家教育部出题,全国统一考试,计算机考研统考编号是408,...

weixin_31584817的博客 3万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

计算机考研专业课408什么意思,考研408是什么意思

如今计算机考研的热度越来越高,相信2021考研也有不少同学会选择计算机考研。那相信大家也发现现在越来越多的学校专业课采用了408,那么考研408是什么意思呢?一起来看看吧~更多考研专硕复习资料、考研专硕试题、考研专硕复习策略等信息,请您关注浙江考研专硕备考。考研408的意思就是你考研要考的专业课之一是408,那么什么是408计算机统考?计算机考研专业课在2009年年初实行了第一次统考,统考是国家教...

weixin_35638218的博客 9950

2016年408考场思维复盘(普通人的思路)

瞎√⑧写的

2402_88307286的博客 893

陕西师大计算机考研专业考408嘛,2021考研计算机408考试趋势分析

想必很多考研的同学都了解到2020年考研有不少院校的计算机专业课改考统考408,原因很简单,就是去年招生政策里提到鼓励使用统考试卷。随着参加计算机统考的院校增加,会对我们2021考研计算机408考试有影响吗?试题的内容会不会有变化?下面我们通过对2009-2020的408试题分析,来分析2021年的变化趋势。一、试卷结构计算机统考试卷从2009-2020年试卷结构一直未发生变化,试卷共两大题型:单...

weixin_42506706的博客 708

2023考研王道计算机408数据结构+操作系统+计算机组成原理+计算机网络

2023考研王道计算机408数据结构+操作系统+计算机组成原理+计算机网络网盘链接: https://pan.baidu.com/s/1AuJdzuM9IO3yqhcDz4xBtg?pwd=asxt 提取码:asxt408不难,但是上130很难!六月,是408的季节~我觉得408跟数学是两套思维逻辑,408像极了学生物!学生物,大部分题其实就是背,越会背,考的越好!所以:反复多遍,滚动复习!反复多遍,滚动复习!反复多遍,滚动复习!(没毛病,计算机不就是硅基生物吗!我觉得计算机组成原理 == 硅基生物的本体,

weixin_46118419的博客 1万+

计算机专业课考试分析,2021计算机考研专业课408考试趋势分析

2021计算机考研有很多院校的专业课由自命题改成了统考,这是今年的计算机考研所必须了解的最新动态。随着这一最新变化,计算机考研专业课408的考试内容会有所变化吗?下面,海天考研就来简要分析一下2021计算机考研408专业课的考试趋势。一、试卷结构计算机统考试卷从2009-2020年试卷结构一直未发生变化,试卷共两大题型:单项选择题和综合应用题,其中单项选择题共40小题占80分,综合应用题共7小题占...

weixin_39525007的博客 808

计算机网络 408大纲,408计算机考研大纲.pdf

408计算机考研大纲2016计算机学科专业基础综合考试大纲I考试性质计算机学科专业基础综合考试是为高等院校和科研院所招收计算机科学与技术学科的硕士研究生而设置的具有选拔性质的联考科目, 其目的是科学、 公平、有效地测试考生掌握计算机科学与技术学科大学本科阶段专业知识、 基本理论、 基本方法的水平和分析问题、 解决问题的能力...

weixin_33036495的博客 1327

408计算机考研大纲 doc,2016年计算机专业统考408考研大纲.doc

2016考研计算机学科专业基础综合考试大纲I考试性质计算机学科专业基础综合考试是为高等院校和科研院所招收计算机科学与技术学科的硕士研究生而设置的具有选拔性质的联考科目,其目的是科学、公平、有效地测试考生掌握计算机科学与技术学科大学本科阶段专业知识、基本理论、基本方法的水平和分析问题、解决问题的能力,评价的标准是高等院校计算机科学与技术学科优秀本科毕业生所能达到的及格或及格以上水平,以利于各高等院校...

weixin_39986896的博客 347
上一篇: 2018 408应用题
下一篇: 2012 408选择题错题
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值