JDK的两个大版本,为什么要选LTS

千呼万唤始出来 JDK 21 LTS, 久等了 以前大家都说:他发任他发,我用JAVA 8抱歉,这次JDK 21 我不得不使用了已知使用较为广泛的几个 LTS版本是 (Long Term Support) :JDK 8 、JDK 11、JDK 17。 阅读详情
AI摘要

本文详细介绍了JDK的基础概念,OracleJDK与OpenJDK的不同之处,着重讲解了LTS版本的重要性,列举了OpenJDK的主流发行版,并对比了OracleJDK和LTS版本的主要特性。

1.什么是JDK

JDK 是一个开发环境,用于使用 Java 编程语言构建应用程序和组件。

JDK 包括用于开发和测试用 Java 编程语言编写并在 Java 平台上运行的程序的工具。

----Oracl Java

JDK的两个大版本是Oracle JDK和Open JDK,都属于Oracle。Oracle收购了SUN。

Oracle JDK是Oracle基于免费的商业许可证版本,Java Downloads | Oracle

Open JDK是Oracle在开源许可证下的免费版本,JDK Builds from Oracle (java.net)

2.Oracle JDK和Open JDK

这两个JDK最大不同就是许可证不一样。但是对于个人用户来讲,没区别。

java --version命令客户查看版本。

C:\> java -version
java version "17" 2021-09-14 LTS
Java(TM) SE Runtime Environment (build 17+35-LTS-2724)
Java HotSpot(TM) 64-Bit Server VM (build 17+35-LTS-2724, mixed mode, sharing)
[root@ ~]# java  --version
openjdk 11.0.5 2019-10-15
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.5+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.5+10, mixed mode)
Oracle JDKOpen JDK
来源Oracle团队维护Oracle和Open Java社区
授权协议Java 17及更高版本 Oracle Java SE 许可证
Java16及更低版本甲骨文免费条款和条件 (NFTC) 许可协议 (oracle.com)
GPL v2许可证
关系由Open JDK构建,增加了少许内容
发行周期6个月,每两年一个LTS6个月
是否收费2021年9月起Java17及更高版本所有用户免费。
16及更低版本,个人用户、开发用户免费。
2017年9月起,所有版本免费
LTS目前7,8,11,17无,但是有社区编译的其他支持
对语法的支持一致一致
性能最佳接近,几乎无差

3.什么是LTS

LTS(Long-term Support)即长期支持。Oracle官网提供了对Oracle JDK个别版本的长期支持,即使发发行了新版本,比如目前最新的JDK18,在结束日期前,LTS版本都会被长期支持。(出了bug,会被修复,非LTS则不会再有补丁发布)
所以,一定要选一个LTS版本,不然出了漏洞没人修复了。

版本开始日期结束日期延期结束日期
7(LTS)2011年7月2019年7月2022年7月
8(LTS)2014年3月2022年3月2030年12月
11(LTS)2018年9月2023年9月2026年9月
17(LTS)2021年9月2026年9月2029年9月
21(LTS)2023年9月2028年9月2031年9月

如果要选择Oracle JDK,目前可选的LTS版本为8、11、17三个。

4.有哪些Open JDK发行版可选

Open JDK 虽然没有官方的LTS版本,但是开源社区有支持。会有一些公司或组织基于Open JDK做发行版,提供LTS。

名称支持团队官网
AdoptOpenJDKAmazon,Microsoft,IBM,Red Hat,Pivotal(EMC和VMware)AdoptOpenJDK - 开源,预建OpenJDK二进制文件
Alibaba Dragonwell
(龙井)
阿里巴巴Dragonwell (dragonwell-jdk.io)
Tencent Kona腾讯Home · Tencent/TencentKona-8 Wiki · GitHub
Microsoft JDKMicrosoft微软Microsoft Build of OpenJDK
毕昇JDK华为毕昇JDK-鲲鹏社区 (hikunpeng.com)
Amazon CorrettoAmazon亚马逊Amazon Corretto

以上是比较出名的版本。有些JDK加入了自己的特色。

建议AdoptOpenJDK。

5.LTS版本的主要特性

5.1.Java8

8比7更新的东西比较多,可以说是里程碑式更新。加入了函数式、lambda等。

  1. Stream API。流
  2. 新的日期和时间API,LocalDate、LocalDateTime
  3. Lambda语法
  4. 函数式接口
  5. 接口可以添加非抽象方法,default关键字
  6. JVM移除永久代,增加元空间’

JDK 8 Features (java.net)

5.2.Java11

  1. 模块化(jdk9)
  2. 默认G1垃圾回收器(jdk9)
  3. 局部变量类型推断(jdk10)
  4. 移除Java EE(jdk11)
  5. 合并javac和java命令(jdk11)
    之前运行Java文件的命令
    javac HelloWorld.java
    java  HelloWorld
    
    现在可以
    java HelloWorld.java
    

