java se 集合 笔记

vtk相机_分别用 VTK 体绘制和面绘制来实现医学图像三维重建; 序言,VTK介绍:VTK 全称为 The Visualization Toolkit (可视化工具),是一个开源、跨平台、自由获取、支持并行计算的图形应用函数;拥有3D 渲染的最新工具、提供3D交互模式以及2D绘图等。VTK 包含一个C++类库,目前提供了众多语言接口,例如 Java、Python、TCL;在三维函数库OpenGL 的基础上采用面向对象设计方法发展起来图形学基本概念和数据... 阅读详情
/**
 * 集合 :  ---》存储对象的 容器 
 * 
 * 两个大接口
 * 1.collection
 * list<小接口>  有序,可以重复  【动态数组】
 * Set <小接口>  无序 ,不能重复 
 * 2.Map 具有映射关系 的   key-value对   键值对 
 * 
 * 3.类:collections 工具类 
 * 
 * 
 * 存储对象可以用    数组或者 集合 。
 * 
 * 数组 存储对象:    Student[] st =new Student[100];
 *   弊端: ① 一旦声明  ,数组的长度不可变。 
 *   ②真实存放对象的个数 不可知 。
 *  
 * 
 * 
 * 
 * 
 * @author Administrator
 *

 */



/**
 * collection 接口下的 小接口    List 
 * List接口的实现类     存放 有序   可重复的数据  容器。   
 *      ArrayList【主要实现类 】      线程不安全 , 最主要的实现类 
 *      
 *      LinkedList[频繁 增加、删除集合时]使用此实现类  。  内存中 片段存储  各个片段用指针联系。
 *      
 *      Vector 比较老得实现类,  线程安全 ,已经过时。  不常用。<弃用 >
 *      
// ArrayList  与 LinkedList类可以 无缝切换使用,  只是 在频繁对集合元素删除 添加时 使用 LinkedList
 * 
 *  
 *  
 * @author Administrator
 *     添加进list的元素【对象】 一定要重写 equals()方法  !!!!!!  remove()  removeAll() retainAll()  contains() 
 *     equals() contains()等 比较相等都要用到对象的equals()方法
 */



/**
 * 
 * Collection接口   中另一个 子接口   
 * Set接口     无序  不可重复      Set 中常用的方法都是Collection下定义的。 
 * 实现类 :  HashSet 主要实现类         LinkedHashSet     TreeSet
 * 
 * Set 中元素(对象)  都是无序的  [不是随机的!!!]  不可重复的
 *    1、无序性 != 随机性    真正的无序性 指的是 元素在底层存储的位置是无序的。    底层存储的位置  无序 由 hashcode值决定。  
 *    2、不可重复性   当向Set中 添加进相同的元素的时候  后面的不能添加进去。
 *    
 *    Set 实现类   HashSet        LinkedHashSet 
 *    HashSet 主要使用的实现类。
 *    LinkedHashSet  添加元素 效率略低于HashSet  每添加一个元素 都要在元素前后添加指针,是双向链表的形式。
 *       遍历元素 效率略高于 HashSet, 也是由于有双向链表,可以前后指针指向 遍历效率略高。
 *    
 *    添加到Set中的元素  不仅要重写 equals()方法,  还要重写 hashcode方法!!!
 *     只重写 equals()方法 不起作用,相同的自定义类对象仍然可以添加进去。
 *     
 *     Set 中存储 不相同的元素, 为了提高 效率 , 避免每次添加元素时都跟已有元素进行比较 的低效率    ,采用了 哈希算法,
 *     即 每次添加元素之前 ,进行一次hashcode()的算法 生成一个值, 看有没有重复的值 即可  , 避免跟每个元素进行比较。
 *     一般情况下 重写 equals()和 hashcode()方法  保持这两种方法的一致性, 
 *     即  元素相同 则  hashcode()值 保持一致,equals()方法返回true;
 *       元素不相同 hashcode()值不一致,equals()方法返回false;
 *     
 *     由于 Set集合中 添加元素时 先比较hashcode值 ,如果不重写 hashCode()方法  则内容相同的两个元素的 hashCode值不同,仍然可以添加到Set
 *     
 *     所以 在使用Set集合 存储元素时  ,必须要同时 重写 hashCode() 和 equals()方法 !!! 
 *     此处 存储到List的元素 只需要重写equals()方法即可,  注意两者区别。     
 *     
 *      应用实例
Person1  p1 =new  Person1("GGF",25);
Person1  p2 =new  Person1("GGF",25);
// 当不重写  equals()和 hashCode()方法时 。 P1 !=P2 
// 当重写  equals()   不重写 hashCode()方法时 。 P1 =P2   但是在向Set中添加时  计算的哈希值不同,仍然认为是2个不同元素    
// 当重写  equals()   也重写 hashCode()方法时 。 P1 =P2   在向Set中添加时hashCode()  计算的哈希值相同,equals()也相同 ,认为是相同的元素,不允许重复添加      
 *
 *    
// LinkedHashSet  遍历顺序是按照添加元素的先后顺序,但是  LinkedHashSet 依然是无序的   无序 :指的是 元素的存储位置无序,跟遍历顺序无关!!!  
// 只是在添加元素时 每个元素都有前后的指针 [双向链表]
 *
 *
 *
 *
 * 
 * @author Administrator
 *
 */




