UML基础

UML从入门到精通(一)—— 基础篇 产品经理必备技能 | UML从入门到精通(一)—— 基础篇 目录1.UML介绍1.1 UML是什么1.2 UML特点1.3 UML作用1.4 UML与编程语言区别2.UML结构3.UML基本构造块3.1 事物、关系、图3.2 UML基本构造块——事物3.2.1结构事物3.2.2行为事物3.2.3分组事物3.2.4注释事物3.3 UML基本构造块——关系3.4 UML基本构造块——图3.4.1UML... 阅读详情
UML(Unified Modeling Language,统一建模语言)是一种面向对象的建模语言。
UML的主要作用是帮助用户对软件系统进行面向对象的描述和建模。

UML是可视化的建模语言。

建模是通过将用户的业务需求映射为代码,保证代码满足这些需求,并能方便地回溯到需求的过程。

视图(View)

——表达系统某一方面特征的UML建模元素的子集,由多个图构成,是在某一个抽象层上对系统的抽象表示。

•用例视图(usecase view)
——用例视图定义了系统的外部行为,帮助用户理解和使用系统。
•逻辑视图(logicalview)
——逻辑视图描述了支持用例图功能的逻辑结构。
•组件视图(componentview)
——组件视图描述实现的视图,对模型中的组件建模,描述应用程序搭建的软件单元以及组件之间的依 赖,从而可以估计更改的影响。它还对类及其它元素在组件中的分配建模。
•配置视图(deploymentview)
——配置视图显示了系统的软件和硬件的物理配置。 

图(Diagram)

——模型元素集的图形表示,通常是由弧(关系)和顶点(其他模型元素)相互连接构成的。
视图是由图组成的,UML定义了9种图:

用例图(Use Case Diagram)

用例(Use Case)
用例用来记录用户或外界环境从头到尾使用系统的一系列事件。
活动者(Actor)
活动者可以是人,也可以是另一个系统。它与当前的系统进行交互,向系统提供输入或从系统中获得输出。
依赖、泛化及关联关系

一般将活动者和用例之间的关系称为通信。

在UML中,关系使用实线表示,实线可以有箭头,也可以没有箭头。


用例与用例之间可以存在的关系分为3种:
泛化(也称为概括)(generalization)

泛化表示几个元素的某些共性。

在用例泛化中,子用例表示父用例的特殊形式。子用例从父用例处继承行为和属性,还可以添加行为或覆盖、改变已继承的行为。
当系统中具有一个或多个用例是较一般用例的特化时,就使用用例泛化。
另外、活动者和活动者之间也可以存在泛化关系。
包含(include)

包含关系使得一个用例的功能可以在另一个用例中使用。

一般在如下两种情况下引入包含关系:

如果两个以上的用例有相同的功能,则可以将这个功能分解到另一个用例中。

一个用例的功能太多时,可以用包含关系建立两个小的用例。

扩展(extend)

扩展关系是把新行为插入到已有用例(基础用例)的方法。

基础用例提供了一组扩展点(Extension points),在这些扩展点中可以添加新的行为,而扩展用例提供了一组插入片断,这些片断能够被插入到基础用例的扩展点。

基础用例不必知道扩展用例的任何细节,它仅为其提供扩展点。

事实上,基础用例没有扩展点也是完整的,这一点与包含关系有所不同。

在一般情况下,基础用例的执行不会涉及扩展用例的行为,如果特定条件发生,扩展用例的行为才被执行,然后流继续。




序列图(Sequence Diagram)

•序列图将交互关系表示为一个二维图,纵向是时间轴,时间沿竖线向下延伸。
横向轴代表了在协作中各独立对象的类元角色。类元角色的活动用生命线表示。
当对象存在时,生命线用一条纵向虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。

•消息用从一个对象的生命线到另一个对象的生命线的箭头表示。箭头以时间顺序在图中从上到下排列。
序列图中包含如下元素:
类角色
生命线
激活期
消息


协作图(Collaboration Diagram)

有两种交互图:

序列图(swquence diagram):强调消息时间顺序的交互图。

