项目成本评估及预算的制定

什么是项目成本估算?项目成本的估算方法有哪些? 无论你从事的是设计、开发、工程或其他专业服务,成功的项目工作最重要的部分是按时、按范围、在预算范围内交付。它需要准确的预测、精确的计划和进度监控。项目成本估算是项目经理用来帮助进行这些预测的过程。 阅读详情

转自:http://blog.youkuaiyun.com/clsdata/article/details/7657053


项目中成本评估中,最大的比例是进度评估,经常遇到我们的评估不准确,做了根本原因分析后如下图:



由上图我们得出,

占有大比例及优先级的原因如下:

1、  需求范围管理

2、  评估技能—而实际中这点并不是主要原因,评估者的多半经验都可满足评估标准

3、  风险储备

4、  管理储备

 

 

但并不是满足以上就让我们有个漂亮准确度高的成本评估指标,IT公司中,除了软件外包,很多公司忽略甲方,认为只有第三方才是甲方,如果一个运营类的公司,那么他的甲方实际上是这个公司的管理层,boss。

那么我们在每个项目中其实都遵循着软件外包的一个思路,就是我们需要两套“账本”,一套给“甲方”,一套给自己。也可以理解为一套为实际成本估算,另一套为预算(跟甲方报的价格)。

 

预算的组成流程:


实际的预算制定过程中,也会根据企业类型、客户类型、项目类型的不同,以上节点未必需要全部具备。

 

我们自己的实际成本评估往往不可能非常准确,当我们把这套“账本”报给“甲方”时,必然出现延误,需求范围扩展等问题。

 

总结对内对外的必要估算组成部分,应按一定百分比进行评估。

 

调研

设计

开发

测试

管理

风险

配置

实施

其他

对外

√

√

√

√

√

√

√

√

忽略

对内

√

√

√

√

--

--

--

--

忽略

 

对日对国内的项目也不一样,但整体看都会是两套账本,并且根据企业级别(如能力成熟模型的级别)不同,对外部进行估算的标准也不同,即甲方能接受的评估依据不同,主要分为功能点估算和代码行估算。功能点估算用的方法多为类比,找具有资深开发经验和管理经验的人进行历史项目类比的方式进行估算,代码行估算的方式很多,多数采用自下而上的估算方式。

 

软件项目评估分两种类型,7钟场景。总结一下,国内项目基本都用的是功能点估算,按公司规模项目类型不同,选择不同的估算场景,能力成熟度比较高的公司,尤其在做对日项目的时候,用代码行估算的情况比较多,第一是因为甲方有需求,并且甲方有能力评估你估算的代码行对方是否接受,第二是这种估算需要在组织过程资产沉淀到一定基础上,有很多切合公司实际情况的参数时,才可以估算的准确。比如沉淀了公司的个人生产率,成本基准,功能点权重系数等等。

随着项目进展,评估会越来越准确,所以合同前的估算很粗,故要考虑的问题很多。

有些公司还会规定,将间接成本(需要进行项目和部门分摊的成本)纳入到项目成本中来。

 

下面我们开始说实际场景,之前看到篇文章总结的非常好,也符合实际,故这里不在赘述,做如下分享:

 

场景一:合同前的工作量估算

场景描述:
(1)没有实施过CMMI2级
(2)合同未签,需要给客户报价
(3)有客户的概要需求,有类似的项目数据可供参考
(4)需要估计整个项目的总工作量,以便于估算总成本,给客户报价

估算步骤:
(1)寻找类似的历史项目,进行项目的类比分析,根据历史项目的工作量凭经验估计本项目的总工作量;
(2)进行WBS分解,力所能及地将整个项目的任务进行分解;
(3)参考类似项目的数据,采用经验法估计WBS中每类活动的工作量;
(4)汇总得到项目的总工作量;
(5)与第(1)步的结果进行印证分析,根据分析结果,确定估计结果。

 