JDK 9 (java.net)

JDK 10 (java.net)

JDK 11 (java.net)

5.3.Java17

17是第一个支持ZGC的LTS版本。有条件的话,用JDK17。

  1. 试验ZGC,需要在JVM配置(jdk11)
  2. 文本块升级。(jdk13)
  3. switch支持lambda(jdk13预览,jdk14)
  4. ZGC 可用于生产环境(jdk15)
  5. record(jdk14,15预览,jdk16)
  6. Realed class密封类(jdk15,16预览,jdk17)
  7. 统一日志支持异步日志刷新(jdk17)

JDK 12 (java.net)

JDK 13 (java.net)

JDK 14 (java.net)

JDK 15 (java.net)

JDK 16 (java.net)

JDK 17 (java.net)

Java21 LTS版本来了, API 变更详细汇总 除了众所周知的 JEP 之外,Java 21 还有更多内容。我们一起来看看 String 和它的朋友们 Collections、Date、Time、HttpClient、并发、Math 和 BigInteger 的新增一些 API。 阅读详情

相关推荐

JDK25 新特性尝鲜

Java 25正式发布,带来多项重大更新。作为长期支持版本(LTS),它提供语言增强如简化main方法、灵活构造函数体;性能优化包括结构化并发、分代ZGC垃圾回收;安全方面新增后量子加密支持。特别针对AI开发优化了向量API,提升推理速度。Oracle将为Java 25提供8年免费支持至2028年9月,包含数千项改进,在性能、安全性和开发效率方面均有显著提升。该版本延续Java每6个月的更新节奏,同时降低了新手学习门槛,通过紧凑源文件等特性简化入门难度。

天之道居同文。 1092

JDK版本特性

LTS 版本更加注重稳定性,安全性,性能改进,默认支持是 8 年,其中 JDK 8 延长至 2030 年(16年),延长支持期间不再提供新的功能。主要:通过var关键字实现局部变量类型推断,使Java语言变成弱类型语言、JVM的G1垃圾回收由单线程改成多线程并行处理,降低G1的停顿时间。JDK18中提供了一个新命令jwebserver, 运行这个命令可以启动一个简单的,最小化的静态web服务器,默认发布的是当前目录。作为一个实验性的垃圾回收器,Epsilon GC 旨在为某些特定的应用场景提供更好的性能。

qq_37191071的博客 5449

Java 8(JDK 1.8)升级更新至 Java 11(JDK 11)/ Java 17(JDK 17)LTS

一、JDK的下载;二、JDK的安装;三、配置环境变量;四、(附)ADB环境变量配置。

beita08的博客 5万+

JDK(LTS版本)更新时间

JDK LTS版本跟新时间,以及跟新内容

Leaf吧的博客 2135

下载 JDK LTS 版本安装

不管饕餮的时间怎样吞噬着一切,我们要在这一息尚存的时候,努力博取我们的声名,使时间的镰刀不能伤害我们;我们的生命可以终了,我们的名誉却要永垂万古。 来自 金句吧 哈哈 帮忙点个赞呗 !ε≡٩(๑>₃<)۶ 一心向学 官方 https://www.oracle.com/index.html 下载 安装 1、双击 【JDK】 2、点击【下一步】 开发工具 JDK 安装 3、指定 JDK 安装目录,点击【下一步】 4、等待即可 测试 命令如下: java -vers.

m0_49888533的博客 1595

Java 主流 JDK 版本选型技术详解(JDK8/17/21/25 LTS、JDK26)

文章全面解析当前主流JDK版本的技术特性与适用场景。重点对比了JDK26(短期非LTS)、JDK25/21/17(LTS长期支持版)及JDK8的技术特点、维护周期和适配建议。其中LTS版本JDK25适合新建高并发项目,JDK21/17推荐用于稳定生产环境,JDK8仅建议遗留系统使用。文章提供了详细的版本选型指南,建议根据项目生命周期和技术需求选择合适版本,并强调了LTS版本在企业应用中的安全性优势。本文还提供了官方文档下载链接供读者参考。

wyj985860的博客 950

JDK长期支持版本【LTS】说明

LTS解释 long-term support:长期支持版本 一般长期支持的版本都比较稳定,或者官方会不断更新补丁包,推荐使用 总览 版本 LTS时间 jdk8 2030年12月 JDK11 2026年9月 JDK17 2024年9月 JDK目前的LTS有三个:8,11,17 JDK8 JDK8官网链接 https://www.oracle.com/java/technologies/downloads/#java8 至少直到2030年的12月,Java SE 8用户会收到更新

爱的叹息的专栏 2万+

为什么现在就该升级到JDK17?从性能、安全、LTS支持三方面深度解析