/**
 * 数组 既可以 存放 基础数据类对象 ,又可以存放引用数据类型的对象
 * 集合  :  java中 集合只能存放 引用数据类型  !!不能存放  基础数据类型 。      
 * [jdk1.5后   基础数据类型可以自动装箱  成包装类,存放基础类型其实是其包装类对象。] 
 * 
 * 
 * 
 * Collection 接口下第二大接口 Set 子接口
 *     Set 子接口 实现类  HashSet  LinkedHashSet  TreeSet;   Set是    无序的     存储的元素 不可重复的。
 *     
 *     Set中存放的对象 不仅要重写 equals()方法 ,  因为元素时无序的   在存储时先用 存储对象的hashCode值 去比较,  所以 还要重写  hashCode方法。
 *     
 *     
 *     
 *     HashSet----最常用 。 存放 无序【无序不代表 遍历结果随机, 遍历结果是根据元素hashCode值计算的  固定顺序的】  不可重复的 元素 
 *     
 *     LinkedHashSet----增减元素慢  遍历元素快,   遍历的结果跟添加的顺序一致:不代表是有序的!!!
 *     父接口 Set是无序的,指的 元素存储位置是无序的。 跟遍历的结果顺序无关 。
 *  
 *     TreeSet   -----  必须存放同一类型的对象   并且   实现自然排序接口  或者 制定排序接口   
 *               -----  必须要 存储的对象    重写 Comparable接口 的 compareTo(Object obj) 方法    ,返回0表示俩对象相等。
 * String 和基本数据类型的包装类 均已  重写了 Comparable接口的  compareTo(Object obj)并且是由小到大排列
 *   排序方式分为 自然排序和 指定排序 。
 *     自然排序是 对象重写compareTo()之后 指定排序的属性【可以指定多个属性 分多级排序】。
 * 
 * 
 *   compareTo()方法 与 hashCode()方法  equals()方法必须保持一致。
 * 
 *    重写 Comparable接口的 compareTo()方法   ,如果是基础数据类型,  返回  return    当前this对象的属性 减去  obj对象的属性,


public int compareTo(Object o) {
// TODO Auto-generated method stub
if(o instanceof Person2){
Person2 p =(Person2)o;
// 按照年龄从小到大排序。  基础数据类型  两者相减, 是从小到大排序,  前面加负号 - 则表示从大到小排序。
// return this.age-p.age;
// 按照年龄从大到小排序
   return -(this.age-p.age);
//             按照名称排序                      String类型, 引用数据类型             调用如下 已经重写compareTo()过的方法。 从小到大排序  遍历输出     。     
//        return this.name.compareTo(p.name);
   

 * @author Administrator
 *
 */



