2G内存刚刚好 浅谈4G内存对笔记本的影响

阿里云ecs 8核 16G 内存 装有redis6 分配了3G内存,和2个tomcat 每个tomcat 4G 服务器反应迟钝,如何确认不是redis的问题 我们经常用redis 但遇到tomcat timeout的时候,如何确认不是redis的问题。 不能因为这个再去搞个redis 压力测试。有没有更省劲的方法来确认不是redis的问题 阅读详情
随着Intel P3x系列芯片组的发布,DDR3内存的普及日益临近, AMD K10系列处理器AM2+规格也正式支持DDR3内存,明年即将面临淘汰的DDRII内存是越来越便宜了。很多 笔记本用户在购买笔记本的时候都把是否支持4G内存作为一个总要的衡量标准。官方资料里面仅仅支持2G内存的笔记本型号往往这些用户被无情的抛弃,不作为选择对象考虑,事实上我们真的有必要使用到4G内存么?与2GB内存相比,4GB内存对于提高笔记本综合性能是否有帮助?会在接下来的文章中,笔者将为大家详细回答这些问题。

  单从内存容量上看,4GB内存无疑是很多笔记本玩家都渴望得到的梦幻搭配,不少笔记本发烧友也深信4GB内存能够进一步提高配置的笔记本综合性能。然而很多花了大价钱(2G单条笔记本内存2007年7月售价一千二百多)购买4GB笔记本内存的用户在实际使用中却遭遇到了一个非常尴尬的问题,那就是明明安装了2条2GB笔记本内存,为什么开机无法点亮笔记本,黑屏?即使能够通过自检开机,在Windows XP操作系统中能够使用的内存却只有2.7-3.2GB?

  开机无法点亮笔记本,是2G内存和主板不兼容问题,可是能顺利开机的笔记本,在经过三番五次更换硬件后,Windows XP系统下面内存容量“缩水”的情况丝毫没有得到改变,这究竟是什么原因呢?

  其实问题的根源并非内存质量和主板的硬件原因,而是这些用户在贸然购买4GB内存之前没有充分了解使用4GB内存所需要的软硬件支持,更没有对自己的笔记本配置进行认真评估,只是盲目地认为使用4GB内存能够带来更好的系统性能和游戏性能。事实上,尽管目前很多笔记本和主流操作系统都宣称能够支持4GB内存,但使用起来却远不如大家想象的那样简单。那么,究竟哪些主板和操作系统能够支持4GB内存?简单说来,造成4GB内存缩水的原因主要可以归结为硬件和软件两种,下面笔者来给分别解析:

  导致4GB内存缩水的硬件原因

  硬件原因其实指的就是笔记本上的移动主板芯片组。在很多人的印象中,主板能够支持多大容量的内存是由主板上的内存槽数量*单条内存容量决定的,这样的想法完全不正确。事实上,笔记本大部分只有2根内存插槽,所以组成4G内存的唯一选择就是安装2根2G单条的内存(4G单条内存并没有上市),因为2007年4月以来的内存一直走低,相信已经又不少网友把自己笔记本的内存升级到了2G,但是其中至少三成用户在升级笔记本内存时候遇到了兼容性问题,安装2条1G内存往往导致笔记本不能睡眠唤醒,无法开机,无故自动重启等奇怪问题。