本文深度解析了从JDK8升级到JDK17的必要性,从性能提升、安全加固和LTS支持三方面展开。JDK17在性能上实现15-20%的提升,ZGC垃圾收集器带来亚毫秒级停顿;安全方面修复大量漏洞并支持TLS 1.3;LTS支持持续到2029年,避免技术债务累积。升级JDK17已成为现代Java架构的必然选择。

weixin_29207439的博客 282

JDK各LTS版本下载,包含JDK8、11、17、21版本(文章末尾附带直接下载链接)

最近oracle官网对于JDK的下载,需要先登录才能下载,整个过程显得麻烦又繁琐,在这里我为大家准备了各个LTS版本的下载链接,免费提供给大家,希望大家多多支持~​“长期支持版本”(Long-Term Support,LTS)在软件领域指的是一个版本会获得较长时间的支持,包括更新、补丁和安全修复。对于。

2503_92552291的博客 3233

Java版本演进与LTS战略:从JDK8到JDK21的核心升级

Java作为企业级开发的主流语言,其版本迭代直接影响开发效率与系统性能。长期支持(LTS)版本如JDK17和JDK21,通过模块化系统、ZGC垃圾回收器等技术创新,显著提升了Java应用的性能与可维护性。虚拟线程(协程)的引入尤其适合高并发IO密集型场景,能大幅降低内存占用并提升吞吐量。从JDK8到最新版本的迁移需要关注语言特性变化、GC算法优化及模块化改造,合理的升级路径能确保系统平稳过渡。对于追求稳定性的生产环境,选择LTS版本并适时评估新特性是保持技术竞争力的关键。

weixin_32932149的博客 291

双卡RTX 3090实战:基于vLLM高效部署Qwen2.5-14B BF16大模型的完整指南

本文提供了在双卡RTX 3090上使用vLLM推理框架高效部署Qwen2.5-14B BF16大模型的完整实战指南。内容涵盖硬件配置、系统环境准备、vLLM核心原理与安装、模型获取、详细部署步骤(包括脚本启动与API服务),以及性能调优与避坑技巧,旨在帮助开发者充分利用硬件性能,实现稳定、高速的本地大模型推理服务。

yy01234的博客 1512

JDK的第三个LTS版本JDK17来了

JDK中一个很危险的用法就是反序列化,因为你不知道反序列化的对象到底是不是一个危险的对象,为了解决这个问题,在Java 9 中引入了反序列化过滤器,从而在反序列化之前对数据流进行验证。简单点说,就是之前的硬件架构,在严格进行浮点语义进行计算的时候,会消耗大量资源。同时Oracle也调整了LTS版本的发布年限,从之前的三年调整到现在的二年,也就是说下一个LTS版本将会是JDK21,哇喔!但是现在已经是2021年了,硬件水平得到了飞速的发展,所以之前引入的修改已经是不必要了,在JDK17中被废弃了。

2401_89192266的博客 911

STM32+LoRa模块实战:从环境搭建到数据传输完整指南(附避坑清单)

本文提供STM32与LoRa模块从环境搭建到数据传输的完整实战指南,涵盖硬件连接、开发环境配置、AT指令设置、频段优化及低功耗设计等关键步骤,特别针对常见问题提供解决方案和避坑清单,助力物联网开发者高效实现远距离低功耗通信。

weixin_29168813的博客 289

JDK 21 要来了:已从主线分叉,将成为下一个 LTS 版本!

编译 | 郑丽媛出品 | 优快云(ID:优快云news)根据 OpenJDK 官方更新,目前 JDK 21 进入 Rampdown 第一阶段,代码已从主线分叉出来。值得一提的是,JDK 21 将是继 JDK 8(2014 年)、JDK 11(2018 年)和 JDK 17(2021 年)后的下一个 LTS 版本。所谓 LTS 版本,即 Long-term Support,意味着长期支持的版本。...

优快云资讯 9047

树莓派与stm32通信超详细解答过程

笔者之前发过关于stm32与openmv通信的教程,在学习了几天opencv后,想实现树莓派4B与stm32进行通信。于是上网查询资料,最后实现了两者之间的通信,相信这对大多数电赛人都很有帮助,opencv的识别效果是远高于openmv以及K210的。在此我参考了以下资料辅助我学习,大家可以参考。基于树莓派4B与STM32的UART串口通信实验(代码开源)_树莓派4b串口波特率-优快云博客。

Halcyon0804的博客 5465

USB通讯速度翻倍秘诀:手把手教你用WinUsb替代HID协议(附Zadig驱动配置图解)

本文详细介绍了如何通过WinUsb技术替代传统HID协议,实现USB通讯速度的显著提升。从技术对比、实现原理到Zadig驱动配置图解,手把手教你完成免驱高速通讯方案,适用于数据采集、固件升级等场景,实测速度可达HID协议的2倍以上。