/**
 * TreeSet  除了  自然排序   还有 定制排序  
 *          自然排序  排序对象 实现了 Comparable接口的compareTo()方法 
 *          订制排序  实现了Comparator接口的compare(Object obj1,Object obj2)方法;
 *
 * 实际开发中当能操作TreeSet存储的对象类时,  在存储对象上实现Comparable接口  重写 compareTo()方法
 *  如果不能操作集合中存储对象类时,  使用订制排序,   Set  set = new TreeSet(Comparator c);  
 *       定制排序 : 在重写 Comparator接口的compare(Object obj1,Object obj2)方法 指定排序规则。
 * 
 * 如果集合中存储对象也指定自然排序   ,那么  订制排序     优先级高于 自然排序。
 * 
 * @author Administrator
 *
 */



/**
 * TreeSet  练习 
 * 
 *       TreeSet 存储的对象类型必须相同 
 *       
 *       TreeSet  要存入Set中的对象 (对象中引用的类型 类     也必须重写equals()方法)   
 *       必须指定排序   [自然排序接口,  和定制排序接口 两种方式选一]
 *       
 *       
 *       如果集合中存储的对象          既实现接口Comparable 自然排序  ,  
 *                      也 调用带 Comparator接口的TreeSet()构造器   定制排序 ,那么  订制排序     优先级高于 自然排序。
 *       
 * 
 * 
 * @author Administrator
 *
 */



/**
 * 
 * Map 接口 
 * Hashtable  也是一个古老的 实现类, 是线程安全的。   弃用  ---不推荐在程序中使用了。
 *           子类   properties  常用来处理属性文件  key-value值都是String类型的
 * 
 * 
 * 
 * @author Administrator
 *
 */



/**
 * Map接口  
 * 
 * 
 * LinkedHashMap实现类 
 * 
 * LinkedHashMap 使用链表维护,添加进Map的顺序, 故遍历Map时 是按照添加顺序遍历的。
 *
 * 跟LinkedHashSet 一样 使用双向链表, 插入添加操作慢,遍历速度快。
 * 
 * 
 * 
 *      遍历顺序跟 添加顺序一致   . 存放仍然无序, 用链表指针相互连接。  不代表是有序的!!!!。  参考 HashSet  LinkedHashSet 。
 * 
 * 
 * 
 * 
 * @author Administrator
 *
 */



/**
 * 集合  中与 Collection 接口并列的接口 -------  Map接口
 * 
 * Map接口 
 * 1、HashMap        主要实现类      
 * 2、LinkedHashMap ---参考LinkedHashSet 的存储结构
 * 3、TreeMap  ---参考 TreeSet类 的使用
 * 以上实现类结构 与  Set接口 接口类似。
 * 
 * 
 * 4、Hashtable  古老的实现类   线程安全                 key和value中均不能存放 null      ----弃用
 * 5、Poperties  常用于处理属性文件, 键值对 都是String类型的。
 * 
 *
 * Map  存储的 是 key - value  键值对  每个键值对 是一个   Entry 
 * 
 * Map 中键值对:   key  --keySet集合
 *           value ---collection集合
 * 
 * 
 * key键 是一个Set集合,key中不允许有重复值 !!!!添加元素时 put      若key重复             则 新添加的 替换原有的 key--value 对   
 * value值 一个collection集合  可以有重复值 。
 * 
 * 
 *   添加元素时  put 如果放入 与集合中key重复【不管value值是否重复 】的 Entry  则 集合中已有相同key值的Entry会被覆盖 。
 *  
 *   map 一般用 String类型 作为 key值。
 *   
 *   存入map中的元素 要重写  equals()和 hashCode()方法。
 *      
 *      
 *      map.put(Object key,Object value);   添加 Entry
 *      map.remove(Object key);     根据key 删除 一个元素 key-value键值对 , 返回值是 对应的value值
map.get(Object key);   根据key值获取value值
 *
 *
 * 判断是否包含, 会调用相应对象的equals()方法 ,所以 map中存储的 key 和value 对象  均需要重写 equals() 和 hashMap()方法
 * 
map.containsKey(Object key);  对应的key集合中    是否包含 key  
map.containsValue(Object value);  对应的value集合中   是否包含value
 *
 *
map.clear();//清空一个map集合
 * map.isEmputy();//是否是空
 * map.equals(Object  obj);//判断是否相等
 *     
 *     
 *     
 *     map的遍历的方法       存放元素  仍然是无序的。
 * map.keySet();    遍历    键key   返回一个Set集合
 * map.values();    遍历   value值      返回一个 collection集合
 * 
 *     map.entrySet();  遍历   键值对   key-value 返回一个Set集合
 * 
 * @author Administrator
 *
 */