市场上销售的创见 2G DDRII533(SO-DIMM)

  而笔记本主板对2G单条内存模块的兼容性要求比1G单条还要高不少。所以安装2条2G单条内存往往有必要在几个品牌产品之间选择一款跟自己的笔记本主板兼容的产品。实际情况是现在市场上2G内存现货寥寥无几,远没有像1G内存这样的替换余地,所以碰上不兼容问题基本上无法通过替换的方法很好的解决。

  就算运气非常好,购买的4G内存在笔记本上能够正确的识别开机。我们又会面对操作系统里面识别不足4G内存的问题。为什么4G内存Windows XP仅仅报告3.2G甚至更少的2.77G呢?因为决定32位系统下面4G内存地址空间并不是仅仅是系统内存独占的。4G内存地址空间是系统中所有存储器的编码范围,这里面既包括有内存编码,也包括了主板BIOS、显卡BIOS、显存以及其他PCI设备的存储器编码。这是因为Intel x86平台中使用了名为内存映射I/O(MMIO)的技术。

  提示:内存映射I/O是PCI规范的一部分,I/O设备被放置在内存空间而不是I/O空间。从处理器的角度看,内存映射I/O后系统设备访问起来和内存一样。这样访问AGP/PCI-E显卡上的帧缓存,BIOS,PCI设备就可以使用读写内存一样的汇编指令完成,简化了程序设计的难度和接口的复杂性。

Intel主板的内存映射官方PDF文档下载:点击下载

  以i945P主板为例,i945P芯片组只有32位地址总线,因此它对应的地址空间为4GB。表面上看似乎能够支持4GB容纳量的内存。但从下表中我们可以看到,芯片组支持的4GB地址空间中,有1MB分配给了DOS兼容存储区,1MB-2GB分配给了内存访问,而2GB-4GB的部分地址空间则优先分配给了显卡帧缓存,PCI/PCI-E设备和BIOS区域,而这一区域也被Intel称作内存映射I/O(MMIO)区域。那么,内存容量缩水与地址空间、MMIO区域又有什么联系吗?

  Intel TA 719文档给出的x86/x64系统典型内存地址分配表:

典型系统内存映射表

系统资源

占用容量

4G内存可用

3G内存可用

BIOS

1MB

 

3.99 GB

 

3.00 GB

本地APIC

4KB

芯片组保留

2MB

IO APIC

4KB

PCI设备

256MB

3.84 GB

3.00 GB

PCI Express设备

256MB

3.58 GB

3.00 GB

PCI设备(可选)

256MB

3.33 GB

3.00 GB

显示帧缓存

16MB

3.31 GB

2.85 GB

TSEG

1MB

3.30 GB

2.84 GB

操作系统,BIOS,软件可以自由使用的物理内存

 

3.30 GB

2.84 GB

  在i945PM/GM芯片组4GB的地址空间中,DOS兼容存储区占用的空间较小,对内存容量影响可以忽略不计,但MMIO区域由于占用了大量的地址空间,势必会影响实际内存的使用——当用户使用2GB以下容量的内存时,内存地址与MMIO区域基本不会发生重叠,不会影响内存的正常使用;但用户使用3GB以上内存时,势必会与MMIO区域重叠,而此时系统会优先将空间分配给MMIO区域,那么重叠部分的内存将无法被系统访问,进而造成内存容量丢失。

  说得再简单一点,假设笔记本芯片组的内存地址编码空间是一根4米深的水缸,物理内存、DOS兼容存储区和MMIO区域则是一定体积的水,油,泥沙。其中泥沙(DOS占用)占了最底下的1厘米高度,油(系统设备MMIO区域占用)飘在水面上占了75厘米,剩下的这些水(可用内存部分)才能够被完全容纳在水缸中,一旦加起来水油的深度之和超过了4米,那么溢出部分自然不能被利用。

 

由于4GB芯片组地址空间的限制(32条地址线的限制),Intel 945系列及以前的芯片组、NVIDIA nForce Go C6100/C6510,ATI Xpress 1150M,这些芯片组无论如何都不能完全支持4GB内存。具体原因有三方面:其一是芯片组没有设计剩余地址总线来供操作系统来调配;其二是不支持Memory Remap技术,而物理内存的编址必须是连续的,不能被割断;其三是系统开机时必需先从4GB的顶端地址(FFFF_FFFFh)读取BIOS数据, 这是IA32架构和4GB地址空间的局限。

  所以建议使用这些芯片组主板的用户不要安装4GB的内存,这样会有部分内存容量不能被操作系统所使用。

  经过以上介绍,相信大家已经基本了解了造成4GB内存缩水的硬件原因,那么,目前有哪些芯片组是能够顺利支持4GB内存的呢?在Intel笔记本平台上,Intel   PM965/GM965以及未来推出的P/G3系列芯片组都具有36位地址总线,地址空间达到了64GB。而在AMD平台上,M690T以上级别的芯片组同样支持64GB地址空间。

