微软:VS Code已成为Java巨头!

Fleet vs VS Code终极对决:谁才是2023年最佳轻量级IDE? 本文深度对比了JetBrains Fleet与VS Code这两款轻量级IDE在2024年的核心差异。从核心理念、上手体验到编辑调试、生态协作等维度进行剖析,为开发者提供选型建议:追求极致定制与丰富生态选VS Code,看重开箱即用的智能体验与团队协作则选Fleet。 阅读详情

在Java领域,微软气候已成!时至今日,它已经成长为Java巨无霸。

12月5日,微软官方发布了一个里程碑式的消息:Visual Studio Code 已经拥有超过250万开发人员的社区。

250 万是一个相当大的成就。根据WordPress的托管解决方案服务商Kinsta统计,全球的Java开发人员大约有 900 ~ 1000 万。

据微软此前披露的数据,2021年,VS Code的Java开发者数量150万(同时还有 200 万 Python 开发者、 100 多万 C++ 开发者),2022年,Java开发者数量是200万。发展速度可谓相当迅猛。

那么,微软这些年究竟对VS Code做了什么?

做大Java,VS Code的三大阶段 

图片

初始版本,基本齐全

早在7年前,2016年9月,微软就已经向Visual Studio Code市场发布了Java语言支持扩展的初始版本,当时这个版本具备一些通用而有趣的功能列表,比如Maven项目、代码补全、Javadoc 悬停、代码导航、代码参考、高亮等,吸引了一波Java开发者的加入。

图片

此后,微软团队保持着每月1-2次的发布周期。

图片

里程碑:Red Hat加入,如虎添翼

2021年,VS Code迎来了一个新的里程碑事件: Language Support for Java™ by Red Hat 的1.0版本发布。RedHat开始进入微软的 Visual Studio Code,并发布了 Java 语言支持计划,为 Java 17 提供了官方支持。

微软开发部门高级项目经理Nick Zhu兴奋地在博客中写到:“我们相信这是Java对Visual Studio Code支持的一个重要里程碑,也是微软、Red Hat以及整个Visual Studio Code和Java社区多年合作的结果。”

图片

众所周知,VS Code对Java的支持来源于扩展 Extension Pack for Java,而Java™by Red Hat的语言支持是Java扩展包的一个基本部分,提供了Java代码编辑、完成、重构和导航等基本组件。

在过去的几年里,微软一直在与Red Hat密切合作,并为Java语言服务器添加新功能。并致力于提高语言服务器的稳定性。

此次1.0的发布,目标是在Visual StudioCode上提供最好的Java开发体验。

除了主要的Java17支持外,微软还基于语言服务器构建了各种Java扩展,并扩展了Visual Studio Code上的Java工具功能,包括项目管理、对Maven/Gradle的构建工具支持以及更好的测试支持。

图片

微软发布自己的Java21  

进入到2023年,微软继续加码Java,在10月发布了微软自己的Java21LTS版本。 

图片

微软 Java 工程组首席 PM 经理Bruno Borges表示:微软版本的 Java 21包括语言和虚拟机规范的更改,包含一系列使Java 21与许多以前版本不同的功能,当中就包括LLM的功能接入。

同时,人们也将此版本看成微软拥抱开源的又一案例。有分析师评论道:“随着 OpenJDK 21 向社区开放,微软可以将其作为自己的 JDK 的一部分自由发布,并提供 21 版必须提供的所有新功能,并受到其自己的长期许可计划的支持。”

微软的Java野心  未来6个月的路线图

背靠250万Java开发者,微软拥抱Java的力度进入了新阶段。为了纪念这一里程碑,这家软件巨头跟RedHat发布了未来六个月的路线图。

图片

首先在基础开发体验方面,该团队提出了对于Java 21的全面支持、增强的Java代码库导航、新的高级调试功能的几个方面,

除了 JDK 21的全面支持之外,VS Code还将致力于解决可靠性问题——据称,这是 Java 开发者最常提到的问题之一。Nick在博客中表示:“我们希望提高平台的稳定性,以便您可以专注于代码,而不必担心语言服务器故障或崩溃,或代码补齐故障。” 团队的目标是为用户构建稳定一致的编码体验。”

对于兼容性问题,VSCode将致力于改善 Gradle 开发人员体验并优化性能,比如项目导入成功率的问题。值得一提的是,微软刚在11月初宣布了开源项目Build Server for Gradle。Nick称将继续在此项目的基础上进行构建,以确保Visual Studio代码中的构建结果与运行Gradle命令获得的输出一致,这最终将提高可组合性。

