可怕!仅需两行代码,就能窃取你在 Windows PC 上输入/查看的所有内容

python黑客代码雨:实现包括中文等的多种语言,全屏幕显示,从根本解决中文不显示问题,有完整可执行代码 阅读详情

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

编译 | 郑丽媛

出品 | 程序人生(ID:coder_life)

上个月,微软发布了一个 Windows PC 新品牌 Copilot+PC,强调它能实现很多 PC 过往无法实现的功能——例如 Recall 功能(回顾),让电脑拥有”记忆“能力。

据介绍,借助 Recall,Copilot+ PC 可以像人类一样根据每个人的经历所特有的关系和关联来组织信息:你可以跨时间滚动,在任何应用程序、网站、文档等的时间轴中查找所需的内容;还能通过快照与 screenray 进行直观交互,使用基于对象识别的建议操作采取下一步行动。

看起来似乎不错?然而,网络安全专家 Kevin Beaumont 自微软官宣后第二天便直言,“这个新 Recall 功能,从根本上破坏了 Windows 的安全性——该功能的设计初衷,就是不断截取你正在做的事情。”

微软在常见问题中提到,“Recall 并不执行内容管理,也不会隐藏密码或财务账号等信息”,信息确实是存储在本地的,但 Kevin Beaumont 表示:比起像 Redline 那样窃取本地浏览器密码库,Recall 能直接窃取用户过去 3 个月在一数据库中输入和查看的所有信息。

不过以上看法,仅限于微软给出的介绍。大约一周前,Kevin Beaumont 用上了 Copilot+ 软件,也亲身体验了这项功能——而在这之后,他写了一篇博文:《现在,仅需两行代码,就能在 Copilot+ Recall 的灾难中窃取你在 Windows PC 上输入或查看的所有内容》。

b3205e2b1fa7d195d61b6ba44d071b20.png

db313a2ddadcc6781d1d53daa7ba18c6.png

Windows 本该是一种个人体验,但微软打破了这种信念

以下为译文:

我最近写过一篇关于 Copilot+ Recall 的文章,用微软 CEO 萨提亚-纳德拉的话说,这是 Windows 11 的一项新功能,它能不断对你的 PC 进行“截图”,并将其制作成一个可即时搜索的数据库,记录你所见过的一切。他美其名曰:这是你 PC 生活的照相记忆。

大约一周前,我拿到了 Copilot+ 软件,并在没有 NPU 的系统上将其运行起来。

首先,我想看看这项功能的评价如何,毕竟了解背景情况还是很重要的。而我的搜索结果是:铺天盖地的负面反应。或许微软领导层会对此大吃一惊,但几乎所有人都不会感到意外。

表面上看,如果你身为公司经理,有太多事要做但时间又太少,那这个功能非常好,因为你可以立刻搜索到一个月前你正在做的关于某个主题的事情;但实际上,这类受众的需求在 Windows 用户群中只占非常小的一部分。而且在我看来,微软直接在现实世界而非执行层面谈论截图的事情,基本上就是在打客户的脸,甚至算得上是一次罕见的失误。

我认为,Recall 完全是一个有趣、但可有可无的功能。初始用户群很小,因此需要非常谨慎的沟通、网络安全、工程设计和最终实现——但很显然,目前 Copilot+ Recall 并不具备这些条件,这些工作微软还没有做好。

对大多数 Windows 用户来说,他们只希望在 PC 上玩游戏、看影片、过正常人的生活,并不想有访问权限的人能看见他们的“照相记忆”……这对很多人来说是非常可怕的。Windows 本该是一种个人体验,但微软打破了这种信念。

在我看来,微软很可能会因为这套系统的实施和推出,以 AI 为名而“焚烧”整个 Copilot 品牌,也对客户造成了真正伤害——这从根本上打破了 Windows 的安全承诺。

接下来,我将根据网上评论,把这部分内容整理成问答形式,因为看到有些人逃避面对这些问题真的很有趣。

12310509c480a2140adb33f79ec37d03.png

“微软在 Copilot 的安全性方面误导了用户”

Q:数据完全是在你的笔记本电脑上本地处理的,对吗?

A:是的!微软很聪明,有一整套 Azure AI 等代码子系统在边缘进行处理。

Q:很好,所以黑客和恶意软件无法访问,对吗?

A:不,他们可以。

Q:但它是加密的?