支持4G内存的笔记本芯片组一览表

   

芯片组

地址总线

最大地址空间

最大内存容量

Intel平台

Intel PM/GM965

36bit

64GB

8G

AMD平台

AMD M690T

36bit

64GB

8G

  需要注意的是,虽然从规格上看这些芯片组似乎能够顺利支持4GB内存,但事实上在默认情况下,芯片组仍然不能解决MMIO区域占用系统内存的问题。这就需要借助到BIOS中的Memory Remapping(内存重映射)技术。

  如图所示,在CPU寻址的物理空间中,MMIO空间仍然存在,然而,在实际插入的内存中,这部分MMIO空间对应的却是一部分重映射内存空间,在CPU想使用这部分内存的时候,CPU将寻址高于4GB内存的这部分空间,内存控制器再对其进行转换,再寻址到实际物理内存。

  比如当用户在965P主板上使用4GB内存时,位于4GB地址以下的MMIO区域仍然会占用部分内存空间,此时4GB的内存容量无法得到充分利用。通过内存重映射技术,我们可以将MMIO区域重新影射到4GB地址以上的空间,此时4GB以下地址将完全留给内存使用,保证所有内存都能够被系统正确识别。那么,我们应该如何开启内存重映射技术呢?一般说来,基于Intel GM965/PM965、AMD M690T及以上级别笔记本芯片组的主板在BIOS中都提供了类似“Memory Remapping Feature”这样的选项,大家只需设置为“Enable”即可启用此项功能。

  有些笔记本BIOS设置里面没得这个选项,那它多半是默认一直开启的,可以不用管它。如果很不幸BIOS设置没有这个选择而默认又没有开启。那只建议使用至多2G内存。

 

导致4GB内存缩水的软件原因

  除了芯片组方面的原因外,不同版本的操作系统对内存容量的支持也不尽相同,这就是我们所提到的造成4GB内存缩水的软件原因。从下表中我们可以看到,虽然Windows XP系统号称最大可支持4GB容量的内存,但实际上即使在主板打开内存重映射技术的前提下,Windows XP系统仍然不能完全识别4GB容量的内存。

微软给出的官方解释是因为32位驱动和软件兼容性支持,微软的技术文章地址见:Windows XP Service Pack 2由系统属性对话框和系统信息工具报告 RAM 的量小于您安装的容量

  windows VISTA 32位系统情况也跟XP类似,也有只有当用户使用类似Windows Server 2003这类面向高端服务器平台的32位系统由或者64位的Windows XP/Vista系统时,4GB内存的限制才会被完全解除。

  操作系统支持,要是64位操作系统,就支持4G以上内存。32位系统要真正完全支持物理地址扩展的系统才支持。

    以下是支持4G以上内存的系统,大家确认一下,以免因为系统不支持浪费了内存。

操作系统版本

最大支持内存

windows 2000 Advance Server SP4

8-32 GB

windows Server 2003 Enterprise R2

32-64GB

windows XP x64 Edition

32GB

windows Server 2003 x64 Edition

64-512GB

windows Vista x64 Edition/

8-128 GB

  从上面可以看出,希望兼容最多游戏软件,又要4G内存支持的笔记本用户。最理想是安装32位Windows Server 2003。因为有接近Windows XP的兼容性。同时可以识别出超过8G的内存。Windows 2000已经逐渐被淘汰,64位系统,Windows VISTA虽然版本更新,但是驱动和软件兼容性远远不如32位版Windows Server 2003。

 