增强的代码智能补齐也是一个值得期待的功能。这里,Copilot 终于在博客中出现了:

“在接下来的几个月中,我们将探索如何利用GitHub Copilot Chat来增强 Java 开发体验,无论是查找错误、编写单元测试、帮助调试代码、添加依赖项还是管理 Java 项目。” 

图片

博客最后还提到了12月正式可用的Github Copilot Chat。Nick称,开发人员很快将能够与GitHub Copilot和GitHub Copilot Chat集成,以扩展他们的功能。“Visual Studio Code Java也不例外,在接下来的几个月里,我们将探讨如何利用GitHub Copilot Chat来增强您的Java开发体验,无论是发现错误、编写单元测试、帮助调试代码、添加依赖项还是管理Java项目。”

图片

Java在微软的进化史

微软与Java的恩怨历史非常有时代色彩,从微软与Sun之间的碰撞,再到如今的坐拥250万之众的Java开发者,我们看到了巨头越来越明显的开源生态取向的转变。不管是Linux还是Java,都表现得非常积极。

图片

2008年开始,微软就开始了对Java的投入,包括搜索引擎Bing和微软云Azure,并后续在2013年,Azure 成为了第一个拥有OenJDK商业支持的云平台。

在纳德拉领导下,Azure进一步加快了开放的步伐,拓展了Eclipse和Intellij的Toolkit支持。并跟VMware建立了伙伴关系,2016年微软还加入了Eclipse基金会。

接下来2019年,微软各种重磅的Java发布:比如Azure Spring Apps、Red Hat JBoss EAP支持,2021年发布 Microsoft Build of OpenJDK,

2022年,微软宣布在内部已经有超过200万JVM在产品上运行,并发布了针对Azure App的Java17支持。

正如微软集团首席工程经理Martijn Verbur所说,“微软对开源生态系统,特别是Java的积极态度,表明了他们帮助开发人员实现更多目标的无限热情。”

为什么微软可以做到

从上述Java在微软的进化史就可以看出,微软Bing和Azure的发展,是驱使该公司采纳和拥抱Java的客观原因。

同时,微软还通过与IBM、Oracle、Red Hat和VMware等行业领导者的战略合作伙伴关系对Java生态系统发起“猛攻”,作出了重要的贡献。

当然,最重要的是,这家软件巨头的研发实力始终在线,始终站在科技发展的最前沿,在重新定义Java的迁移、现代化和整体开发体验方面都处于领先地位,比如对PaaS服务、迁移工具的强大支持。再比如,生成式AI时代,微软与OpenAI、Meta、英伟达等多家头部企业的纵横捭阖,成功让Copilot技术向前迈进。

在今年11月的微软Ignite上,微软更是宣布:微软将通过生成式AI和Copilot技术彻底改变Java开发的方式!

彩蛋:Java排名跌了

11月,编程TIOBE排名出来了。Java的排名较去年相比,下滑了一名,C++迎头补上。

图片

细心的朋友可能会发现,Java近两年的TIOBE指数一直有下降的趋势。据流行的排行榜统计,Java 的TIOBE 指数从 2020 年的第1名下降到最新迭代的第4名。Python、C 和 C++ 已经跃居其上,而 C# 紧随其后。

图片

但微软并没有放松对于Java的投入,归根结底,还是Java作为编程领域的扛把子,拥有着大量充满热情的开发人员和丰富的开发生态,不能等闲视之。

不过令人吃惊的是,微软对于Java的野心,实现的速度之快,的确值得众多IDE深思。

01-VS Code是什么?为什么全球开发者都在用? VS Code(Visual Studio Code)是全球最受欢迎的免费开源代码编辑器,由微软2015年推出。其核心优势在于轻量级设计(约200MB)与强大扩展生态(超8万个扩展)的完美平衡,支持跨平台开发(Windows/macOS/Linux)和多种编程语言。相比传统IDE,VS Code启动更快、更灵活,通过扩展可获IDE级功能。内置Git集成、智能提示、调试器等工具,拥有活跃社区和每月更新。截至2025年,数千万开发者使用VS Code进行前端、后端、数据科学等开发工作,成为事实上的"编辑器之王" 阅读详情

相关推荐

2025最新版Visual Studio Code安装使用指南

本文简要介绍2025年最新版Visual Studio Code的安装使用方法;作为新一代轻量级IDE,VS Code引领开发者浪潮若许年,并将持续下去。