/**
 * 
 * Map接口的实现类 
 * TreeMap类 ,    ----------参考TreeSet
 *      按照添加进Map的元素 key  对象  的  指定属性   进行排序,要求 key必须是同一个类的对象, 
 *      排序方式 : 自然排序 vs 定制排序
 *      
 *      
 *      
 * 
 * 
 * @author Administrator
 *
 */



/**
 * 操作集合的工具类
 * 
 *  
 *  
 * 操作Collection以及Map的工具类 ,Collections是一个类, 可以操作 Collection接口和 Map接口
 * 
 * 
 * Collections中常用的方法  
 * 
 * Collections.sort(list);  //排序
 * Collections.reverse(list); //翻转
 * Collections.shuffle(list); //随机排序
 * Collections.sort(List list,  Comparator c);  //自定义 Comparator接口实现类 设置排序方式。参考TreeSet 中使用  Comparator
 * Collections.swap(list, 1, 3);   //交换list集合中的两个元素
 * 
//ArrayList 是线程不安全的,  用Collections.synchronizedList(list) 转换为线程安全的。
List list2 = Collections.synchronizedList(list);

//把一个集合复制到另一个集合  Collections.copy(dest, src);   dest是目标集合   src是源
List list1 = Arrays.asList(new Object[list.size()]);
Collections.copy(list1, list);

//取集合中的最大值 。
Object obj = Collections.max(list);
// 根据 自定义Comparator接口的实现类定义的排序 规则 返回 集合中collection集合中的最大值
Collections.max(list, Comparator);

//取集合中的最小值 。
Object obj1 = Collections.min(list);
// 根据 自定义Comparator接口的实现类定义的排序 规则 返回 集合中collection集合中的最小值
Collections.min(list, Comparator);

//返回一个对象在集合中出现的次数。
int in =Collections.frequency(list, 123);

// 把集合中所有的old 替换成 new
Collections.replaceAll(list, old, new);

 * 
 * 
 * 
 * 
 * @author Administrator
 *
 */

告别校准烦恼:用ADS1220和松下ERA3电阻实现±0.05℃精度的Pt100测温方案(附完整电路图) 本文详细介绍了如何利用TI的ADS1220 24位ΔΣ ADC与松下ERA3系列精密电阻构建±0.05℃精度的免校准Pt100测温系统。通过比例测量法架构和关键器件选型,解决了传统方案中的校准繁琐和长期稳定性问题,特别适用于工业控制、医疗设备等高精度温度测量场景。 阅读详情

相关推荐

告别蓝牙音质妥协:用ESP32和PCM5102搭建WiFi无损音频播放器(附完整代码)

本文详细介绍了如何利用ESP32微控制器和PCM5102 DAC芯片构建一套完整的WiFi无损音频流媒体系统,彻底摆脱蓝牙协议的音质束缚。从硬件原理到软件实现,包括核心器件选型、电路设计、I2S音频驱动实现以及系统优化方案,帮助音频发烧友实现高保真无线音频传输。

weixin_30733003的博客 541

Java SE系列笔记——集合

集合框架 目录集合框架ArrayListHashSetHashMap Collection接口:单列集合,用来存储对象 List接口:存储有序可重复的数据。 包括:ArrayList、LinkedList、Voctor Set接口:存储无序的,不可重复的数据。 包括:HashSet、LinkedHashSet、TreeSet Map接口:键值对存储(Key-Value) 包括:HashMap、LinkedHashMap、TreeMap、HashTable、Properties ArrayList

weixin_46002478的博客 198

从ADRV9002到ADRV9003:手把手教你移植FPGA驱动,避开那些官方没说的坑