4G内存系统实际性能分析

  经过前面的分析,相信大家对于4GB内存在实际使用中容量缩水的原因以及使用4GB内存时需要注意的问题已经有了初步的了解。看到这里,也许有网友会提出这样的观点:“虽然使用4GB内存需要大费周折,但如果能够明显提升笔记本电脑的系统整体性能,再麻烦我也愿意。”那么,4GB内存在实际使用中相对于是否能够有效笔记本电脑的系统性能呢?下面笔者在结合评测数据和自己的使用体验为大家进行简要的对比分析。

  以大家非常熟悉的网络游戏《魔兽世界》为例。当系统使用1GB内存时,游戏载入较为缓慢,进入游戏后一段时间内画面帧数不连续,游戏运行在主城过程中有较为明显的停顿感。从截图中可以看到游戏虽然平均fps很高,但是最小fps很低,这时候用户会有卡的感觉。

  将系统内存升级至2GB以后,游戏载入时间明显缩短,进入游戏后仅有很短暂的时候会出现帧数不连贯的现象,游戏过程中始终能够保持较为流畅的速度。而在系统内存容量增加至4GB后,此时在Windows XP系统中能够识别的内存容量只有3.25GB,为了完全使用4G内存,笔者采用了Windows VISTA Ultimate x64 Edition系统。运行同样的《魔兽世界》场景,系统载入时间与2GB内存基本相当,进入游戏后同样有短暂的不连续感,游戏帧数与使用2GB内存时没有明显差别。随后笔者又以《科林麦克雷·尘埃》作为测试对象,结果与《魔兽世界》基本一致。

  通过对上述现象进行分析我们可以清楚地看到,当内存容量从1GB升级至2GB时,系统的游戏性能得到了明显提升,载入时间和游戏速度都得到了很大的改善。不过在将内存容量增加至4GB以后,笔记本电脑的游戏性能与2GB内存时基本持平。换句话说,使用4GB内存对于提升游戏性能的帮助微乎其微。事实上,由于在Windows XP/VISTA等32位操作系统中,单个进程可调用的内存只有2GB左右,所以4GB内存是无法在大型软件和游戏中被充分利用。

 

进一步进行应用软件测试,笔者在运行着《魔兽世界》的情况下,切换出系统,启动PhotoShop CS,将分辨率为3072*2048 72dpi的PSD图片文件插值到300dpi,然后复制图层。1G物理内存在复制第三个图层的时候开始笔记本开始停止响应,2G物理内存情况下复制第六个图层的时候笔记本开始停止响应。等到系统恢复可操作时候,《魔兽世界》已经掉线。4G物理内存复制到第十个图层,系统依然可以正常操作。

  实际测试表明,只有在高端商用或专业设计等经常涉及多程序同时运行的复杂环境中,4GB内存在容量上的优势才能得到较好的发挥;而在运行单一程序时(包括游戏和其他应用程序),受32位操作系统的制约,4GB内存的性能表现与2GB内存基本处于同一水平。要解决单一程序访问内存容量的限制,用户只能选择更高级的32位或64操作系统。

  综合以上分析,我们可以得出以下结论:由于Intel 945PM/GM、NVIDIA C6100/C6150,ATI X1150M及以前推出的芯片组无法解决4GB地址空间的限制,因此正在使用这主板的用户使用4GB内存必然会造成部分内存容量无法被操作系统识别,损失的容量大约在750MB甚至1GB之间。另外,从软件来看,虽然目前主流的32位Windows XP/Vista系统从理论上能够支持4GB内存,但实际上他们仍然不能对4GB内存提供完美的支持,这同样会造成部分内存容量的“丢失”。因此,就目前的主流笔记本配置来看,尚不能满足4GB物理内存的最佳硬件要求。

  另一方面,虽然一部分高端用户可以通过购买最新的AMD和迅驰4笔记本、更换操作系统等一系列手段让笔记本电脑完全支持4GB内存,但一般游戏,视频,家用娱乐应用对大容量内存的利用也远不如我们想象的那样充分。在实际使用当中,1GB容量内存已经能够很好地满足大部分主流游戏的运行需要;即使是在Windows VISTA下运行《魔兽世界》、《科林麦克雷·尘埃》这类场景较大、模型较多的大型3D游戏,对内存的实际使用容量也只是在2GB左右。换句话说,就目前和未来一段时间的应用来看,2GB内存已经能够胜任包括VISTA下各种游戏的实际需要。与超过2GB的内存容量相比,处理器性能、显卡核心的性能以及显存容量、显存带宽等因素才是影响游戏,高清视频性能的瓶颈所在。

    当然,实际测试表明4GB内存对于提高系统在复杂应用环境(如出版级的图形处理)中的性能还有一定帮助的。但大家在选择4GB内存之前必须要做好相应的准备:

    一、在现有的32位Windows XP/Vista系统中,4GB内存不可避的存在一些兼容性问题或者出现内存容量丢失的情况;建议采用Server 2003或者64位系统。

    二、使用完4G完整容量,笔记本主板BIOS必须支持内存重映射技术。并且是Intel 965系列,AMD M690T或者NF570 MCP(笔记本尚未推出)以上北桥芯片组。

    满足这些条件,才能充分利用上4G内存,不会造成内存容量和资金的浪费。

 