jackson_lingua的博客 6181

vs支持java吗_为什么vs不支持java

vs2005之后的版本都不支持Java,即使使用了插件也会出现各种小问题,而且界面也不友好。但是现在Visual Studio已经完全支持Java语言了。之前一段时间,vs2005之后的版本都不支持Java,就算使用了类似的插件,也会出现各种小问题,而且界面也不友好。而现在Visual Studio终于可以开始支持Java语言了!从去年开始Visual Studio终于可以支持 Java 了,这是...

weixin_34268462的博客 1万+

微软大力支持Java!——探索Java在微软生态系统中的应用

通过在Azure云平台中支持Java开发、提供强大的Java开发工具(如Visual Studio Code)以及参与开源项目和工具的开发与维护,微软为Java开发者提供了丰富的选择和支持。微软的这些举措有助于推动Java在微软生态系统中的发展,为开发人员提供更多的机会和工具,促进软件开发的创新。此外,微软还发布了一系列的开源工具,如Visual Studio Code、Azure SDK for Java等,以支持Java开发者在微软平台上的开发工作。——探索Java在微软生态系统中的应用。

DevAstro的博客 267

为什么Visual Studio不支持Java

这些IDE专门为Java开发而设计,并提供了丰富的功能和工具,使开发人员能够更轻松地创建和管理Java项目。在开发领域中,Visual Studio(VS)是一个非常受欢迎的集成开发环境(IDE),它主要用于开发Microsoft的.NET应用程序和其他编程语言,如C#和VB.NET。虽然VS本身不支持Java开发,但开发人员可以选择其他专为Java开发设计的工具和IDE。尽管VS本身不支持Java开发,但仍然有一些方法可以在VS中进行Java开发。在上面的示例中,我们定义了一个。

DevNinja的博客 3450

4篇5章3节:认识 Visual Studio Code 与 AI 编程助手 GitHub Copilot

随着人工智能技术的飞速发展,软件开发正在经历前所未有的变革。AI 生成代码正逐步成为主流,能够显著提高开发效率,降低入门门槛,同时为人类开发者腾出更多精力专注于设计、优化和复杂逻辑实现。集成开发环境(IDE)如 Visual Studio Code 与 AI 编程助手 GitHub Copilot 的结合,为开发者提供了稳定、智能、高效的编程平台。本文探讨了人工智能在软件开发中的应用趋势、技术优势及现实局限,并分析了现代 IDE 如何支撑 AI 辅助编程的发展,为未来软件开发模式提供参考。

MD Code 1049

VS 支持 java开发插件

VS 支持 java开发插件,非常好用,值得下载。

推荐一款微软出品的开发神器,体验不输IDEA~

最近微软的开发工具VSCode频繁更新Java支持,又是支持SpringBoot,又是支持Lombok,让我不禁好奇VSCode是不是也能胜任Java开发了?于是抽空体验了一把,确实完全可以胜任,Java开发者又有了新选择,不仅好用而且开源!今天带大家体验下VSCode,体验超越Eclipse,不输IDEA!...

macrozheng的专栏 2804

4路QSFP28接口能玩出什么花样?基于璞致VU13P开发板的100G网络测试方案

本文详细介绍了基于璞致PZ-VU13P-KFB开发板构建100G网络测试方案的实战指南。该方案充分利用板载Xilinx Virtex UltraScale+ FPGA的强大算力与4路QSFP28接口,涵盖从光模块选型、Aurora协议配置、开源Corundum方案部署,到误码率测试及散热优化的全链路流程,为高速网络设备研发与验证提供了可靠的硬件平台。

cola5的博客 457

java实现微软文本转语音(TTS)经验总结

一、使用背景 公司项目之前一直是采用人工录音,然而上线一段时间之后发现,人工录音成本太高,而且每周上线的音频不多,老板发现问题后,甚至把音频功能裸停了一段时间。直到最近项目要向海外扩展,需要内容做国际化,就想到了用机器翻译。目前机翻已经相对成熟,做的好的国内有科大讯飞,国外有微软。既然项目主要面对海外用户,就决定采用微软的TTS。(PS:这里不是打广告,微软的TTS是真的不错,自己可以去官网试听下,虽然无法像人一样很有感情的朗读诗歌什么的,但是朗读新闻咨询类文章还是抑扬顿挫的。) 二、上代码 使用背景

简简单单的博客 6619

深入解析APS开源排程工具OptaPlanner:链式结构与移动优化

