重要数据类型

C++ 数据类型 作用:将不同类型的数据组合为一个整体,用于表示复杂对象。struct Student { // 定义结构体类型int id;// 创建结构体变量cout << tom.name << "的成绩是:" << tom.score;// 访问成员进阶特性:结构体可包含函数成员(C++ 中与 class 的区别主要在于默认访问权限)。 阅读详情

重要数据类型

列表数据类型
  • 在实际开发中,经常需要将一组(不只一个)数据存储起来,以便后边的代码使用。列表就是这样的一个数据结构。且列表是Python中最基本也是最常用的数据结构之一。

  • 什么是数据结构呢?

    • 有列表,,元组,字典,字符串等。
    • 通俗来讲,可以将数据结构当做是某种容器,该容器是用来装载或者存储数据的。不同的数据结构决定了对数据不同的组织方式。
    • 那么当数据被装载或者存储到了某个数据结构中后,那么就可以基于该数据结构的特性对数据进行不同形式的处理和运算。
  • 列表的创建方式

    • 创建一个列表,只要把逗号分隔的不同的数据元素使用方括号括起来即可。列表内的元素,可以是其它任意类型的数据,可多层嵌套列表,元素个数无限制。

    • alist = [1,2,3,4,5]
      items = [1,'优快云',12.34]
      列表中可以存储任意类型的数据
  • 列表元素:

    • 存储在列表数据结构中的每一个数据被称为列表元素,简称元素。
  • 列表索引:

    • 列表中的每个元素都被分配一个数字作为索引,用来表示该元素在列表内所排在的位置。第一个元素的索引是0,第二个索引是1,依此类推。
  • 列表特性:

  • Python的列表是一个有序可重复的元素集合,可嵌套、迭代、修改、分片、追加、删除,成员判断。

  • 访问列表内的元素

    • 列表从0开始为它的每一个元素顺序创建下标索引,直到总长度减1。要访问它的某个元素,以方括号加下标值的方式即可。注意要确保索引不越界,一旦访问的 索引超过范围,会抛出异常。所以,一定要记得最后一个元素的索引是len(list)-1。

    • alist = [1,12.3,'优快云']
      print(alist[2])  #'优快云'
      print(alist[0:2]) #[1, 12]
      print(alist[6]) #使用索引和切片的时候,不可以访问超出索引范围的元素
  • 修改元素的值

    • 直接对元素进行重新赋值

    • alist = [1,12.3,'优快云']
      alist[1] = 100.123
      print(alist)
  • 删除元素

    • 使用del语句或者remove(),pop()方法删除指定的元素。

    • alist = [1,12.3,'优快云']
      # del alist[0] #删除下标为0的列表元素
      # alist.remove('优快云') #删除列表中优快云这个列表元素
      # alist.pop() #默认情况下pop会把列表中最后一个元素删除
      alist.pop(2) #将列表中下标为2的元素进行删除
      print(alist)
  • 切片

    • 切片指的是对序列进行截取,选取序列中的某一段。

      • 切片的语法是: list[start:end]

      • 同字符串的切片机制一样

      • 以冒号分割索引,start代表起点索引,end代表结束点索引。省略start表示以0开始,省略end表示到列表的结尾。注意,区间是左闭右开的!也就是说[1:4]会截取列表的索引为1/2/3的3个元素,不会截取索引为4的元素。分片不会修改原有的列表,可以将结果保存到新的变量,因此切片也是一种安全操作,常被用来复制一个列表,例如newlist = lis[:]。

      • 切片过程中还可以设置步长,以第二个冒号分割,例如list[3:9:2],表示每隔多少距离取一个元素。

  • 列表的内置方法

    • 上文中我们说过,数据存储到不同的数据结构中,可以基于该数据结构的特性对数据进行指定形式的操作和处理。下图中的方法是列表专有的内置方法,请熟记于心。

    • alist = ['优快云',"18","99.5",'北京']
      # 将列表转换成字符串
      ret = '-'.join(alist) #将列表中的每一个列表元素根据-为间隔进行拼接,返回字符串结果
      print(ret)
        
      # 如何将字符串转换成列表
      s = 'hello-name-优快云-age'
      ret = s.split('-')
      print(ret)
      
      alist = [3,8,5,7,6,2,1]
      alist.sort() #对列表元素进行排序
      print(alist)
      
      a = [1,2,3]
      a.append('优快云') #向列表尾部添加一个元素
      print(a)
       
      a1 = [1,2,3]
      a1.insert(1,999) #向列表下标为1的位置添加一个元素
       print(a1)

joinj()将列表类型转换为字符串类型

split()将字符串类型转换为列表类型

元组数据类型
  • 用方括号括起来的是列表,那么用圆括号括起来的就是元组。元组可以看作是不可变的列表。

  • 元组也是序列结构,但是是一种不可变序列,你可以简单的理解为内容不可变的列表。除了在内部元素不可修改的区别外,元组和列表的用法差不多。 

    • t = (1,2,3,4,5)
  • 元组与列表相同的操作:

    • 使用方括号加下标访问元素
    • 切片(形成新元组对象)
    • count()/index()
    • len()/max()/min()
  • 元组中不允许的操作,确切的说是元组没有的功能:

    • 修改、新增元素
    • 删除某个元素(但可以删除整个元组)
    • 所有会对元组内部元素发生修改动作的方法。例如,元组没有remove,append,pop等方法。
  • 提问:

    • 在学完列表后,在使用元素我们会发现元组由于是一个不可变序列,则很多操作会受到限制,这不能,那不能,要你何用,我直接用列表不行吗?

    • 还是有用的,有些数据一旦创建之后就不允许修改了,这些数据就适合用元组来创建,比如主机地址和端口(ip,port),("192.168.1.1", 80),两者捆绑在一起,不允许修改。

    • ip_port = ("192.168.1.1", 8080)
字典数据类型
  • 字典的实现机制:

  • Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。

  • 字典特性:

    • 字典包含的元素个数不限,值的类型可以是任何数据类型!但是字典的key必须是不可变的对象,例如整数、字符串、bytes和元组,最常见的还是将字符串作为key。列表、字典、集合等就不可以作为key。同时,同一个字典内的key必须是唯一的,但值则不必。
    • 注意:从Python3.6开始,字典是有序的!它将保持元素插入时的先后顺序!请务必清楚!
  • 创建字典

    • 字典的每个键值对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,例如:
    • d = {key1 : value1, key2 : value2 }
    • 
      # 键值对:key : value
      # key:只能使用不可变类型的数据充当,通常使用字符串
      # value:任意数据类型的值充当
      # 字典中无法存储重复的键值对
      dict_1 = {'name':'优快云','age':18,'score':100,'age':18}
      # 注意:不要在字段中存储相同的key,value可以相同
      dict_2 = {'name':'优快云','age':18,'age':20}
      print(dict_2)
  • 访问字典

    • 虽然现在的字典在访问时有序了,但字典依然是集合类型,不是序列类型,因此没有索引下标的概念,更没有切片的说法。但与list类似的地方是,字典采用把相应的键放入方括号内获取对应值的方式取值。

    • d = {'name':'优快云','age':20,"scores":[100,120,99]}
      # 根据key访问对应的value值
      print(d['name'],d['scores']) #依次访问name和scores对应的value值
      print(d.get('name')) #通过get使用对应的key访问对应的value值
       
      # 注意:使用[]访问不存在的key对应的value值程序会报错
      # print(d['adress']) #程序报错
      
      # 注意:使用get访问不存在的key程序不会报错,但是会返回None这个空值
      print(d.get('address'))
  • 添加和修改

    • 增加就是往字典插入新的键值对,修改就是给原有的键赋予新的值。由于一个key只能对应一个值,所以,多次对一个key赋值,后面的值会把前面的值冲掉。
    • d = {'name':'优快云','age':20,"scores":[100,120,99]}
      d['name'] = 'jay' #给存在的key修改对应的value值
      d['address'] = 'Beijing' #给一个不存在的key赋值表示新增键值对
      del d['age'] #删除age键值对
      print(d)
  • 删除字典元素、清空字典和删除字典

    • 使用del关键字删除字典元素或者字典本身,使用字典的clear()方法清空字典。
    • d = {'name':'优快云','age':20,"scores":[100,120,99],'name':'优快云'}
      del d['name']
      print(d)
      d = {'name':'优快云','age':20,"scores":[100,120,99],'name':'优快云'}
      del d
      print(d)
      
      d = {'name':'优快云','age':20,"scores":[100,120,99],'name':'优快云'}
      d.clear()
      print(d)
  • 字典的重要方法
    • d = {'name':'优快云','age':20,"scores":[100,120,99]}
      print(d.keys()) #返回字典中所有的key
      print(d.values()) #返回字典中所有的value
      print(d.items()) #返回字典中所有的键值对
set集合
  • 特性

    • set集合是一个无序不重复元素的容器,集合数据类型的核心在于自动去重。
  • 创建方式

    • 集合使用大括号{}框定元素,并以逗号进行分隔。但是注意:如果要创建一个空集合,必须用 set() 而不是 {} ,因为后者创建的是一个空字典。集合除了在形式上最外层用的也是花括号外,其它的和字典没有一毛钱关系。
    • s = {1,2,3,'优快云',99.9,1,2,3}
      s = set()
      print(s)
  • 注意:

    • 集合既不支持下标索引也不支持字典那样的通过键获取值。
  • 作用

    • 集合数据类型属于Python内置的数据类型,但不被重视,在很多书籍中甚至都看不到一点介绍。其实,集合是一种非常有用的数据结构,它的去重和集合运算是其它内置类型都不具备的功能,在很多场合有着非常重要的作用,比如网络爬虫。
    • 我们都知道爬虫需要发散链接,一个页面连着另一个页面,不断爬取所有的超级链接,才能把整个站点爬取下来。然而在成千上万个页面链接中,有很大一部分可能是重复的链接或者循环互链,如果不对链接进行去重处理,那么爬虫要么陷入死循环内,要么就是出现错误。这个时候可以用集合的去重功能,保留一个曾经爬过页面的不重复的元素集合,每爬一个新链接,看看集合里是否曾经爬过,没有就开始爬,并将链接加入集合,爬过就忽略当前链接。在这里,用集合远比用列表或者字典要来得高效、节省得多。
C++语言的数据类型 C++允许程序员定义自己的数据类型,这使得开发者可以为特定问题创建更具表达力的结构。用户自定义数据类型主要包括类、结构体、枚举和联合体。C++中的数据类型是程序设计的基础,选择合适的数据类型可以有效提升程序的执行效率和可读性。从基本数据类型到复合数据类型,每种类型都有其特定的用途和场景。在深入理解数据类型的基础上,开发者可以更好地运用C++进行高效编程。在实际开发中,合理组织和使用数据类型,不仅能够减小内存的使用,确保程序的效率,还能够提高代码的可读性和可维护性。 阅读详情

相关推荐

Java中的数据类型有哪些?什么是基本数据类型和引用数据类型?

但是,如果 finally 块中也包含了 return 语句,那么 try 或 catch 块中的 return 语句将被忽略,程序将返回 finally 块中的值。当 try 块中的代码发生异常时,程序的控制流会立即离开 try 块,并查找与该异常匹配的 catch 块。如果 try 块或 catch 块中的代码抛出了新的异常,并且该异常没有被处理,那么程序将会终止并打印出新异常的堆栈跟踪。基本数据类型在内存中存储的是实际的数据值,而引用数据类型在内存中存储的是对象的引用。

2402_84885073的博客 1111

js数据类型(基本数据类型 | 引用数据类型)

一、数据类型 JS分两种数据类型: 基本数据类型:**Number、String、Boolean、Null、 Undefined、Symbol(ES6),**这些类型可以直接操作保存在变量中的实际值。 引用数据类型:Object(在JS中除了基本数据类型以外的都是对象,数据是对象,函数是对象,正则表达式是对象) 1、基本数据类型(六种)存放在栈中 基本数据类型是指存放在栈中的简单数据段,数据大小确定,内存空间大小可以分配,它们是直接按值存放的,所以可以直接按值访问 1、Number数值类型 Num

Shaoyouiqng的博客 1万+

FPGA_adc采样并通过以太网发送到上位机

本项目使用FPGA-ZYNQ-7020采集8通道ADC数据,通过以太网上传到上位机显示波形PL部分包括数据的获取与处理,数据从PL传递到PSPS部分包括以太网的发送,由PL到PS的中断触发本文章不详细讲解背后原理 但保证每一步足够详细,跟着就能实现。本人FPGA平台 大磊FPGA7020开发板 vivado2020.2 vitis2020.2 匿名上位机公开版

weixin_42304868的博客 5626

基本数据类型和引用数据类型的区别

java有两种不同的数据类型:基本数据类型和引用数据类型 一、基本数据类型 基本的数据类型有:`undefined,boolean,number,string,null.基本类型的访问是按值访问的,就是说你可以操作保存在变量中的实际的值。有如下特点: 1、基本数据类型的值是不可变的(我们不能给基本数据类型添加属性和方法); 2、基本数据类型的比较是值的比较(只有他们的值相等的时候才是相等的); 3...

Brandon的博客 3万+

国家基因组科学数据中心(NGDC)---组学原始数据如何上传GSA

在发表文章之前我们需要将测序的原始数据上传到一个公共库,并在文中提供accession number,实现数据的公开共享,这是国际惯例。以前我们上传数据时只能上传到美国国立生物技术信息中心(NCBI)、欧洲生物信息学研究所(EBI)、日本核酸数据库(DDBJ),现在中国科学院北京基因组研究所(国家生物信息中心)国家基因组科学数据中心 (CNCB-NGDC)—中国的 "NCBI" 已经建立并日渐完善。组学原始数据归档库(GSA)是组学原始数据汇交、存储、管理与共享系统,是国内首个被国际期刊认可的组学数据发布平

sisichen 1万+

一位海外开发者的 OpenSPG KAG 实践分享

KAG 是一个以创建和操作知识图谱为核心的框架。知识图谱是数据之间相互关联的可视化和结构化表示,对于搜索引擎、推荐系统和机器学习等应用至关重要。KAG 的目标是提供一个强大的平台,使开发者能够:轻松构建图谱;通过增强算法丰富数据;集成人工智能,以进行更精确的推理。通过理解 KAG,可以明显看出,这个框架旨在帮助从初学者到专业开发者,在项目中创造更优的解决方案。它在简便性和集成方面的优势,使其成为下一代基于数据的应用程序的前景工具。

金融机器智能社区 3405

JAVA基本数据类型与引用数据类型

基本数据类型 对象类型 在栈中进行分配 在堆中进行分配 基本类型之间的赋值是创建新的拷贝 对象之间的赋值只是传递引用 “==”和“!=”是在比较值 “==”和“!=”是在比较两个引用是否相同

Coding_Zhu的博客 1万+

Delphi 12.3 精简绿色版下载

Delphi精简绿色版基于原版安装,去掉了InterBase、法语、德语、日语,只保留了Delphi Windows 32和Delphi Windows 64桌面开发,其余部分未做任何修改。Delphi精简绿色版不含任何破解,仅供学习和研究,24小时后请自行删除,如需继续使用Delphi,请购买正版。绿色版基于原版安装,未做任何精简和修改。绿色版不含任何破解,仅供学习和研究,24小时后请自行删除,如需继续使用RAD Studio,请购买正版。

全粘工程师 4302

MPI笔记(四)数据类型和派生数据类型

1. 基础数据类型 MPI C 语言数据类型 MPI_CHAR signed char MPI_SHORT signed short int MPI_INT signed int MPI_LONG signed long MPI_UNSIGNED_CHAR unsigned char MPI_UNSIGNED_SHORT unsigned short int ...

David 1万+

第八篇 永磁同步电机控制-MTPA、MTPV

MTPA 的全称是 Maximum Torque Per Ampere,即 最大转矩电流比控制。核心思想:在输出特定转矩时,通过控制定子电流的幅值和相位(即d轴和q轴电流的分量),使得所需要的定子电流幅值最小。通俗理解:就是用“最省电”的方式产生所需要的力矩。就像开车时,找到一个最合适的油门和档位配合,使得在输出相同动力时,油耗最低。

深耕汽车电子:AUTOSAR、电机控制,助力数字汽车 1870

【49】软考软件设计师——冲刺复盘:高频易错点与应试策略|复盘清单+应试技巧

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第49篇,属于**模块六:冲刺与模拟**终篇,聚焦考前最后阶段的“精准复盘+应试提分”。全文围绕“高频易错点清零、答题时间优化、应急处理落地”三大核心,梳理9大知识领域的典型易错点(附避坑技巧)、优化版答题时间分配(含取舍策略)、考中全场景应急方案,配套可直接使用的“复盘清单”和“应试技巧手册”,帮助考生在最后阶段查漏补缺、固化得分逻辑,避免因低级错误丢分,以“稳、准、快”的状态应对考试。下一篇第50篇(终章)将进行全专栏知识体系回顾、考试策略总结

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 439

从基本数据类型到抽象数据类型

      在冯 · 诺依曼体系结构中,程序代码和数据都是以二进制存储的,因此,对计算机系统和硬件本身而言,数据类型的概念其实是不存在的。机器指令和汇编语言中,数据对象是用二进制数表示的,内存里存的都是二进制,对于内存里存的内容,可以说 “你认为它是什么,它就是什么”。在高级语言中,为了有效地组织数据,规范数据的使用,提高程序的可读性,方便用户使用,引入了整型,实型等基本数据类型。不同的高级语言会...

weixin_42257806的博客 5186

基于YOLOv8的人群聚集检测系统:含UI界面设计与数据集应用

人群聚集检测是智慧城市、公共安全和疫情防控等领域的重要任务。本文结合YOLOv8最新目标检测技术,设计并实现了一个高效的人群聚集检测系统,支持可视化UI界面操作,方便用户实时检测和分析视频中的人群密度。本文详细介绍了系统设计思路、使用的数据集、YOLOv8模型训练和推理过程,以及UI界面的开发与整合。最后通过实验验证了该系统的实用性和性能表现。更灵活的模型架构强化的特征融合网络(PAN++)自动混合精度训练支持支持多任务学习(目标检测+分类+分割)预训练模型丰富,适应多种应用场景。

YOLO 433

【Java基础之数据类型】String 属于什么数据类型

1、前言 首先提出一个问题在 Java 中 String 属于那种数据类型? 我的一个朋友是这么说的,「what?是不是有很多疑惑,int、double、String 不都是经常一起使用的么,应该都是同一种数据类型吧,基本数据类型?」 大家认为呢?「老公你快说句话啊!」 对于初学者而言可能没有对数据类型没有很强的意识,没有特别的注意到这里,都会认为 int、double、String 基本上都是...

looper梦呓 4279

【网络安全】零基础入门网络安全劝退指北

作为从16年接触网络安全的小白,谈谈零基础如何入门网络安全,有不对的地方,请多多指教。 这些年最后悔的事情莫过于没有把自己学习的东西积累下来形成一个知识体系。 后续我也会陆续的整理网络安全的相关学习资料及文章,与大家一起探讨学习。 如何入门 简单了解网络安全 网络安全就是指的确保网络系统中的数据不被别人破坏,而网安工程师就是涉及程序来维护网络安全。 网安方向有很多职位,比如安全产品工程师,安全分析师,数据恢复工程师,网络架构工程师,安全编程工程师,以及网络集成工程师等。 工作内容主要包括: 安全评测,风

互联网老辛 4585

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

9种数据类型,数据类型区别及判断数据类型方法

9种数据类型 基本数据类型: String,Number,null,undefined,Boolean(通常所说的五种原始数据类型),Symbol,BigInt(ES6新增,稍后解释) 引用类型: object [基本对象,Set,Map,new RegExp(),new Date(),...],function [函数,构造函数,new Error(),...] 以上就是通常所说的9种数据类型。 Symbol: 唯一性,用作对象的属性 vuex或redux中,派发 Sym...

Alice_czy的博客 6696

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

JavaScript的数据类型以及数据类型的转换

JavaScript的数据类型以及数据类型的转换基本数据类型字符串型数据数值型数据复合数据类型对象的概念日期对象全局对象数学对象字符串对象数组其他数据类型函数空值不确定型数据类型的转换隐式转换显示转换功能快捷键 基本数据类型 字符串型数据 在JavaScript中,字符串型数据是用引号括起来的文本字符串。 在JavaScript中不区分“字符”和“字符串”,字符也被当做字符串处理。在字符串中可以包...

qq_43419105的博客 2586

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

JavaScript 中的所有数据类型 & 判断数据类型的方法

一文总结所有数据类型 & 判断数据类型的方法

Luckyfif的博客 2960

Java数据类型:基本数据类型和引用数据类型

前面我们提到Java语言是强类型语言,编译器存储在变量中的数值具有适当的数据类型。学习任何一种编程语言都要了解其数据类型,本文将详细介绍 Java 中的数据类型。 Java 语言支持的数据类型分为两种:基本数据类型(Primitive Type)和引用数据类型(Reference Type)。 Java基本数据类型 基本数据类型包括 boolean(布尔型)、float(单精度浮点型)、char(字符型)、byte(字节型)、short(短整型)、int(整型)、long(长整型)和 double ..

languan1639397的博客 5608

HBase数据类型:基本数据类型和复合数据类型

1.背景介绍 HBase是一个分布式、可扩展、高性能的列式存储系统,基于Google的Bigtable设计。HBase提供了一种高效的数据存储和查询方式,支持大规模数据的读写操作。在HBase中,数据类型是一种重要的概念,用于描述存储在HBase表中的数据的结构和类型。在本文中,我们将讨论HBase数据类型的基本数据类型和复合数据类型,以及它们在HBase中的应用和实现。 1.背景介绍 HB...

AI天才研究院 3112

JS数据类型、数据类型检测、数据类型转换

基本数据类型:Number、String、Boolean、Undefined、Null、Symbol(ES新增)引用数据类型:Object(包括Array、Function)注意:逻辑上讲,null值表示一个空对象指针,这也是给typeof传一个null会返回"object"的原因在定义将来要保存对象值的变量时,建议使用null来初始化,不要使用其他值。这样,只要检查这个变量的值是不是null就可以知道这个变量是否在后来被重新赋予了一个对象的引用。

SignalFire的博客 1637

Hive里的数据类型——基本数据类型 & 集合数据类型

目录 一、Java数据类型 1. 八种基本数据类型 2. 引用数据类型 二、Hive数据类型 1. 基本数据类型(对应Java中的数据类型) 2. 集合数据类型 Hive的数据类型比较特殊,与传统Java数据类型不一样,先回顾一下Java的数据类型 一、Java数据类型 1. 八种基本数据类型 (1)数值型-整数:byte1B、short2B、int4B、long8B (2)...

攻城狮Kevin 3264

基本数据类型与引用数据类型的区别

Java中基本数据类型与引用数据类型的区别

蓝色海洋-探寻 8754

二,JavaScript之数据类型。原始数据类型,引用数据类型,数据类型转换,查看数据类型。

js数据类型详细介绍,不同之间的类型互相转换,以及分别查看不同的数据类型(number,string,boolean,symbol,null,undefined,object,array,function),(typeof,instanceof ,Object.prototype.toString.call())。

qq_55006020的博客 1244

数据类型与数据类型分类

数据类型就是数据的属性和操作,决定了数据在程序中的存在和使用方式。int类型属性:代表一个整数值,该类型值共享整数的属性。 int类型:操作-可以改变int类型值的符号,两个int类型值可以相加、相减、相乘、相处、求模。注意:char也属于整数类型,因为它实际上存储的是整数,而不是字符(转换关系见ASCII码表)。数据类型包括:基本数据类型、派生数据类型和抽象数据类型; 基本数据类型包括整数类型和浮点数类型; 派生数据类型包括布尔类型、指针和聚合类型。聚合类型又包括数组、结构体、枚举和联合。 其关系如下图所

xiawucha159的博客 4135
上一篇: 基本数据类型
下一篇: 流程控制语句
天*天
博客等级 码龄3年 27粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值