app逆向分析案例-95分 先把justtrusmeplus打开设置好95分,开始抓包,得到结果为: https://www.95fenapp.com/api_goods/list/v3.0?is_all=1&keywords=%E7%A7%91%E6%AF%94& page=1&page_size=20 &publish_timestamp=0 &scene=2&scene_type=95fen_android_search_personal&sn=SearchList 阅读详情

相关推荐

别再死记硬背GNN公式了!用PyTorch Geometric从零实现一个GraphSAGE(附完整代码)

本文通过PyTorch Geometric从零实现GraphSAGE模型,深入解析图神经网络的核心原理与实战应用。文章提供完整代码示例,涵盖环境配置、邻居采样、信息聚合等关键步骤,帮助开发者掌握图表示学习技术,避免陷入公式推导的困境。适合希望将GNN应用于实际项目的中级开发者和学生。

weixin_42530570的博客 345

2核四线程内存4g的服务器可以干什么?

然而,值得注意的是,2核四线程内存4GB的服务器在面对高并发、大数据处理或资源密集型应用时,可能会显得力不从心。总的来说,2核四线程内存4GB的服务器并非无所不能,但它在许多实际场景中都表现出足够的效能,尤其对于初创企业、个人项目或者对性能要求不高的业务来说,无疑是一种经济高效的选择。在信息化社会,服务器作为数据和信息的处理中心,其配置的选择直接影响到系统的运行效率和稳定性。2核四线程的CPU搭配4GB内存的服务器,虽然在硬件规格上并不突出,但其性价比高,且能在许多场景下表现出良好的实用性。

wordpress建站知识,云计算知识分享 599

“开宝五子棋陪练”-首款开放智能的五子棋习题练习安卓应用

使用Kotlin语言以及Jetpack Compose UI库开发,主要就是写Composable函数,显示棋盘、棋子和一些按钮,响应用户的点击和滑动操作,以及保存和恢复数据。但我针对本应用是用于做题的特殊需求,对该算法库做了一个简单的JNI层封装,方便UI前端Kotlin代码的调用。

weixin_44120030的博客 2396

计算机内存条能装几个,4G内存条和2G内存条能不能装到一个电脑上?

4G内存条和2G内存条是可以同时装到一块主板正常使用的,但是这有几个前提条件:一是这两条内存必须同属同一类型,也就是说都是DDR4内存或都是DDR3内存,当然也必须都是台式机内存或笔记本电脑内存才行,否则别说使用了,连正常安装都无法实现。另外一点就是保证主板上有足够的内存插槽,现在大部分台式机主板都是标配四个内存插槽,笔记本电脑则一般是两个内存插槽,如果遇到那种内存直接焊在主板上的那种笔记本电脑你...