weixin_29168675的博客 132

Java 这几个 JDK26,JDK 25,JDK 21,JDK 17,JDK 8 版本到底怎么选,一次讲明白

装完系统找驱动是个麻烦事,尤其是一些老机器或者小众硬件,官网驱动要么难找要么下载慢,用系统自带的更新又经常缺东少西。最近在几个常逛的论坛看到不少人在提 DriverEasy 这个软件,说是出了个魔改版本,把付费限制和广告全去掉了,试了下的确省心,顺便把使用过程整理出来。

2401_88055648的博客 889

别再乱调了!Zygo MetroPro软件滤波功能保姆级指南,从均值到鲁棒高斯样条一次讲清

本文深入解析Zygo MetroPro软件的滤波功能,从均值滤波到鲁棒高斯样条等九种算法,帮助用户根据测量对象特性选择最佳滤波组合。通过真实工业案例和参数配置指南,提升光学测量数据的准确性和效率,特别适用于硅晶圆、光学镜片等精密测量场景。

weixin_30888413的博客 156

用jdk1.8还是用jdk11

跟着公司CTO冒进了一回:把代码jdk从1.8升级到了jdk11(公司CTO的原意是更新到最新版本jdk,甚至直接使用最新版kotlin)。 如果不搞rocketmq,不会发现什么问题,而且会感觉这是一个很好的改进,编码写法改进了,甚至性能提高了…… 然后,一搞rocketmq,发现:不说jdk11,甚至jdk9都无法让最新版的rockemq起起来。 回想一下,这几年,各个大厂都推出了自己的jdk版本,华为有自己的jdk、阿里有自己的jdk,但殊路同归的是都用的是jdk1.8这个版本。要想用大厂优化过

张人杰的博客 4万+

基于ROS与Gazebo的多机器人三角形编队仿真实践

本文详细介绍了基于ROS与Gazebo的多机器人三角形编队仿真实践,从环境搭建到编队控制的全过程。通过TurtleBot3机器人模型和TF坐标系系统,实现三个机器人的三角形编队控制,适用于机器人协同作业与编队算法研究。

weixin_29313817的博客 187

在 SAP BTP ABAP 环境里直连 ABAP On-Premise OData

摘要 SAP BTP ABAP Environment 2311版本后,OData集成链路迎来重大改进:Service Consumption Model升级为v2版本,通过压缩模型到单一类减少对象数量;通信管理推荐采用Communication Arrangement替代传统Destination,提供更清晰的治理边界。新版支持同时生成OData v2/v4消费模型,并通过标准工厂类创建代理。配置需关注四层对象:Outbound Service声明协议入口,Scenario定义认证方式,System描述通

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1918

Java版本怎么选?JDK各版本特性对比与实战建议

Java版本选择需综合考虑项目需求、兼容性、支持周期和新特性。当前最新LTS版本是JDK 25(2025年发布),提供长期支持和稳定性;非LTS版本(如JDK 26)适合实验新特性但支持期短。主流LTS版本对比显示,从JDK 8到JDK 25持续优化性能、并发和安全性,建议新项目优先选择JDK 25,现有项目逐步迁移至JDK 17+。可选用Oracle JDK、OpenJDK或第三方发行版(如Azul Zulu),注意测试兼容性和性能收益。迁移时需评估API兼容性,分阶段升级并监控性能变化。

likuolei的博客 2230

【AI应用实战-Codex】Mac intel芯片下安装Codex(二)

摘要:本文介绍了在Intel芯片Mac上安装OpenAI Codex桌面应用时遇到的问题及解决方法。由于官方仅提供ARM64版本,导致Intel Mac无法直接运行。解决方案包括:1)使用社区脚本将ARM版DMG与x64 Electron重新打包成兼容版本;2)使用VSCode插件配合CLI作为替代方案。文章详细记录了重新打包过程中遇到的"electron_common_owl_features"绑定缺失错误,通过注入stub代码、重算ASAR完整性哈希等步骤成功解决问题。最终生成的Co

3516

新项目为什么决定用 JDK 17了

最近在调研 JDK 17,并且试着将之前的一个小项目升级了一下,在测试环境跑了一段时间。最终,决定了,新项目要采用 JDK 17 了。JDK 1.8:“不是说好了,他发任他发,你用 Java 8 吗?不光是我呀,连 Spring Boot 都开始要拥护 JDK 17了,下面这一段是 Spring Boot 3.0 的更新日志。

BASK2312的博客 1880

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

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: 面试必备——InnoDB索引的物理结构
下一篇: 图文剖析JVM的运行时数据区
编程还未
博客等级 码龄5年 4293粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程还未

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值