场景二:基于详细需求的经验估计
场景描述:
(1)只有详细需求,没有历史数据
估算步骤:
(1)WBS分解,将任务分解到一个人或者一个小团队可以执行的颗粒度;WBS分解时要识别出所有的交付物、项目管理活动、工程活动等。
(2)采用经验法估计每个活动的工作量;
(3)汇总得到:每个阶段的工作量、项目的总工作量。
其他说明:
在该场景下,只使用了经验法,无法对结果进行印证,难以判断结果的合理性。

、

场景三:由编码估算整体
场景描述:
(1)有类似项目的历史数据
(2)有编码活动的生产率数据
(3)有详细需求
(4)实施了CMMI2级,但是没有积累历史项目的工作量分布数据
估算步骤:
(1)产品分解,将系统分为子系统,子系统分解为模块;
(2)WBS分解,将任务分解到一个人或者一个小团队可以执行的颗粒度;WBS分解时要识别出所有的交付物、项目管理活动、工程活动等。
(3)建立WBS分解中的活动与产品元素的映射关系,识别出WBS中哪些活动可以采用模型法估算;
(4)估计产品元素的规模,可以采用代码行法或功能点法,并估计每个产品元素的复杂度、复用率等;
(5)根据历史的编码阶段的生产率数据和产品元素的规模估计、复杂度、复用率等采用模型法计算每个产品元素的编码工作量;
(6)根据历史的类似项目的数据及估算人的经验估计其他活动的工作量,可以采用经验法。
(7)汇总得到:每个阶段的工作量、项目的总工作量。
其他说明:
在该场景下,混合使用了经验法与模型法,这2种方法互相补充,而不是互相印证。

 

场景四:由总体印证基于WBS的估计
场景描述:
(1)有类似项目的历史数据
(2) 有类似项目的全生命周期的生产率数据(含管理工作量)
(3)有详细需求
(4)实施了CMMI2级,但是没有积累历史项目的工作量分布数据
估算步骤:
(1)产品分解,将系统分为子系统,子系统分解为模块;
(2)估计产品元素的规模,可以采用代码行法或功能点法;
(3)累计出整个产品的总规模,并估计产品总体的复杂度、复用率等;
(4)根据类似项目的全生命周期的生产率数据和产品的总规模、复杂度、复用率等采用模型法计算总的开发工作量;
(5)WBS分解,将任务分解到一个人或者一个小团队可以执行的颗粒度;WBS分解时要识别出所有的交付物、项目管理活动、工程活动等。
(6)根据历史的类似项目的数据及估算人的经验估计所有活动的工作量,可以采用经验法。
(7)汇总得到:每个阶段的工作量、项目的总工作量。
(8)与第(4)步得出的工作量进行比较印证,如果偏差不大,则以第(7)步的结果为准,如果偏差比较大,要仔细分析原

 

场景五:三维印证基于WBS的估计
场景描述:
(1)有类似项目的历史数据
(2) 有类似项目的全生命周期的生产率数据(含管理工作量)
(3)有详细需求
(4)实施了CMMI3级,有历史项目的工作量分布数据(阶段分布、工种分布)
估算步骤:
(1)产品分解,将系统分为子系统,子系统分解为模块;
(2)估计产品元素的规模,可以采用代码行法或功能点法;
(3)累计出整个产品的总规模,并估计产品总体的复杂度、复用率等;
(4)根据类似项目的全生命周期的生产率数据和产品的总规模、复杂度、复用率等采用模型法计算总的开发工作量;
(5)根据历史项目的工作量分布数据及第(4)步估算的项目总工作量
(6)WBS分解,将任务分解到一个人或者一个小团队可以执行的颗粒度;WBS分解时要识别出所有的交付物、项目管理活动、工程活动等。
(7)根据历史的类似项目的数据及估算人的经验估计所有活动的工作量,可以采用经验法。
(8)汇总得到:每个阶段的工作量、每个工种的工作量、项目的总工作量。
(9)与第(4)、(5)步得出的工作量进行比较印证,如果偏差不大,则以第(7)步的结果为准,如果偏差比较大,要仔细分析原因,可能的原因举例如下:
 类似项目的生产率数据不适合本项目;
 WBS分解的颗粒度不够详细;
 估算专家的经验不适合本项目;
 具体任务的估计不合理;

 