本文详细介绍了从ADRV9002到ADRV9003的FPGA驱动移植实战指南,重点解析了两者在硬件架构上的关键差异,如通道配置和DPD功能的移除。通过提供完整的移植步骤、调试技巧和性能优化建议,帮助工程师避开官方文档未提及的常见陷阱,实现高效驱动开发。

weixin_28738397的博客 173

Java SE基础学习笔记5·集合

基本的集合分类

qxf1969851571的博客 774

如何让Arduino IDE支持你手里的STM32 nucleo开发板

Arduino IDE开发环境在默认情况下不支持STM32 NUCLEO开发板,只有通过添加附加开发板管理包才能使用。目前为止,只有一部分板子支持使用Arduino IDE开发环境进行开发,分别是 Nucleo F207ZG, Nucleo F429ZI, Nucleo F030R8, Nucleo F091RC, Nucleo F103RB, Nucleo F303RE, Nucl...

mzw72188552的专栏 8971

vmware vsphere 证书过期告警处理方法

vSphere Clinet 管理页面出现“证书告警” ,检查证书未发现现有证书有过期现象

m0_51902127的博客 3635

Java SE 学习笔记 - 集合框架

集合初识、集合框架分类、单列集合、双列集合、泛型、迭代器、增强For、Lambda表达式、Collections 集合工具类、可变参数

m0_54412570的博客 200

1991-2020年气候背景数据集

2011 年,国家气象信息中心对 1951-2010 年 2400 余个地面站气温、气压、降水、湿度、日照等 19 大要素项的定时观测资料和日极值资料中由数字化过程中引起的系统性问题(例如数字化遗漏、整段拷贝等问题)进行质量检测、质量控制和错误数据的更正,形成较高质量的地面基础资料集。1991-2020年中国地面气候值数据集提供了中国2438个站点的气温、降水、气压、风向风速、相对湿度、水汽压、云、天气现象、能见度、蒸发、积雪、地温、冻土、日照共14个要素的气候背景信息。数据时间:30年平均。

地球资源数据云的官方博客 1593

Java SE 学习笔记(十)—— 集合(2)

集合

hu_wei123的博客 947

【数据集】waymo motion dataset介绍与数据解析可视化

waymo motion数据集下载,数据描述,数据特征和地图特征,数据解析并完成数据可视化

shuaixio的博客 5179

黑猫带你学eMMC协议第2篇:eMMC部分相关名词释义

1 前言 1.1 声明 本文依据eMMC JEDEC5.1、网络资料及个人工作经验整理而成,如有错误请留言。 本文结合eMMC JEDEC5.1协议手册查看效果更佳。 1.2 本文背景 本文关键词不包括emmc jedec5.1协议第3章节:《Terms and definitions》内容。关于emmc协议层的关键词,直接查阅spec相关章节即可,清晰明了,此处没必要再列出。 本文为本人工作学习中常听到或常用到关乎于emmc/flash的一些关键词合集,没有固定分类,不需要强行记忆,供查询使用。 1.

黑猫奥利奥的博客 7427

Java SE 学习笔记(十)—— 集合(1)

数组的长度是固定的,无法适应数据变化的需求。为了解决这个问题,Java提供了另一个容器 集合类,让我们可以更便捷的存储和操作对象数据。 是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储的元素。 中可不断添加元素,其大小也自动增长。对于ArrayList来说,有一个尖括号代表泛型。 泛型:也就是装在集合当中的所有元素,全都是统一的什么类型。注意: 注意:(1) :将指定的元素添加到此集合的尾部,返回值代表添加的动作是否成功 (2) :移除此集合中指定位置上的元素。返回被删除的元

hu_wei123的博客 438

TC3XX - MCAL知识点(十一):WDG EB-tresos配置说明与代码浅析

在AUTOSAR中,看门狗栈实现了三种监控机制:实时监控:用于周期软件的定时监控期限监督:针对非周期软件逻辑监督:用于监督执行顺序的正确性看门狗(WDG)驱动实现AUTOSAR(4.2.2)中规定的看门狗SWS,提供初始化、改变操作模式和设置触发条件(超时)等服务,供看门狗硬件(WDT)用户使用。WDG驱动的用户包括:模式管理模块(用于初始化),WdgM通过Wdglf设置触发条件和驱动运行模式设置。WdgM实施上述监督机制。AUTOSAR扩展触发概念,以支持窗口看门狗模式。