A:当你登录电脑并运行软件时,系统会为您解密。静态加密只在有人到你家偷走你的笔记本电脑时才有用,但黑客并不是这样犯罪的。例如,自动窃取用户名和密码的 InfoStealer 木马十多年来一直是个大问题,而现在这些木马可以轻易修改为窃取 Recall 记录。

Q:可 BBC 都说了黑客无法远程访问数据。

A:因为 BBC 引用的是微软的说法,但这个说法是错误的,数据可以被远程访问。

d33cdeaa0134a50020b22a014734895d.png

不知道为什么,微软对记者的说法是:攻击者必须先获得笔记本电脑的物理访问权限并登录,才能获取截图。

15afcc2b7788d8d59877f4ad2fb6c66d.png

Q:微软还说,只有用户本人才能访问数据?

A:事实并非如此,我可以证明再同一设备上的另一个用户帐户可以访问数据库。

Q:那它(Recall)是如何工作的?

A:每隔几秒钟就截屏,然后 Azure AI 会自动对这些截图进行 OCR 处理,并将其写入用户文件夹中的 SQLite 数据库——该数据库文件以纯文本形式记录了你在电脑上浏览过的所有内容,而 OCR 是查看图像并提取字母的过程。

Q:这个数据库是什么样的?

A:

2e50ff8471a3cf7a2efe6ca0f87010d2.png

Q:要如何获取数据库文件?

A:它们只是 AppData 中的文件,就在新的 CoreAIPlatform 文件夹中。

Q:但它是高度加密的,应该没有人可以访问吧?

A:下面是两名微软员工访问 Recall 数据库文件夹的视频,其中就有 SQLite 数据库,看看他们的黑客技术如何(一名真正的网络攻击者可能都不需要花这么长时间)。

所以我说这是十年来最蠢的网络安全举措,完全没有夸大其词。

Q:……但是,普通用户不会以管理员身份运行!

A:根据微软官方网站,在 Recall 功能的推广页面上,他们就是以管理员身份运行的:

dd3ab924123a90ca3b9b29241c838b50.png

事实上,你甚至都不需要成为管理员就可以读取数据库

Q:但视频中也出现了 UAC 提示,这算安全边界吧。

A:根据微软自己的官网介绍,UAC 并不是安全边界:

e79d1f5178b2976fc4c683faacd89464.png

Q:那么......Recall 的安全保障在哪儿?

A:微软做过很多尝试,但在现实世界中都无法正常工作,因为有很多漏洞,这些漏洞大到你甚至可以开飞机穿过去了。

Q:它能自动识别,然后不去截屏且不用 OCR 处理财务信息之类的东西吗?

A:不能,微软自己都说了:请注意,Recall 不执行内容管理。

f335fde35b81b2a3edece73bb099626e.png

Q:这个 Recall 数据库有多大?

A:它被压缩得很好,几天的记录也只有约 90kb。因此使用普通宽带连接,只需几秒钟就能把你几个月的文件和数据都传输出去。

Q:搜索速度有多快?

A:在设备上非常快。

Q:你是否泄露过自己的 Recall 数据库?

A:是的,我已经实现了自动外渗,并制作了一个网站,你可以上传数据库并立即搜索。

在微软推出该功能之前,我故意隐瞒了技术细节,因为我想给他们时间做点什么。实际上,我有一大堆东西要展示,而且我认为当这些东西普遍可用时,更广泛的网络社区将从中获得无穷乐趣——但同时,我也认为这很可悲,因为现实世界中的危害将接踵而至。

Q:数据库中有哪些内容?

A:用户浏览过的所有内容,按应用排序;用户看过的每一段文字,但有一些例外(例如,微软 Edge 浏览器的“InPrivate”模式被排除在外,但谷歌 Chrome 没有);每次用户交互,例如最小化窗口;有一个用于用户活动的 API,第三方应用程序可以插入以丰富数据,也可以查看存储数据;它还会存储你访问过的所有网站,即使是第三方网站。

Q:如果我删除了邮件/WhatsApp/Signal/Teams 的消息,会对应地从 Recall 中删除吗?

A:不会,它将无限期地保留在数据库中。

Q:那自动删除的信息会从 Recall 中删除吗?

A:也不会,它们会被 Recall 抓取并保留。

Q:但如果黑客获得了在你电脑上运行代码的权限,就已经完蛋了!

A:如果你运行的是类似信息窃取程序的东西,目前它们会自动搜刮像凭证存储这样的东西。黑客会大规模搜索而不是接触每个受害者(因为受害者太多了),然后在网上市场转售。、