场景六:四维印证基于WBS的估计
场景描述:
(1)有类似项目的历史数据
(2) 有类似项目的编码活动的生产率数据(不含管理工作量)
(3)有详细需求
(4)实施了CMMI3级,有历史项目的工作量分布数据(阶段分布、工种分布、阶段工种分布)
(5)项目采用了瀑布模型
估算步骤:
(1)产品分解,将系统分为子系统,子系统分解为模块;
(2)估计产品元素的规模,可以采用代码行法或功能点法,并估计每个产品元素的复杂度、复用率等;
(3)根据类似项目的编码活动的生产率数据和产品元素的规模、复杂度、复用率等采用模型法计算每个产品元素的编码工作量;
(4)根据历史项目的按工种的工作量分布数据及第(3)步的估算的编码工作量依次计算:
i)根据历史项目的编码的工作量占编码阶段的工作量的百分比与第(3)部计算出的编码工作量计算编码阶段的总工作量;
ii)根据历史项目的编码阶段各工种的工作量分布百分比计算编码阶段每个工种的工作量;
iii)根据历史项目的其他阶段的工作量与编码阶段的工作量比例计算其他阶段的总工作量;
iv)根据历史项目的其他阶段的每个工种的工作量分布百分比及第iii)步的结果计算其他阶段的每个工种的工作量;
(5)WBS分解,将任务分解到一个人或者一个小团队可以执行的颗粒度;WBS分解时要识别出所有的交付物、项目管理活动、工程活动等。
(6)根据历史的类似项目的数据及估算人的经验估计所有活动的工作量,可以采用经验法。
(7)汇总得到:每个阶段每个工种的工作量、每个阶段的工作量、每个工种的工作量、项目的总工作量。
(8)与第(4)步得出的工作量进行比较印证,如果偏差不大,则以第(6)步的结果为准,如果偏差比较大,要仔细分析原因,可能的原因举例如下:
 类似项目的生产率数据不适合本项目;
 WBS分解的颗粒度不够详细;
 估算专家的经验不适合本项目;
 具体任务的估计不合理;

 

场景七:需求变更的工作量估计
场景描述:
(1)有变更的需求描述
(2)项目进行到了编码阶段
(3)有本项目的编码的生产率
估算步骤:
(1)进行需求变更的波及范围分析
(2)进行本次变更的的WBS分解
(3)对于变更引起的代码变化进行规模、复杂度等其他属性的估计
(4)根据本项目的编码的生产率及估计的规模采用模型法估计工作量
(5)对于WBS分解中其他活动进行经验估计
(6)汇总所有的工作量得到本次变更的工作量估计

 

 

以上的七种场景,在进行代码行估算的时候,一定要注意几点:

1、  组织过程资产是否有管理层认可的数据;比如功能点技术权重系数,比如模块代码复用率百分比,这些都归属于沉淀的参数估算。所以一般我们会将类比和参数估算结合。进行代码行估算时以上尤为重要,但功能点估算时也可进行统计,但多半更依赖于经验。

2、  对估算者的能力要求比较高;

3、  客户方认可代码行估算的能力;

4、  做好客户询问:XXX打印界面为什么估算了350行代码的回答。

 

尤其在生产制造业,行业规则固定,业务需求明确,一个做解决方案提供和实施顾问的企业,可以根据自身产品的沉淀,技术框架的沉淀,准确估算出一个功能点的代码行数

 

比如我们有统一的工具类程序包,统一的基本逻辑处理程序包。一个提交按钮的假设代码行产生是10行,一个文本框产生的代码量是10行,那么每调用一次check,衍生代码是可能也是10行,而这10行有复用率的标准。比如整个系统中凡是涉及到编号的文本框都复用。

 

我们可以发现,多半估算准确度高的都是瀑布式模型,而敏捷开发方法不利于项目估算,因为有很多工作流交叠,舍弃的雏形模块的删减,无法正确的计算出损失,并且过多的依赖于团队能力,个人素质,资产没有沉淀在数据、文本上,这恐怕也是多数互联网公司做敏捷宣传时很少提及到底节约了多少成本的原因。

 