weixin_28826521的博客 1万+

单精度浮点数存储、双精度浮点数存储

单精度浮点数存储、双精度浮点数存储

fancynthia的博客 1305

TC387 MCMCAN Message RAM配置详解:Tx Buffer与Rx FIFO地址布局

在嵌入式CAN/CAN FD通信系统中,缓冲区和FIFO是数据收发的核心机制,而AURIX TC3xx系列单片机将这一机制集成在了MCMCAN模块专用的Message RAM中。这是一块由CAN控制器独占的内存区域,开发人员需要按照寄存器规范手动划分Tx Buffer、Rx FIFO、过滤元素等子区间。合理的RAM布局能确保不同功能区域互不重叠、有序排列,避免数据覆盖与错帧。通过掌握TXBC、RXF0C等配置寄存器的字段含义,结合实用的地址布局表,可以显著降低多节点CAN通信的调试成本。本内容面向使用TC3

weixin_34226182的博客 221

插一根16G的内存条,和插两根8G的到底有区别吗?

序言   随着时间的推移,时至今日,新一代Z170、B150主板平台价格已经较为平稳,且较亲民,已经逐渐取代了上一代的Z97与B85主板平台,随之而来的自然也有内存条的新老换岗。   新一代DDR4内存条功耗更低、发热更小、容量更大,而且现在在价格已经趋于平稳,显然DDR4内存的性价比更高。单条16GB内存条的价格是要低于2*8GB内存条的,那么想必更换平台,更换内存条的广大发烧友心中

AinUser的博客 2万+

STM32H7B0VBT6使用Free RTOS配置SD卡+Fatfs文件管理系统

STM32H7B0VBT6使用Free RTOS配置SD卡+Fatfs文件管理系统,记录配置过程

Jack的小窝 5942

计算机内存4g如何,电脑内存4G升到8G,只需三步,让你轻松搞定笔记本内存升级...

今日看点:电脑内存4G升到8G,只需三步,让你轻松搞定笔记本内存升级大家好,这期小编给大家讲讲怎么给笔记本升级电脑内存,小编现在用的是朋友的笔记本,小编发现朋友的笔记本的内存只有4GB。小编每次用photoshop跟PR两个软件之间切换的时候,就会提示内存不足,所以小编就想起来给你们做一期给笔记本升级电脑内存的文章。其实给笔记本升级电脑内存是很简单的一件事情,跟着小编一起来学习一些吧。笔记本电脑有...

weixin_36329368的博客 1万+

KEPServerEX作为MQTT客户端

打开软件: 测试没有连接上MQTT代理。

低码开发 1681

RHEL 8 与 RHEL 7 与 RHEL 6 的比较,RHEL 8强到离谱!

Red Hat Enterprise Linux(RHEL)是企业级 Linux 发行版中最受欢迎的操作系统之一。RHEL 为服务器和企业环境提供了高性能、稳定性和安全性,适用于各种数据中心和云计算平台。自 RHEL 6 以来,Red Hat 对其操作系统进行了多次重大更新,RHEL 7 和 RHEL 8 带来了许多新的特性、工具和架构变化。

网络技术联盟站 707

计算机内存4G,电脑内存4G和8G差距能有多大?

原标题:电脑内存4G和8G差距能有多大?请点上面如今内存的价格昂贵,好多人都看着500元左右的DDR4 8G内存不忍下手,虽然4G内存将近便宜一半,但是担心性能不够用,因此非常纠结,在这个情况下,到底是省钱买4G还是咬牙上8G成为大多数人的选择难题。 其实4G内存真的也够用,就算装win10也没什么问题,只不过要注意装32位的,装64位真的会比前者卡顿一些,毕竟微软给出32位系统不是没有道理,wi...

weixin_33406123的博客 5324