然而,Recall 能让黑客在几秒钟内自动搜索你浏览过的所有内容。

在使用现成的信息窃取程序进行测试时,我用了 Microsoft Defender for Endpoint,它检测到了这个现成的信息窃取程序,但当自动修复启动时(花了十多分钟),我的 Recall 数据早已不复存在。

Q:这是否会导致大量网站数据外泄?

A:肯定会。下一次当你看到重大数据泄露事件时,如果客户数据在泄露事件中清晰可见,你会认为处理数据的公司有错,对吗?

但是,如果人们使用装有 Recall 的 Windows 设备访问服务/应用程序/任何东西,黑客就可以看到一切,并在运行服务的公司毫无察觉的情况下收集数据。因此,要为 AI 驱动的超级漏洞做好防范准备。

Q:所以说,微软是否在 Copilot 的安全性方面误导了 BBC?

A:是的。

Q:微软是否在 Copilot 的安全性方面误导了客户?

A:是的。他们将其描述为一种可选的体验,但实际上它是默认启用的,人们只能选择禁用它,这就是文字游戏。微软 CEO 在一次关于 Recall 的采访中提到了“截图”,但该产品本身只讲“快照”。不管出于什么原因,这又是文字游戏,因为“快照”实际上就是“截图”。

Q:如何禁用 Recall?

A:在开箱即用的兼容 Copilot+ 设备的初始设置中,你必须点击选项禁用 Recall;在企业中,你必须关闭 Recall,因为它默认是启用的:

f1d76c9f238b5d74fc56189438f69ee2.png

Q:对隐私有什么影响?这不是违反 GDPR(《通用数据保护条例》)吗?

A:我不是隐私保护人士,也不是法律人士。我想说的是,与我交谈过的隐私保护人士都非常担心这个功能带来的影响。另外从企业的角度来看,公司绝对应该考虑这样处理客户数据的风险,而微软作为数据处理者不会承担责任,因为这是在你设备上完成的,你要对此负责。

Q:微软是一家邪恶的大公司吗?

A:这说法太夸张了。他们是很聪明的人,但有时很聪明的人会犯错误,重要的是他们如何对待错误。

Q:微软应该怎么做?

A:在我看来,他们应该暂时撤回 Recall 功能,并在稍后日期将其重新设计为它应有的样子。他们还需要审查导致这种情况的内部决策,因为这种事情本不该发生。

坦白来讲,很少有用户会因为不能立即用 Recall 而失望,但如果微软什么都不做,直接发布、或只是稍作修改、或只想着绕开这个问题,他们反而会非常担心。

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

推荐阅读  点击标题可跳转

1、Python 项目工程化最佳实践

2、Python 可以比 C 还要快!

3、streamlit,一个超强的 Python 库

4、豆瓣8.9分的C++经典之作,免费送!

5、Python 3.12 版本有什么变化?

最近我开了一家淘宝店,名字叫【打破壁垒】,主打程序开发相关付费素材、工具的共享类商品,帮助大家降低试错和使用成本。欢迎大家关注。

52aa9ac70544626e4d2dcbd912a9d339.jpeg

长按扫描下方二维码,然后点击页面中的【打开淘宝】,即可进入店铺:

8dcf08034217dd739d11baa1b2e64245.png

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

👇关注我的公众号👇

告诉你更多细节干货

c4876a0305a6b5b44d7f0d6b6bf9e18d.jpeg

欢迎围观我的朋友圈

👆每天更新所想所悟

如何将照片从 iPhone 传输到 PC Windows 7/8/9/10/11? 本文提供8种将iPhone照片传输到Windows 7/8/9/10/11 PC的方法,包括使用Coolmuster iOS Assistant、Windows照片应用、自动播放/文件资源管理器、iCloud、OneDrive、百度云、电子邮件以及iTunes。这些方法适用于不同的用户需求,无论是通过数据线直接传输还是利用云服务无线同步,均旨在帮助用户轻松管理和备份其宝贵照片。 阅读详情

相关推荐

PC/SC简介以及相关开发

一、PC/SC规范介绍         PC/SC规范由微软公司与世界其它著名的智能卡厂商组成的PC/SC工作组提出的。PC/SC规范是一个基于WINDOWS平台的一个标准用户接口(API),提供了一个从个人电脑(Personal Computer)到智能卡(SmartCard)的整合环境,虽然到目前为止,WONDOWS是唯一支持PC/SC标准的操作系统平台,但由于WINDOWS的影响力,PC/