完结。

【ITPM】HW7:项目成本管理 你的进度和成本目标是在6个月内200,000美元的预算完成项目 Ex1 准备和打印一页类似图7-2的成本模型。使用以下WBS,并且确保记录下你在准备这个成本估计模型时所做的假设。假设项目经理的工资率为100美元/小时,其他项目成员60美元/小时。假设没有工作外包,客户的劳动成本不包括在内,并且没有额外的硬件成本。总体估计应该是200,000美元。 项目管理 需求定义 网站设计 娱乐节目的注册 班级和节目的注册 跟踪系统 奖励系统 网站开发 娱乐节目的注册 班级和节目的注册 跟踪系统 奖励系统. 阅读详情

相关推荐

【软考高项范文】论信息系统项目的成本管理

预算的形成过程需要充分的需求分析、成本估算和风险评估,以确保预算的准确性和可行性。1、概要叙述你参与管理过的信息系统项目(项目的背景、项目规模、发起单位、目的、项目内容、组织结构、项目周期、交付的成果等),并说明你在其中承担的工作(项目背景要求本人真实经历,不得抄袭及杜撰)。项目成本管理在项目管理中占非常重要的地位,成本管理是项目实施过程中,通过对成本进行管理,使项目实际发生的成本控制在预算范围内。在该项目中,我担任项目成本管理的角色,负责跟踪项目的成本、预算和财务报告,以确保项目控制在预算范围内。

Programming Talk 356

软件工程-成本估算

1.某软件公司统计发现该公司研发部门每一万行C语言源代码形成的源文件(.c和.h文件)约为250K。某项目的源文件大小为3.75M。 ①问该项目的规模是多少KLOC(源代码行数)? 该公司研发部门的生产率是0.625KLOC/人月,人工价是10000元/人月。 ②问工作量和总成本是多少?③每行代码的价值是多少? 参考答案: ①3.75M/250K=15万行=150KLOC ②工作量=规...

sm_wang的博客 1万+

期货分仓系统CTP协议/国内期货软件源码

期货分仓系统与CTP协议以及国内期货软件源码是期货交易技术领域的几个重要方面。

q2247238820的博客 962

软件工程管理-第六章软件项目成本计划

1代码行估算法 代码行估算法:与具体的编程语言有关、分解足够详细、有一定的数据。优点:代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数。缺点:对代码行没有公认的可接受的标准定义;代码行数量依赖于所用的编程语言和个人的编程风格;在项目早期,需求不稳定、设计不成熟、实现不确定的情况下很难准确地估算代码量;代码行强调编码的工作量,只是项目实现阶段的一部分。 功能点估算法:与实现的语言和技术没有关系,用系统的功能数量来测量其规模,通过评估、加权、量化得出功能点。功能点公式:FP=UFC*TCF UF

千寻一见的博客 991

yakit 通过codec 解决RSA加密

靶场就不过多叙述,具体的可以看yakit系列的前几篇文章。yakit 热加载进行 RSA 加密如何显示想要的payloads。

Arkmornings的博客 2686

WS2812B非标准通信协议:手把手实现精准时序控制

详解WS2812B的精准时序实现原理,剖析其非标准通信协议的关键细节。通过实际操作指导,帮助开发者稳定驱动ws2812b灯带,解决常见时序偏差问题,提升项目显示效果与响应一致性。

weixin_42584586的博客 585

第七章:项目成本管理 - (7.2 估算成本)