matlab 点云均值、中值、高斯滤波【2024最新版】

点云均值滤波、中值滤波、高斯滤波的matlab自带函数实现。博客长期更新,本文最近一次更新时间为:2024年11月9日。

点云侠的博客 5259

计算机内存4G,笔记本电脑4g内存和8g内存的区别

内存越大,能同时运行更多的任务,而且对于大型应用程序这也是满足程序正常运行的一个必要条件,程序在执行时,需要将程序本身以及数据先读入内存。如果内存不足,程序一次读不完时就会将数据临时放置在硬盘中,下面我们就一起去看看笔记本电脑4g内存和8g内存的具体相关介绍吧。笔记本电脑4g内存和8g内存1、体现在应用环境中;如果只打开10个网页进行测试,4g内存和8g内存的电脑不会有明显速度上的快慢。但是同时打...

weixin_39636696的博客 2320

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

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

卡顿老笔记本换新颜--增加内存条(内存条如何选购终极总结)

双通道的可以增加位Bit,两个256的插上就是128位,但通道的就只有64位,就是说单通道的还是只有一个卡槽在读取数据,而双通道的呢,就有两个卡槽在读取了,就理解成这个意思! ...

weixin_44017891的博客 3772

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

计算机配置的内存的容量为4g,安装内存4g2g可用的原因和处理

win7系统是许多用户至今仍旧在使用的系统之一,它不仅运行起来比较流畅,而且从实际使用角度看来,优势也较为明显,因此能够成功赢得用户青睐。但是在我们的日常生活中很有可能会碰到一些小故障,比如32位的4g内存可用内存只有2g,3g等等类似的问题就是令不少用户感觉到困扰的情况。那么今天针对这个问题,小编就为大家详细分析原因并给出解决方法。一、win7 32位的4g内存可用内存只有2g,3g的解决办法w...

weixin_35476698的博客 3370

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

云服务器2核4G和2核2G差别有多大?

结论:在选择云服务器配置时,2核4G和2核2G的主要区别在于内存大小,这直接影响了服务器的处理能力和运行效率。虽然两者的核心数相同,但4GB内存的2核服务器在处理多任务、运行内存消耗大的应用或数据库时,其性能表现通常优于2GB内存的配置。因此,选择2核4G还是2核2G,需要根据具体的业务需求、预期的流量、应用类型以及预算来决定。总结来说,2核4G和2核2G的差异主要体现在内存大小,对于处理复杂任务和大数据量的场景,2核4G有明显优势;在众多的配置选项中,2核4G和2核2G是最常见的两种配置。

wordpress建站知识,云计算知识分享 1438

笔记本有没有必要加内存条?

笔记本有没有必要加内存条? ​ 部分知识来源于网络 前言: 因为工作的原因,需要跑8G的虚拟机,而我笔记本的内存也就8G,也就不得不加内存条了,所以我了解了一下内存条的相关问题,总结一下,普及一下我的

jiege1123的博客 7819

科普文:软件架构方法论【2核4g服务器能支持多少人访问?4核16g服务器是否是2核4g服务器性能的4倍?】

摘要:本文介绍了2核4G和4核16G服务器的性能评估方法,基于Little定律(L=λ×W)进行并发数、响应时间和QPS的估算。2核4G服务器适合日均UV1-5万的轻量应用,支持20-150人并发,具体取决于应用类型(静态网页可达150人,动态电商约50人)。4核16G服务器性能提升2-3倍而非4倍,支持500-2500 QPS。性能评估需考虑CPU、内存、带宽等核心指标,以及应用架构优化(如缓存、CDN)。实际QPS可通过Little定律估算或压测工具实测,不同业务场景(静态网站、API服务等)的承载能力

为无为,事无事,味无味。 2268
上一篇: 迅速删除非法文件名代码的 0day 呵呵
下一篇: 有钱的人总没有时间,有时间的人总没有钱
freexploit
博客等级 码龄22年 315粉丝 778原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值