duanxingheng的专栏 5852

C++牛逼程序分享,装X必用

C++牛逼程序分享,装X必用

yaosichengalpha的博客 5507

windows协议不再续签,华为再无windows可用,将于四月发布鸿蒙PC

系统基于OpenHarmony深度定制,界面风格接近MacOS,主打跨设备协同(比如和手机、平板联动)。华为转向鸿蒙,既是制裁下的无奈,也是国产化的必经之路。鸿蒙PC能不能成,关键看生态——就像余承东说的:“用户规模上来了,开发者自然就跟进了。:界面简洁、跨终端协同强(类似苹果全家桶),政企市场可能先铺开(他们对软件需求单一,适配压力小)。:Windows生态太强,全球份额68%,鸿蒙得靠兼容技术过渡,后期还得拉拢开发者做原生应用。,加上深度集成AI大模型(比如DeepSeek),走“全国产”路线。

位卑未敢忘忧国,清澈的爱只为中国,支持有良心的国货企业,让有良心的中国企业走进大众视野! 4467

bat的黑客代码

今天给大家分享一个装逼代码

elsfkyxj的博客 1万+

SourceInsight与PC-LINT集成进行代码静态分析

        Source Insight是个功能强大的源代码编辑、浏览工具,支持多种开发语言(java,c,c++等等),提供快捷方便的定位、查找变量和函数的功能,能以彩色显示方式区分全局变量、函数、注释、宏等,一目了然。Source Insight是一个Windows平台下的共享软件。        PC-LINT是C/C++软件代码静态分析工具,能够帮你在程序动态测试之前发现编码错误,

objects的专栏 1万+

用python实现代码雨(电影黑客帝国里的效果,代码可直接运行)

用python实现代码雨: # -*- coding:utf-8 -*- import random import pygame from pygame.locals import * from sys import exit PANEL_width = 1920 PANEL_highly = 1080 FONT_PX = 40 pygame.init() # 创建一个可视窗口, 如果不想全屏运行,可以把 FULLSCREEN 参数去掉 winSur = pygame.display.set_mode

数据知道的博客 4万+

超全面黑客命令大汇总,cmd与net命令

超全面黑客命令大汇总,cmd与net命令

yaosichengalpha的博客 4076

Android 白名单保活实战:主流厂商适配指南

本文详细解析了Android应用白名单保活的实战策略,重点针对华为、小米、OPPO、vivo等主流厂商的系统特性,提供了精准的后台设置页面跳转适配方案。文章从基础的前台服务实现讲起,深入讲解了白名单的判断、申请与厂商适配的核心代码与避坑指南,旨在帮助开发者合规、稳定地提升应用后台存活率。

motor的博客 1862

“现在,仅需两行代码,就能窃取你在 Windows PC 上输入/查看的所有内容!”

编译 | 郑丽媛出品 | 程序人生(ID:coder_life)上个月,微软发布了一个 Windows PC 新品牌Copilot+PC,强调它能实现很多 PC 过往无法实现的功能——例如 Recall 功能(回顾),让电脑拥有”记忆“能力。据介绍,借助 Recall,Copilot+ PC 可以像人类一样根据每个人的经历所特有的关系和关联来组织信息:你可以跨时间滚动,在任何应用程序、网站、文档...

优快云资讯 1154

Halcon实战:基于图像清晰度自动筛选最佳对焦图片

本文详细介绍了如何使用Halcon实现基于图像清晰度的自动筛选最佳对焦图片技术。通过分析灰度值统计和标准差等核心指标,结合实战代码示例,帮助开发者高效处理工业检测中的对焦问题,提升自动化检测的准确性和效率。

weixin_27015733的博客 443

手把手教你用DCA1000EVM解析IWR6843毫米波雷达数据(附MATLAB代码)

本文提供了一份详尽的实战指南,手把手教你使用DCA1000EVM采集并解析TI毫米波雷达IWR6843的原始数据。内容涵盖硬件连接配置、mmWave Studio参数设置、LVDS数据流结构解析,并附有核心MATLAB代码,详细演示了从原始二进制文件到距离-速度谱的信号处理全链路,帮助开发者快速掌握数据解析与处理的关键步骤。

terraform7cloud的博客 228

两行Python代码实现微信自动回复