估算成本是对完成项目工作所需资源成本进行近似估算的过程。本过程的主要作用是,确定项目所需的资金。本过程应根据需要在整个项目期间定期开展。过程图如下所示: 成本估算是对完成活动所需资源的可能成本的量化评估,是在某特定时点,根据已知信息所做出的成本预测。在估算成本时,需要识别和分析可用于启动与完成项目的备选成本方案;需要权衡备选成本方案并考虑风险,如比较自制成本与外购成本、购买成本与租赁成本及多种资源共享案,以优化项目成本。 通常用某种货币单位(如美元、欧元、日...

快乐的小三菊的博客 6657

WGCNA加权基因共表达网络分析(1)简介、原理

WGCNA简介 WGCNA(Weighted Gene Co-Expression Network Analysis, 加权基因共表达网络分析),鉴定表达模式相似的基因集合(module),解析基因集合与样品表型之间的联系,绘制基因集合之间的调控网络并鉴定关键调控基因 WGCNA适用于复杂的转录组数据(样本数目较多) 研究不同器官/组织类型和不同阶段的发育调控、生物和非生物胁迫的不同时间响应机制 WGCNA原理 原理概要 1.构建基因共表达网络:先构建基因共表达网络,通常利用两两基因之间的表达模式来计算

qq_44520665的博客 3万+

【郭林专刊】项目成本评估及预算的制定

项目中成本评估中,最大的比例是进度评估,经常遇到我们的评估不准确,做了根本原因分析后如下图: 由上图我们得出, 占有大比例及优先级的原因如下: 1、 需求范围管理 2、 评估技能—而实际中这点并不是主要原因,评估者的多半经验都可满足评估标准 3、 风险储备 4、 管理储备 但并不是满足以上就让我们有个漂亮准确度高的成本评估指标,IT公司中,除了软件外包...

weixin_30699955的博客 89

C语言获取硬件信息(CPU序列号,硬盘序列号,网卡IP、MAC地址、是否插入网线)

本文主要介绍Linux和Windows下使用C语言获取各种硬件信息,包括CPU序列号、硬盘序列号、网卡信息(包括网卡名字、IP地址、MAC地址、网卡是否插入网线等)。

叶落花枯的博客 9378

基于OpenClaw的AI数字员工协同团队架构设计

随着大型语言模型从被动的文本生成器向具备自主规划与执行能力的智能代理演进,企业级人工智能的应用范式正在发生根本性转变。在这一演进过程中,OpenClaw(前身为Clawdbot及Moltbot)作为一种开源的、本地优先的个人AI智能体网关基础设施,凭借其对持续内存、多通道接入以及沙盒化工具执行的原生支持,迅速成为构建“始终在线”数字劳动力的核心框架 1。然而,将单体个人助理扩展为能够处理复杂业务逻辑、支持跨组织协同并严格保障数据隔离的多智能体(Multi-Agent)团队,绝非简单的API拼接。系统架构必须

形上得其象,形下合于数;阴阳自济,玄理自明。 1047

成本效益分析(Cost-Benefit Analysis, CBA)

成本效益分析(Cost-Benefit Analysis, CBA)是一种经济决策工具,用于评估项目、政策或决策的总成本与总收益。它帮助决策者通过量化的方式比较不同选择的经济效果,从而做出更明智的决策。

weixin_43156294的博客 1万+

OpenClaw-遇到的问题-Health check failed: gateway closed (1006 abnormal closure (no close frame)): no clos

OpenClaw网关服务安装成功但运行异常,显示健康检查失败(错误代码1006)。系统提供了Web控制界面(http://127.0.0.1:18789/)和带令牌的安全访问链接。文档建议参考故障排除指南,并提供了可选应用扩展功能(包括移动端支持)。注意运行本地代理存在安全风险,建议加固系统配置。若需启用网络搜索功能,需配置Brave搜索API密钥。安装完成后会自动打开仪表盘,需保持浏览器标签页以控制OpenClaw服务。

直到世界的尽头 1万+

怎样创建项目预算(转)

经常可以听到为开发项目确定预算是一门艺术。考虑到所有的商业风险这看起来近似真实。项目的花费很容易就会成为完全不具实际意义的“模糊数学”的一个课题。以小时计算的开发时间,为了加快开发速度而增长预算,工具和其他资源的开销都应该在基于...

clijovtbq401783153的博客 89

Dify 第 2 篇 Dify 插件离线安装

Dify是一个支持插件扩展的AI平台,其插件市场提供5种类型插件(模型、工具、Agent策略、扩展、插件包)。由于默认pip安装速度慢,可通过dify-plugin-repackaging工具将插件转换为离线包(使用阿里云镜像加速)。该工具提供两种方式:1)自备Python环境执行脚本;2)使用Docker环境(推荐)。脚本支持从Dify市场或GitHub下载插件,并重新打包为含依赖的离线包,便于通过"本地插件"方式快速安装。