协作图(collaboration diagram):强调参加交互的各对象的组织。

协作图和序列图都来自UML元模型的相同信息,因此它们的语义是等价的,它们可以从一种形式的图转换成另一种形式的图,而不丢失任何信息。

活动图(Activity Diagram)

考虑使用流程图来描述事件流,在UML中把这种图称为活动图,它是事件流的另一种建模方式。

活动图用来捕捉用例的活动。

活动图着重描述操作(operation)以及用例或对象中的活动。

活动图是一种描述工作流的方式,它用来描述采取何种动作、做什么(对象状态改变)、何时发生(动作序列)以及在在何处发生(泳道)。

活动图可以用于以下目的:
描述一个操作执行过程中所完成的工作(动作),这是活动图最常见的用途。
描述对象内部的工作。
显示如何执行一组相关的动作,以及这些动作如何影响它们周围的对象。
显示用例的实例如何执行动作以及如何改变对象状态。
说明一次商务活动中的人(角色)、工作流组织和对象是如何工作的。

起始状态(start state)
终止状态(end state)
状态转移(state transition)
决策(decision)
守护条件(guard condition)
同步条(synchronization bar)
泳道(swimlane)


状态图(State Diagram)

•在UML中,可以使用状态图展现对象状态的变化。

•对象从产生到结束,可以处于一系列不同的状态。状态影响对象的行为,当这些状态的数目有限时,就可以用状态图建模对象的行为。状态图显示了单个类的生命周期。

•在画对象的状态图时,要考虑以下因素:

•对象有哪些有意义的状态。

•如何决定对象的可能状态。

•对象的状态和其他模型之间如何进行映射。
•状态图是状态节点通过转移连接的图,描述了一个特定对象的所有可能状态,以及由于各种事件的发生而引起状态之间的转移。
•大多数面向对象技术都使用状态图来描述一个对象在其生命周期中的行为。
状态图用初始状态表示对象创建时的状态,每一个状态图只有一个初始状态;但每一个状态图可能有多个终止状态。
从一个状态到另—个状态之间的连线称为转移(transitions)。
•状态图中可以有多个状态框,每个状态框中有两格:上格放置名称,下格说明处于该状态时,系统或对象要进行的活动(activity)。
•状态之间的过渡事件(event),对应对象的操作。事件有可能在特定的条件下发生,在UML中这样的条件称为守护条件(guandcondition)。发生事件时的处理称为动作(action)。

•

类图(Class Diagram)

关系(Relationship)是事物间的联系。

在类的关系中,最常用的有以下4种:

依赖(Dependency):表示类之间的使用关系。

•依赖是两个元素之间的关系,对一个元素(提供者)的改变可能会影响或提供消息给其他元素(客户)。

•在实际的建模中,类元之间的依赖关系表示某一类元以某种方法依赖于其他类元。

•从语义上理解,关联、实现和泛化都是依赖关系,但因为他们有更特别的语义,所以在UML中被分离出来作为独立的关系。

依赖是两个元素之间的关系,对一个元素(提供者)的改变可能会影响或提供消息给其他元素(客户)。

在实际的建模中,类元之间的依赖关系表示某一类元以某种方法依赖于其他类元。

从语义上理解,关联、实现和泛化都是依赖关系,但因为他们有更特别的语义,所以在UML中被分离出来作为独立的关系。

泛化(Generalization):表示类之间的一般和特殊的关系。

•泛化是一般事物(称为超类或父类)和该事物的较为特殊的种类(称为子类)之间的关系。

关联(Association):表示对象之间的结构关系。

关联是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系。
在UML中,关联用一条实线表示,可以加上箭头来表示导航性。
4种应用于关联的修饰
名称
角色
多重性
聚合

聚合是一种特殊的关系,它表示类间的关系是整体与部分的关系。更简单的说,关联关系中一个类描述了一个较大的事物,它由较小的事物组成,这种关系就是聚合,它描述了“has-a”的关系,即整体对象拥有部分对象。
在UML中,聚合关系用空心的菱形头的实线表示。