两行代码实现微信消息自动回复

weixin_73953650的博客 1411

S7-1200g2运动控制实战:从轴组配置到程序调试

本文详细介绍了S7-1200g2运动控制功能的实战应用,从轴组配置到程序调试的全流程。通过TIA Portal中的工艺对象配置,实现单轴、同步轴组等运动控制模型,并分享常见问题排查与性能优化经验,帮助工程师快速掌握中小型自动化设备的运动控制技术。

weixin_28698059的博客 589

如何删除PC上除Windows10操作系统之外的所有内容

有时您可能想要清理计算机,删除所有文件、应用程序和数据,但仍保持 Windows 10 完好无损。当您想要出售设备、将其交给其他人或只是清理空间而不丢失操作系统时,这可能很有用。在本指南中,您可以轻松删除电脑上除 Windows 10 或 11 操作系统之外的所有内容。然后您可以立即出售、捐赠或重复使用您的计算机。

Digitally的博客 1796

MATLAB - 使用 RRT 进行挖掘机运动规划

本例演示了如何使用运动规划器在包含障碍物的环境中为挖掘机规划路径。在此示例中,您将以运动树的简化形式为挖掘机建模,然后使用基于采样的运动规划器确定挖掘机在存在障碍物的两个姿势之间的可行路径。在 Simscape™ 多体™ 模型中模拟结果。

机器人控制与仿真应用 1852

【DaVinci Configurator专题】-5-通过Data Mapping自动创建CAN信号关联的Port并添加到APP SWC

目录 1 导入CAN Matrix变更后的Arxml文件 2 自动创建CAN信号关联的APP Port 3 CAN信号与App SWC的接口映射/连接 4 结尾 <--返回「实战篇」博文-总目录--> <--返回「Autosar从入门到精通-实战篇」专栏主页--> 关键词: DaVinci Developer DaVinci Configurator Pro ARXML AUTOSAR System Description Network Explorer 1

「汽车电子助手」的博客 5130

ThievingFox深度解析:静默窃取7大应用密码的终极Windows后渗透凭据收割神器

**ThievingFox** 是一款面向 Windows 后渗透场景的**凭据收割工具集**:它通过 COM 劫持、DLL 侧载和进程注入等技术,静默地从 7 类应用中窃取用户输入的密码——包括 KeePass、KeePassXC 两大密码管理器,Windows 登录界面(LogonUI)、UAC 弹窗(consent.exe)以及 mstsc、RDCMan、MobaXTerm 三大 RDP 远

gitblog_00142的博客 454

【GB28181】wvp-GB28181-pro部署安装教程(Ubuntu平台)

初始环境安装。

废人一枚的博客 5084

微信windows版_PC微信内测版,支持电脑端打开小程序了

微信PC内测版 WeChat2.7.0_beta,支持PC小程序微信 PC 版新版本中,支持打开聊天中分享的小程序以前在PC微信上经常可以看到:“收到一个小程序,请在手机上查看”,如下图所示的情况为了看到对方发的是什么内容,每次都得打开手机才能查看小程序!在获取到最新的内测版的安装包后,我赶紧更新去体验一下PC小程序安装了PC微信内测版后,在电脑上能直接使用小程序,不需要再打开手机查看了...

weixin_39934640的博客 1054

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

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Electron for鸿蒙pc项目实战之图片查看器应用

本项目展示了如何使用Electron框架开发一个功能完整的图片查看器应用,涵盖了文件操作、图片处理、用户交互等核心功能。通过对鸿蒙PC平台的适配,验证了Electron应用跨平台运行的可行性。项目代码结构清晰,注释完善,适合初学者学习Electron应用开发的基本概念和实践技巧,包括主进程与渲染进程的通信、UI设计、事件处理等关键技术点。

风中追风 2万+

Devexpress16.2.6破解工具

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

手机窃取PC信息,APT基础。

日前,国外安全研究者发现一个Android应用程序,能从链接的Windows机器上窃取信息。 样本:MD5:283d16309a5a35a13f8fa4c5e1ae01b1 名字:USBCleaver http://www.f-secure.com/weblog/archives/00002573.html 这东西很简单。主要的机制类似原来的U盘感染。 核心就是下载一个autorun.i

老王的智能终端安全专栏 1589

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

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

上一篇: 2024,Django 的最新趋势有哪些?
下一篇: Django 开发也在用 React!
codingpy
博客等级 码龄11年 1873粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值