本文深入解析了开源APS排程工具OptaPlanner的核心机制,重点阐述了链式结构如何作为排程优化的“骨架”,通过单一`previous`变量隐式定义资源与顺序,从而简化建模。文章详细介绍了基于此结构的移动操作(如`ChainChangeMove`)如何驱动优化引擎探索解空间,并自动触发影子变量更新与分数计算,为构建高效、灵活的生产计划系统提供了实践指导。

keras9composer的博客 298

从BIOS到路由器:深入拆解SPI NOR Flash的硬件连接与‘芯片内执行’(XIP)奥秘

本文深入解析SPI NOR Flash的硬件连接与‘芯片内执行’(XIP)技术,从BIOS到路由器的应用场景出发,详细介绍了其架构精髓、典型连接方案、时序设计及性能优化方法。通过实际案例和参数对比,帮助开发者掌握NOR Flash在嵌入式系统中的关键作用与设计技巧,提升电路设计效率与可靠性。

weixin_30522183的博客 492

VS Code为何成为开发者首选

你是用 VS Code吗?如果用的不错,为什么大家都喜欢用这个?答案是肯定的。VS Code 之所以能成为开发者的“全民情人”,不是因为它完美无缺,而是因为它最懂开发者。它尊重每个人的习惯,允许你把它塑造成你想要的样子;它拥抱变化,通过插件生态迅速吸纳新技术;它打破界限,让本地与远程、前端与后端、代码与文档无缝融合。它不仅仅是一个编辑器,它是现代软件开发工作流的中枢神经。在这个快节奏的时代,选择一个好的工具,就是选择了一种高效的生活方式。最好的工具,是由社区共同创造的,是属于每一个人的。

热爱技术与前沿创新,深耕科技领域,在科创中精进自我;探索技术乐趣,分享技术干货与成长心得,以技术为伴,热爱生活,在科创与生活中双向成长。 404

网络安全与黑客攻防常见设备:前置机、跳板机、堡垒机与肉鸡

前置机、跳板机、堡垒机和肉鸡,这些看似冷僻的技术名词,实则是网络安全与黑客攻防战中的关键角色。它们有的守护着企业的数字Pltform,保卫网络安全;有的则成为黑客的跳板,游走于灰色地带。

网络技术联盟站 967

2025最新!VS Code插件全家桶推荐,从新手到大神的效率跃迁

2025最新!VS Code插件全家桶推荐,从新手到大神的效率跃迁

fruge365的博客 2205

AUTOSAE软件配置-项目标准配置 (PSC) 导入达芬奇( DaVinci Configurator)

文件是“可拆分的”,这意味着如果格式符合 AUTOSAR 拆分规则,则可以与其他。)是一个ARXML文件,主要由OEM提供,其中包含。)工件,可以作为输入文件导入到达芬奇配置器专业版。导入的参数将以只读方式处理。不允许在多个 ARXML 文件中导入一个。的已存在数据或从输入文件派生的数据。可以作为输入文件导入到另一个。文件会覆盖用户配置的基本。元素和诊断数据预配置。定义 [数据结构]。中,可以导出一个或多个。

m0_49148264的博客 1018

YOLO26涨点改进 | 独家创新,细节涨点改进篇 | CVPR 2025顶会 | YOLO26引入Mona即插即用模块, 含MoCAA和DyTMona二次创新改进,含多种创新改进高效发论文

本文给大家介绍Mona即插即用模块, 含MoCAA和DyTMona二次创新模块优化YOLO26模型。YOLO26引入 Mona通过引入多尺度视觉友好型卷积滤波器(如3x3、5x5、7x7深度卷积)和可伸缩归一化层来优化适配器设计,以更好地处理视觉信号并调节输入特征分布。YOLO26引入Mona即插即用模块, 含MoCAA和DyTMona二次创新改进,含多种创新改进高效发论文。适合目标检测、图像分割、图像分类等所有CV任务通用即插即用模块。

Ai缝合怪、助力小伙伴高效发论文 242

编程语言背后的“江湖”:揭秘科技巨头们的技术DNA

在数字世界的江湖中,每一家互联网公司都像一位身怀绝技的“武林高手”,而他们手中的“兵器”正是编程语言。从Google的搜索引擎到微信的十亿级消息推送,从Meta的社交帝国到微软的云端生态,这些科技巨头的技术基因深深烙印在其选择的编程语言中。每一行代码背后,都是一场商业与技术哲学的共谋。:Objective-C的“继任者”,用安全的语法设计(如可选类型)杜绝80%的常见崩溃,让iOS开发从“玄学调试”走向“现代工程”:为解决C++的复杂性而生,高并发微服务(如Kubernetes)的“隐形引擎”,一句“。