甘蓝的专栏 1264

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

软件开发成本构成及评估

软件开发成本构成及评估的三篇文章: http://wenku.baidu.com/view/48805bedf8c75fbfc77db29a.html http://wenku.baidu.com/view/7b8e526727d3240c8447effb.html http://wenku.baidu.com/view/9290786c1eb91a37f1115cd7.html

星云的专栏 1111

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

新手指南:7个步骤制定成功的项目预算

对项目目标进行匹配和分析,有助于形成对未来产品和项目流程的共同愿景,并使每个项目阶段的目标保持一致。当你向利益相关者,或其他必须批准项目预算的业务领导者提交项目预算时,请准备好证明项目和金额的合理性。最难做的项目预算就是你的第一份预算。当掌握了这个过程,你的规划工作就会加速,你的项目通常也会在预算范围内完成。如果项目预算需要调整,在系统进行修改后,8Manage PM会自动监测对整个项目预算的影响,帮助你及时清晰地报告项目成本。多一双眼睛看预算,可以发现遗漏的项目并确认金额的准确性,避免预算错误。

MSaaS的博客 1032

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

电竞酒店成本预算表:投资与盈利的博弈

电竞酒店成本预算表:投资与盈利的博弈。

JiYan_purple的博客 872

7成本管理

[ ]  质量成本[ ]  沉没成本7.1规划成本管理成本管理指南成本管理计划7.2估算成本近似估算专家判断类似项目,来自行业、学科和应用领域信息、成本评估方法类比估算(自上而下估算)适用本质形式和本质都相同参数估算自下而上估算(工料清单法)三点估算(最乐观+最悲观+4最可能)/6数据分析备选方案分析对已识别的可选方案进行评估储备分析估算应急储备和管理储备质量成本预防成本评估成本失败成本输出成本活动估算估算依据项目文件更新:假设日志、经验教训登记册、风险登记册7.3制定预算创建成本基准

sherlockmj的博客 222

第七章 项目成本管理

项目成本管理

JLGao的博客 395

第七章:项目成本管理

第七章:项目成本管理 “规划成本管理”属于成本管理知识领域规划过程组。说的是如何来管成本。同样包括准确度、计量单位、控制临界值。 “估算成本”和“制定预算”都属于成本管理知识领域规划过程组。 “估算成本”是完成项目进行的一个近似估算,还未获得批准。 “制定预算”是建立一个经批准的成本基准的过程。 “估算成本”一般是用货币单位,但是为了避免通货膨胀等影响,有时会用“人/时”、“人/天”这样的单位; 粗略量级估算(ROM)---在项目初期,往往估算不准,偏差在-25%~75%之间 确定性估算---

weixin_44520692的博客 693

【信息系统集成】-成本管理错题

[单选] ()不属于制定预算过程的输出。 A:成本基准 B:范围基准 C:项目资金需求 D:更新的活动成本估算 正确答案:B 你的答案:D 解析:参考《信息系统项目管理师教程》第3版7.2.3小节。 制定预算流程的输出:成本基准、项目资金需求、项目文件更新(风险登记册、活动成本估算、项目进度计划)。 8、 [单选] 控制成本过程输出,不包括()。 A:项目资金需求 B:项目文件更新 C:工作绩效信息 D:成本预测 正确答案:A 你的答案:D 解析:参考教程第3版7.2.4小节。控制成本过程输入包括:项目管理

qq_36390552的博客 1582

项目成本管理

项目成本管理

Abel的博客 1202
上一篇: 【android x86 5.1.1】 adb install 流程分析
下一篇: android之DEX文件格式
class_brick
博客等级 码龄12年 223粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值