梦想技术家 3599

JAVA SE学习笔记(九)Java集合

1 Java集合框架 1.1 概述 1.2 Collection和Iterator接口 1.2.1 Collection接口 1.2.2 Iterator接口 1.2.3 遍历Collection 2 具体的集合 2.1 链表(List) 2.1.1 List接口 2.1.2 ListIterator接口 2.1.3 ArrayList和Vector实现类 2.1.4 固定长度的Lis...

源圈 241

visio安装包

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

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

Java SE 学习笔记 10 抽象类与多态、接口、集合

抽象类与多态、接口、集合一、抽象类与多态1、抽象类的意义和使用2、多态二、接口三、集合 一、抽象类与多态 1、抽象类的意义和使用 为什么要用抽象类 在面向对象的概念中,所有的对象都是通过类来表述,但并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一类具体的对象,这样的类就是抽象类。 抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。 抽象类的使用 抽象类需要注意以下几点: 1、abstract放在class前,指明该类是抽

zhangzhang__yan的博客 201

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Java SE 学习笔记(十)—— 集合(3)

集合

hu_wei123的博客 911

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

学习笔记(十八)Java SE(十一)集合框架

Java SE 本系列为本人学习情况记录,部分资料来自老师课件或书籍摘录。

形容的博客 189

Java SE 集合专题笔记 韩顺平网课随笔记录

Java集合

qq_51725966的博客 291

Java SE 学习笔记(集合与泛型)

1、Collection系列集合 2、 集合的遍历 3、Map系列映射集合 ...

魔法革1996 259

Java SE学习笔记:MAP与SET(集合与映射)

qq_15070613的博客 311

JAVA SE 学习笔记-03.Java语言高级-04-集合-01 Collection集合

01_Collection集合概述.flv 此视频只有音频,没有视频 02_集合框架介绍avi.avi 03_Collection集合常用功能.avi

温柔一刀 278

【大数据】学习笔记 1 Java SE 第11章 集合与迭代器 11.1 Collection集合

【大数据】学习笔记 1 Java SE 第11章 集合与迭代器 11.1 Collection集合

代码改变世界 179

【大数据】学习笔记 1 Java SE 第12章 集合的重要接口 12.3 Collections工具类

【大数据】学习笔记 1 Java SE 第12章 集合的重要接口 12.3 Collections工具类

代码改变世界 160

【大数据】学习笔记 1 Java SE 第11章 集合与迭代器 11.2 Iterator迭代器

【大数据】学习笔记 1 Java SE 第11章 集合与迭代器 11.2 Iterator迭代器

代码改变世界 228

Java教程:SE进阶【十万字详解】(上)

大家好,我是程序员小羊!"面向对象和面向过程的思想对比 :​面向过程 : 是一种以过程为中心的编程思想,实现功能的每一步,都是自己实现的​面向对象 :是一种以对象为中心的编程思想,通过指挥对象实现具体的功能客观存在的事物皆为对象 ,所以我们也常常说万物皆对象。类的组成是由属性和行为两部分组成属性:在类中通过成员变量来体现(类中方法外的变量) 行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)类的定义步骤:​ ① 定义类​ ② 编写类的成员变量​ ③ 编写类的成员方法

yang_xs的博客(只讲干货) 3742

Java SE:集合

单列集合顶层接口Collection 1. 单列集合(List、Set)    迭代器(Iterator)遍历    增强for遍历    Lambda表达式遍历    列表迭代器(ListIterator)遍历   1.2 泛型   1.3 泛型通配符 ?   HashSet   TreeSet 2 双列集合(Map)   键找值遍历   键值对遍历   Lambda表达式遍历 可变参数

2301_79526467的博客 2783
上一篇: java 异常处理
下一篇: java IO流 笔记1
prefectjava
博客等级 码龄16年 26粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

prefectjava

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

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

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

打赏作者

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

抵扣说明:

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

余额充值