CDMYC的博客 562

SystemUI-下拉去掉后去掉用户切换-去掉电源按键中的紧急呼叫

这里自己倒腾完成了两个常见需求:去除用户切换、去除紧急呼叫UI在去除用户切换时候,用到了Compose知识点,所以很难按照以前经验去找对应布局、找对应的View Item ,以往方法都只能部分借鉴的搞系统的还是要跟着谷歌学一点Compose技能了,方便日常开发调试。

十年饮冰,难凉热血 1464

11月9日科技资讯|马云再谈对钱没有兴趣;比尔·盖茨:微软原本可以击败 Android!TypeScript 3.7 发布 | 极客头条

作者 | 唐小引 「极客头条」—— 技术人员的新闻圈! 优快云 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。扫描上方二维码进入 优快云 App 可以收听御姐萌妹 Style 的人工版音频哟。 一分钟速览新闻点! 比尔·盖茨:如果没有反垄断,Windows Mobile 将击败 Android! OpenAI 开源了备受争议的 GPT-2 ...

极客日报 7802

C# 上位机高级功能实战:报警、历史回放与远程监控

本文介绍了工业上位机系统的高级功能实现,主要包括实时报警机制、历史数据回放和远程监控三部分。报警功能通过阈值检测实现异常提醒;历史回放利用数据库存储数据,通过定时器控制回放进度;远程监控提供TCP、WebSocket等多种数据传输方式。文章还给出了综合优化建议,如异步处理、报警去抖动等,最终形成一个包含数据采集、显示、存储、报表及高级功能的完整工业自动化闭环系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 758

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

微软总裁坦承微软曾错误地站在 Linux 的对立面

Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲转自:cnBetawww.cnbeta.com/ar...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 440

VB摄像头监控

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

不止六周陪产假!微软向所有全职员工提供三个月的带薪育儿假

导语微软的全职员工现在可以选择休假的方式和时间,他们可以一次性休假很长的一段时间,也可以每周休假几天。腾讯科技讯 据外媒报道,微软表示,在新冠病毒疫情期间,它将向所有全职员工提供三个月...

HJ说 1316

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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

马云再谈对钱没有兴趣;比尔·盖茨:微软原本可以击败 Android!TypeScript 3.7 发布 | 极客头条...

作者 | 唐小引 出品 | 优快云(ID:优快云news) 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持。 「极客头条」—— 技术人员的新闻圈! 优快云 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。扫描上方二维码进入 优快云 App 可以收听御姐萌妹 Style 的人工版音频哟。 一分钟速览新闻点!...

优快云资讯 1188

微软内部禁用Claude对外销售:企业AI应用的数据安全与合规博弈

生成式AI模型在代码生成和复杂推理任务中展现出强大能力,正成为企业提升生产力的关键技术。其工作原理基于大规模预训练和上下文学习,能够理解并生成高质量内容。这项技术的核心价值在于显著提升开发效率和解决复杂问题的能力,在软件开发、数据分析、自动化办公等场景应用广泛。然而,企业级应用必须严格考虑数据安全与合规风险,涉及数据泄露防范、知识产权保护和监管要求满足等关键问题。本文以Claude模型为例,探讨企业如何在享受AI技术红利的同时,通过API管控、风险评估和混合架构等工程实践,构建安全可控的AI应用环境,实现技

weixin_30410119的博客 386

从 13.6 万星到 25+ 平台,Skills 正在成为标准

OK,到此为止我们只聊了「Skills 是什么」和「怎么写」。但真正让我觉得这个话题值得专门写一篇文章的,是它的生态——这场爆发来势之快超出了大多数人的预期。

tmS31ly8f的博客 260

再见!IBM中国研究院!955 外企现状如何?

部分来源:新智元IBM中国研究院,悄无声息地「关闭」了。曾风光无限,见证了全球巨头在华研发的盛世辉煌,今天却悄然散做满天星。IBM方面对中国研究院「关闭」也给予回应,称这是IBM在中国的...

HJ说 3781
上一篇: Linus收敛火爆脾气,谈内核社区“老龄化”问题
下一篇: 互联网大厂“组团”宕机,都怪降本增“笑”?
IT界那些事儿
博客等级 码龄6年 2万+粉丝 22原创
评论 22
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值