组成关系(Composition Relationship)

•聚合是表示部分和整体关系的关联,组成是更强形式的关联,整体有管理部分的特有的职责并且它们有一致的生命期。

•组成是另一种形态的聚合,它在聚合的基础上添加了更精确的一些语义。

•在UML中,聚合关系用实心的菱形头的实线表示。


实现(Realization):它是规格说明和其实现之间的关系。

实现是规格说明和其实现间的关系。它表示不继承结构而只继承行为。大多数情况下,实现关系用来规定接口和实现接口的类或组件之间的关系。

接口是能够让用户重用系统一组操作集的UML组件。一个接口可以被多个类或组件实现,一个类或组件也可以有多个接口。

可以在两种情况下使用实现关系:

在接口与实现该接口的类间

在用例以及实现该用例的协作间

实现关系还有一种省略的表示法:将接口表示为一个小圆圈并和实现它的类用一条线相连。

对象图(Object Diagram)

组件图(Component Diagram)

配置图(Deployment Diagram

用例图描述了从外部看来系统在做什么,强调的是系统在做什么而不是怎样做。

序列图和协作图都属于交互图(interaction diagram),描述了系统对象之间相互协作的过程。

序列图描述了对象之间的相互作用,什么时候对象之间发送怎样的消息进行交互。它按照时间序列进行组织,操作中的对象按照消息发生的次序列表。

协作图反映的信息和序列图相同,但是它侧重于对象的角色而不是消息发送的时序关系。

活动图本质上是一种特别的流程图,着重描述当个过程活动的流程。活动图显示了这些活动之间如何相互依赖。

状态图显示对象的可能状态以及状态之间的迁移,它回答的问题是对象在某时刻处于什么状态。

类图描述了系统中类的组成及它们之间的关系,方框内表示的是类,类与类之间的连线表示类的关联。

组件图对模型中的组件建模,描述应用程序搭建的软件单元以及组件之间的依赖,从而可以估计更改的影响。它还对类及其它元素在组件中的分配建模。

配置图显示了系统的软件和硬件的物理配置。

模型元素(Model Element)

——代表面向对象中的类、对象、消息和关系等概念,是构成图的最基本的元素。

通用机制(General Mechanism)

——用于表示其他信息,比如注释、模型元素的语义等。


UML基础之10种图 UML10种基本的图,包括图的定义应用以及画法,简单实用。 立即下载

相关推荐

深入理解「二进制掩码」:从原理到实践

二进制掩码本质上是一个二进制数,用于通过位操作(如与、或、非、异或等)选择性地操作目标数据的某些位。掩码的每一位(bit)可以看作一个“开关”,决定是否对目标数据的对应位进行操作。二进制掩码是位操作的灵魂,掌握它不仅能提升代码效率,还能解锁许多高级编程技巧。从基础的位提取到复杂的子集枚举,掩码的应用无处不在。希望本文的讲解和代码示例能帮助你快速上手,并在实际项目中灵活运用。如果你有更多关于掩码的疑问或应用场景,欢迎在评论区留言交流!

m0_73494933的博客 2432

UML基础知识

UML概述 UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。这些虽简单却非常重要,在UML规则中相互联系和扩展。 UML的语法...

追梦i赤子心的博客 959

C#---第十一课:对列表的各种操作,添加、删除、排序、列表长度、获取元素的索引、FirstOrDefault()、SingleOrDefault()、last()

1.添加元素 2.删除元素 (1)删除列表中指定的元素 (2)删除列表A中所有与列表B相交的元素---常规 (3)删除列表A中所有与列表B相交的元素---lambda 3.排序(正序、倒序) 4.获取列表的最大容量(长度)、已用容量 6.获取元素在列表中的位置(index) 7.判断某元素是否在列表List中 8.获取列表中第一个元素First() & FirstOrDefault() 9.获取列表中唯一元素Single() & SingleOrDefault() 10.获取列表中最后一个元素

Alien-Hu 3627

【UML】统一建模语言 UML 基础

统一建模语言开发之前 规划 骨架规划好,然后什么是建模,软件设计:把软件开发想清楚的过程软件工程:对软件开发全过程进行建模和管理互联网开发模式,敏捷开发。比如12个功能,只做一个核心功能,投放市场看用户反馈,早早与用户需求完全靠拢,极限编程。模型:对问题的书面上的无歧义文字或图形的描述。简而言之,模型是对现实的简化。通过模型,人们可以了解所研究事物的本质。模型是对现实实际问题的简化,比如地图。

Loup&卡普的博客 1444

低成本实现webhook接收端[python]

Webook本质上也是API,只不过是反向调用,即前端不主动发送请求,完全由后端推送。简单来说,Webhook是一个接受HTTP POST或是GET,PUT,DELETE的URL,一个实现了Webhook的API提供商就是在当事件发生的时候会向配置的URL发送信息,与请求-响应式不同,使用Webhook可以实时接收到变化。Ps:Webhook可能会发出大量的请求,确保接受的URL不被泄露或者应用能及时处理这些请求。

锡城小凯的博客 1万+

基于强化学习的多无人机路径规划

我们使用了Dueling Double Deep Q-Network(DDDQN)算法来训练智能体,这个算法在深度Q学习算法的基础上进行了升级,具有更快的收敛速度和更好的性能。本文提出了一种基于强化学习的算法,实现了多无人机路径规划,并提供相应的MATLAB代码。通过基于强化学习的多无人机路径规划算法,我们能够高效地解决复杂环境下的任务需求,并在实际应用中取得了良好的效果。首先,我们定义了状态空间和动作空间。实验结果表明,我们的方法能够有效地解决多无人机路径规划问题,提高了任务完成的效率和准确率。

DjjPython的博客 820

uml基础知识

通过UML图,开发人员可以更加直观地了解系统的各个组件之间的关系,以及系统的动态行为,从而更好地进行系统设计、开发、测试和维护等工作。UML图不仅可以用于软件系统的建模,还可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。总之,UML图的主要用途是通过可视化的方式描述和理解软件系统,帮助开发人员更好地进行系统设计、开发、测试和维护等工作。常用的9种图可以分为静态图和动态图两种,其中常用的静态图5种,动态图4种,

1026

(十二)深入理解蓝牙BLE之“移植Bluez 5.18源码到嵌入式平台”

在某嵌入式平台进行蓝牙开发,发现上面居然没有btmon,hciattach,hcitool等蓝牙调试工具,无奈之下,只好移植bluez协议栈到目标嵌入式平台,建议移植5.18版本(最新的5.54版本居然hcitool等工具不是默认编译的,需要修改Makefile才可以)。 看到很多讲解移植过程的文章都是需要积分的,觉得写一篇免积分的文章还是有些意义的,欢迎同行来交流。 移植环境:Linux ubuntu 目标平台:sigmastar 星宸科技 配置交叉编译工具链:export PATH=$PATH:

2964

UML学习入门就这一篇文章

1.1 UML基础知识扫盲 UML这三个字母的全称是Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言。 你可能会问:这明明是一种图形,为什么说是语言呢?伟大的汉字还不是从图形(象形文字)开始的吗?语言是包括文字和图形的!其实有很多内容文字是无法表达的,你见过建筑设计图纸吗?里面还不是很多图形,光用文字能表达清楚建筑设计吗?在建筑界,...

weixin_33860553的博客 1万+

YOLO26改进策略【小目标改进】| 添加专用于小目标的检测层 附YOLOv1~YOLOv11的检测头变化详解

在目标检测领域,小目标检测一直是一个具有挑战性的问题。算法以其高效快速的特点受到广泛关注,然而在面对小目标时,仍存在一些局限性。本文将介绍如何在中添加小目标检测层,以提高对小目标的检测能力。原始模型结构如下: 二、有效特征层对应的检测头类别 2.1 P3/8 - small检测头 原始模型中的对应的检测头主要用于检测相对较小的目标。其特征图大小相对较大,空间分辨率较高。 适合检测尺寸大概在到像素左右的目标。 2.2 P4/16 - medium检测头 这个检测头对应的经过了更多的下采样操作,相比P3/

Limiiiing的博客 351

商品标签识别系统:基于YOLO系列的深度学习实现

随着零售行业的快速发展和自动化需求的增长,商品标签识别技术变得越来越重要。本文详细介绍了一个完整的商品标签识别系统,该系统基于YOLO系列目标检测算法(包括YOLOv5、YOLOv8和YOLOv10),采用PySide6构建用户界面,并提供完整的训练代码和数据集处理方案。该系统能够准确识别商品标签中的关键信息,如价格、条形码、生产日期等,为零售自动化、库存管理和智能结算提供技术支持。

YOLO 349

UML基础: 统一建模语言简介

转贴自    http://www.ibm.com/developerworks/cn/rational/r-uml/developerWorks 中国  >  Rational  >UML基础: 统一建模语言简介文档选项<!--document.write(打印本页

icecityman的专栏 5500

城市仿真软件:AnyLogic_(8).行人与人群动态仿真

定义行人个体的行为和属性,如行走速度、目标位置等。// 创建一个行人// 设置行走速度为1.5 m/s// 设置目标位置为入口// 创建另一个行人// 设置行走速度为1.2 m/s// 设置目标位置为出口// 创建行人// 创建乘客行人与人群动态仿真在城市规划、交通管理和紧急疏散等领域具有广泛的应用。通过AnyLogic提供的行人模型模块,可以有效地模拟行人的个体行为、群体动态和与环境的交互。

kkchenjj的博客 1250

UML统一建模语言基础

UML基础知识

yueyue763184的博客 968

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

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

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

统一建模语言UML基础

统一建模语言UML基础

qq_66921072的博客 541

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

UML基础:统一建模语言简介

UML基础:统一建模语言简介 回顾20世纪晚期--准确地说是1997年,OMG组织(Object Management Group对象管理组织)发布了统一建模语言(Unified Modeling Language,UML)。UML的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用。UML提出了一套IT专业人员期待多年的统 一...

weixin_30755709的博客 96

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

UML(统一建模语言)基础

UML 1、UML(United Modeling Language, 统一建模语言): 是一种基于面向对象的可视化建模语言. 2、UML 采用了一组形象化的图形(如类图)符号作为建模语言, 使用这些符号可以形象地描述系统的各个 方面 3、UML 通过建立图形之间的各种关系(如类与类之间的关系)来描述模型. 文章目录UML基础一、用例图1、概念2、3个基本组件3、泛化关系4、包含关系5、扩展关系用例图案例分析二、类图类的表示形式1、实现关系2、泛化关系3、依赖关系4、关联关系关联关系之

Xiao_qsn的博客 601

UML基础:统一建模语言简介

英文原文:UML basics: An introduction to the Unified Modeling Language   到了21世纪——准确地说是2003年,UML已经获得了业界的认同。在我所见过的专业人员的简历中,75%都声称具备UML的知识。然而,在同绝大多数求职人员面谈之后,可以明显地看出他们并不真正了解UML。通常地,他们将UML用作一个术语,或对UML一知半解。大家对U

搬运工的博客 468

UML统一建模语言全面教程:从基础到实践

​​:传统UML工具,支持​​双向工程​​​​:功能强大,支持团队协作​​PlantUML​​:文本驱动,适合程序员集成到开发环境中​​:在线工具,适合团队实时协作​​StarUML​​:轻量级工具,适合个人使用UML作为​​软件建模的标准语言​​,在软件开发过程中发挥着重要作用。通过可视化建模,UML帮助团队​​沟通设计思想​​,​​降低开发风险​​,提高软件质量。有效的UML建模不仅仅是学习语法和工具,更重要的是培养​​抽象思维​​和​​系统分析能力​​。

Rysxt_的博客 770
上一篇: centos 7编译hadoop 2.7.3
下一篇: 生产者消费者
go_sparrow
博客等级 码龄11年 25粉丝 257原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值