24、软件项目管理:FDD方法的全面解析

软件项目管理:FDD方法的全面解析

1. 预算约束与库存管理

在软件项目中,预算消耗的主要因素是直接劳动力成本。与劳动力相比,软件工具的成本通常很低。由于劳动力是主要的开销,因此它最有可能导致预算超支。如果项目延迟(即时间约束被打破),或者项目范围增加(即范围约束被打破),预算很可能会超支。

为了控制预算,可以与客户商定软件生产系统中能够维持的功能库存容量。这个容量可以设定在当前资源和预算能够承受的水平。系统能够处理的理论最大库存可以通过以下方式计算:
例如,如果全速生产时每天可以生产8个功能,前置时间为35天,那么库存水平应该是280个功能。为了缓冲,可以与客户协商将系统中的库存保持在这个水平以下,比如降低10%,即250个功能。然而,预算应该按照每个功能的成本乘以库存水平的全额进行协商。这样,敏捷项目经理就争取到了一个重要的财务缓冲。如果因为雇佣了一些承包商而导致直接劳动力成本增加,那么额外的成本应该在预算缓冲范围内消化。

2. 测试瓶颈及其解决方法

FDD认识到软件测试和质量保证可能成为瓶颈。FDD主张将软件测试人员作为一种约束因素加以利用,通过在测试前提高质量来解决问题。FDD基于“一次做对”的方法,有几个方面可以在质量保证(测试)瓶颈之前解决质量问题。

  • 单元测试 :FDD支持单元测试,研究表明单元测试可以将错误数量减少约35%。不过,FDD没有规定单元测试应该在什么时候进行,它被视为“按首席程序员工作包构建”步骤的一部分。开发可以像极限编程那样采用测试驱动的方式,但也可以不是。单元测试可以在代码编写之后进行,并且可以在代码审查之前或之后运行。

相关推荐

HCIAstudy03

HCIAstudy03

Delphi 13.2控件之FMXLinux11-20240611.zip

Delphi 13.2控件之FMXLinux11-20240611.zip

语音情感识别系统实战教程

这是一套基于 Librosa + PyTorch CNN 的语音情感识别系统完整实战教程,输入一段 wav 人声录音,程序输出 8 种情感(中性/平静/快乐/悲伤/愤怒/恐惧/厌恶/惊讶)各自的概率和主判定结果,全程纯 CPU 可跑。交付物含可运行 Python 源码、RAVDESS 完整数据集(1440 条)、训练好的权重、9 章文档(三件套)、PPT 和 6 张真跑截图。 内容围绕 main.py 的命令:train 扫描音频提取 MFCC 特征并缓存,二次训练免重复提取,--dryrun 用极小样本几分钟走通全链路;infer 在测试集上输出准确率、分类报告与混淆矩阵图,支持单文件预测和批量识别;gui 打开 Tkinter 可视化工作台,左侧选音频看结果与 Top-3 候选,右侧实时显示波形与 8 类情感概率条形图,批量结果一键导出 CSV。 亮点在于无显卡要求:8GB 内存普通电脑即可,MFCC 特征提取加训练合计十来分钟,模型权重仅 1-2MB;依赖锁定 Python 3.10 + torch 2.1.0+cpu + librosa 0.10.1 + numpy 1.26.4 + scikit-learn 1.3.2;第 7 章整理 15 个以上高频报错;第 8 章给出换情感表、换特征、接入长音频的路径。

一个完全重写的超轻量级 python 引擎,零依赖,零配置,可以在 Flash ≤ 64KB,RAM≤ 4KB 的平台下运行,极易部署和扩展,具有大量的中文文档和视频资料

一个完全重写的超轻量级 python 引擎,零依赖,零配置,可以在 Flash ≤ 64KB,RAM≤ 4KB 的平台下运行(如 stm32g030c8 和 stm32f103c8),极易部署和扩展,具有大量的中文文档和视频资料。

美国奶酪零售价格原始数据集12039条12个市场

美国奶酪切片零售价格的微观观测数据集:2026年7月13日至8月10日共29天、12个美国ZIP市场、12039条产品级未聚合标价记录、16列字段,348个市场日组合全覆盖(348/348),涉及49种商品标题。所谓原始指经过范围与安全过滤后的产品级观测,保留商品标题、日期、地理信息、包装数量、标价以及可比价格归一化字段(以0.375磅为基准,91.4%的行完成可比换算)。数据揭示的分布现象:可比价格第90百分位达第10百分位的3.4倍(2.73美元至9.19美元),跨市场价格差异显著。单一分析就绪CSV文件,固定研究快照不再更新。适用于零售价格分析、区域价格差异研究、消费数据统计与价格指数构建研究。数据许可:CC0公共领域。

基于SpringBoot开发的物联网设备调试管理平台,提供完整的物联网设备调试方案,集成设备管理、MQTT服务器管理、客户管理等功能,自研Nmqs通信层组件,实现了连接信息的加密,保证了数据的安全性

WeMQ是一款基于SpringBoot开发的一款物联网设备调试管理平台。其功能主要是对客户MQTT调试页面进行集中管理(连接信息、发送信息),系统管理员可在后台添加客户和调试页面,并设置调试页面的连接信息、发送消息和对应的发送按钮文字,并设置分享链接以及页面的开启状态,用户可通过分享链接打开配置好对应信息的页面,实现对自己设备的管理调试。

一个完整的屏幕字幕实时 OCR 提取工具源码 框选屏幕区域后定时截图,调用 Windows.Media.Ocr 识别,经滑动窗口投票去重后写入 txt

支持中文 / 英文 / 日文,托盘后台运行。代码结构清晰,适合学习 PyQt5 托盘应用、dxcam 屏幕捕获、WinRT OCR 调用、滚动字幕去重算法,也可直接二次开发。 技术栈(这部分对技术买家很关键,要列清楚): PyQt5:托盘应用、全屏框选遮罩(QRubberBand) dxcam:高性能屏幕区域捕获 Windows.Media.Ocr(winrt):本地 OCR,无需联网,无模型文件 EasyOCR:可选降级方案 去重:归一化 + LCS 相似度 + 滑动窗口投票 文件结构: text main.py 托盘应用、CaptureWorker 线程、区域/语言管理 ocr_engine.py 多语言 OCR 引擎封装,Windows OCR 优先、EasyOCR 降级 deduper.py 滑动窗口 + 相似度投票去重 region_selector.py 全屏半透明框选组件 requirements.txt 依赖清单 运行前提(明确写,挡掉环境类提问): Windows 10/11,Python 3.10~3.12 pip install -r requirements.txt 中文/日文识别需系统安装对应 OCR 语言包(Windows 设置里添加语言时勾选“光学字符识别”) 仅 Windows 平台,截屏依赖 dxcam,OCR 依赖 WinRT

高校技术转移办公室在推动成果落地时,如何高效完成技术需求挖掘与匹配?.docx

高校技术转移办公室在推动成果落地时,如何高效完成技术需求挖掘与匹配?

文件备份考研资料这个是

文件备份考研资料这个是

godot工具包,包含godogen自动工程代码

godot工具包,包含godogen自动工程代码

优快云首页 发布文章 优快云同步助手 毫米波V2I网络的链路层仿真研究(Matlab代码实现) 28 100 摘要:会在推荐、列表等场景外露,帮助读者快速了解内容,支持一键将正文前 25

内容概要:本文系统介绍了基于自适应神经模糊推理系统(ANFIS)的非线性回归方法,结合模糊逻辑与神经网络的优势,构建能够处理复杂非线性关系的智能建模工具。文章详细阐述了ANFIS的网络结构、模糊规则生成机制、参数学习过程及其在非线性系统建模中的应用流程,并通过Matlab代码实现完整的训练、验证与预测环节,展示了其在高精度拟合与动态系统建模方面的优越性能。该方法特别适用于输入输出关系高度非线性且难以用传统数学模型描述的工程场景,具备良好的泛化能力和可解释性。; 适合人群:具备一定Matlab编程能力,并熟悉模糊系统、神经网络基础理论的高校研究生、科研人员及工程技术开发者,尤其适合从事智能控制、系统辨识、故障诊断、数据分析与预测等领域的研究人员。; 使用场景及目标:①掌握ANFIS在非线性回归与系统建模中的建模流程与实现技巧;②学习如何利用Matlab Fuzzy Logic Toolbox进行模糊规则设计与参数优化;③应用于实际工程中的复杂非线性问题,如环境数据预测、工业过程建模、设备状态评估、金融时间序列分析等高难度回归任务。; 阅读建议:建议读者结合Matlab平台动手实践,重点理解ANFIS中模糊隶属度函数的选择、规则库的自动生成机制以及反向传播与最小二乘法混合训练策略的协同作用,通过调整模型结构与训练参数对比分析其对回归精度的影响,从而深入掌握该方法的核心原理与工程应用要点。

科技中介服务机构如何构建标准化、智能化的服务流程?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

无人船基于模型预测控制(MPC)对USV进行自主控制研究(Matlab代码实现)

内容概要:本文系统研究了基于模型预测控制(MPC)对无人水面艇(USV)进行自主控制的方法,并提供了完整的Matlab代码实现。文章围绕USV的轨迹跟踪与编队控制两大核心任务,构建了分层MPC控制架构:上层控制器基于运动学模型实现轨迹跟踪,下层控制器基于动力学模型完成实际控制量的分配。研究详细阐述了系统建模、状态误差定义、增广状态空间构建、预测方程推导、代价函数设计、约束条件处理以及二次规划(QP)求解等关键技术环节。通过仿真实验验证了该方法在复杂海洋环境下具备优异的轨迹跟踪精度与编队保持能力,充分体现了MPC在处理多变量、多约束、强耦合系统优化控制问题中的强大优势。; 适合人群:具备自动控制理论基础和Matlab/Simulink编程能力的研究生、科研人员及从事无人船、智能航行系统开发的工程技术人员。; 使用场景及目标:① 学习并掌握MPC在无人船自主控制中的建模与实现方法;② 实现USV的高精度轨迹跟踪与多艇协同编队控制;③ 为相关课题的仿真研究与算法开发提供可复现的代码参考; 阅读建议:建议读者结合Matlab代码与文中公式推导同步学习,重点关注状态空间模型建立、预测时域设计、权重矩阵调节及约束处理技巧,通过调整参数观察控制效果变化,深入理解MPC的优化控制机制。

无刷直流电机模糊神经网络PID-模糊PID-传统PID三种控制对比Simulink仿真

内容概要:本文档提供了名为《无刷直流电机模糊神经网络PID_模糊PID_传统PID三种控制对比Simulink仿真》的技术资源,主要内容是利用Simulink对无刷直流电机(BLDCM)进行转速电流双闭环控制的建模仿真,并对比分析传统PID、模糊PID以及模糊神经网络PID三种控制策略的性能差异。文档详细介绍了无刷直流电机在三相桥式星型全控电路结构下的控制系统设计,涵盖电机本体模型、驱动换向逻辑、电流环与转速环双闭环PI调节器的设计,并在此基础上实现了模糊规则自整定PID与结合神经网络的智能PID控制算法。通过仿真模型输出的动态响应曲线,如转速响应、电流波形和转矩波动等,可以直观比较不同控制方法在抗干扰能力、超调量、调节时间及稳态精度等方面的优劣,从而为电机高性能控制策略的选择与优化提供理论依据和技术支持。; 适合人群:适用于自动化、电气工程、机电一体化及相关专业的高校学生、研究生,以及从事电机控制、电力电子和运动控制领域的科研人员与工程技术人员。尤其适合有一定Simulink/MATLAB使用基础,希望深入了解先进PID控制算法在实际系统中应用的学习者和开发者。; 使用场景及目标:①开展无刷直流电机控制系统的教学实验与课程设计,帮助学生掌握双闭环控制原理;②进行模糊控制、神经网络智能控制等现代控制理论的研究与项目验证;③对比不同PID控制策略的性能表现,服务于科研论文撰写或工程项目中的控制方案选型;④基于现有模型进行二次开发,拓展至无位置传感器控制、滑模观测器设计等高级应用场景。; 阅读建议:学习者应首先熟悉无刷直流电机的工作原理与数学模型,掌握Simulink基本建模流程。建议按照文档提供的模型逐步运行仿真,观察各控制器下的系统响应差异,并尝试调整控制器参数以理解其对系统性能的影响。同时可结合配套的说明文档和参考文献深入理解模糊推理机制与神经网络训练过程,进而实现自主改进与创新。

Chrome视频倍速控制插件:任意网页视频0.25x-16x自由调速,按站点记忆倍速,免费无广告

典型使用场景: - 网课学习:1.5x~2.5x刷课,跳过水时长内容 - 百度网盘:免会员给预览视频调速 - 追剧看片:片头片尾4x快放,正片1.25x省时间 - 教程视频:复杂操作0.5x慢放跟练 - 直播回看、会议录像:快速过一遍找重点

TCR+FC型SVC静止无功补偿仿真模型(Simulink仿真实现)【有详细资料】

内容概要:本文详细介绍了TCR+FC型SVC(晶闸管控制电抗器+固定电容器静止无功补偿器)的Simulink仿真模型构建过程,深入阐述了其在电力系统中实现动态无功补偿的工作原理与建模方法。该模型融合了TCR的连续调节特性和FC的无功支撑能力,通过Simulink平台搭建完整的系统仿真框架,实现了对电网无功功率的实时动态补偿,并配备了详尽的技术资料,涵盖控制策略设计、参数整定、仿真调试流程及关键模块的功能解析,有助于用户全面掌握SVC系统的运行机制与工程实现细节。; 适合人群:具备电力系统分析、电力电子变换及自动控制理论基础,熟悉Simulink/MATLAB仿真环境,从事无功补偿、柔性交流输电系统(FACTS)、电能质量治理等相关方向研究的研究生、科研人员及电气工程领域的工程技术人员。; 使用场景及目标:①深入理解TCR+FC型SVC的拓扑结构、工作原理及其在电压稳定与无功平衡中的作用;②掌握基于Simulink的静止无功补偿系统建模与仿真方法,包括触发控制、无功检测与反馈调节环节的设计;③学习并验证不同工况下SVC的动态响应特性,用于教学实验、科研项目验证、电力系统规划设计及工业现场问题分析。; 阅读建议:本资源以Simulink仿真实现为核心载体,建议读者结合所提供的详细资料,循序渐进地搭建与调试仿真模型,重点关注TCR晶闸管触发角控制逻辑与FC投切策略的协同机制,深入分析系统在负载突变、电压波动等扰动工况下的补偿性能,并可通过修改参数或扩展结构进一步探究其在复杂电网环境中的适用性与优化潜力。

蓄电池+飞轮储能+风力发电+光伏MPPT的微电网混合储能功率协同控制仿真【仿真+配套复现的参考论文】

内容概要:本文针对含分布式电源的配电网在多线路故障下的恢复问题,提出了一种将网络重构、孤岛划分与检修进度统一纳入多时段优化框架的协同恢复模型。该模型以最小化网损和甩负荷惩罚为目标,综合考虑节点功率守恒、支路潮流、电压与容量限制、二阶锥松弛以及拓扑连通性等多重约束条件,通过引入虚拟流变量确保各供电孤岛的内部连通性,并采用大常数松弛和二阶锥规划技术处理非线性潮流关系,从而实现对复杂非线性优化问题的高效求解。研究在IEEE 33节点系统上进行仿真验证,展示了各时段的网络拓扑演化、电压分布变化及负荷恢复进程,并对模型的建模思想、实现细节及其与现有文献的关联进行了深入分析,同时指出了当前模型在负荷分级、无功功率处理、辐射状结构精确建模等方面的改进方向; 适合人群:具备电力系统分析、优化理论基础,从事配电网故障恢复、分布式能源管理、智能电网等相关领域研究的研究生、科研人员及工程技术人员; 使用场景及目标:①学习和掌握多时段配电网故障恢复的统一建模方法;②理解虚拟流、二阶锥松弛等关键技术在保证孤岛连通性和处理非线性潮流中的应用;③为研究主动配电网的韧性提升、源-网-荷-储协同恢复策略提供理论基础和仿真范例; 阅读建议:此资源兼具理论深度与实践性,建议读者结合文中提供的Matlab代码和仿真结果,深入理解模型的数学推导和约束构建逻辑。在学习过程中,应重点关注目标函数的设计、虚拟流连通性约束的物理意义、二阶锥松弛的有效性验证,并尝试按照文末提出的八个改进方向进行模型拓展,以深化对主动配电网故障恢复复杂性的认识。

无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?

无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?

qq_63539957的博客 2万+

Stable Diffusion跑图总爆显存?别急着换显卡,试试这个PYTORCH_CUDA_ALLOC_CONF参数调优

本文深入解析了Stable Diffusion运行中常见的显存不足问题,特别是由显存碎片化导致的假性OOM现象。通过详细讲解PYTORCH_CUDA_ALLOC_CONF参数中的max_split_size_mb设置技巧,提供了一套完整的显存优化方案,帮助用户在无需升级硬件的情况下显著提升AI绘画的稳定性与效率。

weixin_42524100的博客 346

告别手动调参!PSCAD 4.2的Multiple-Run功能,5分钟搞定交流故障批量仿真

本文详细介绍了PSCAD 4.2的Multiple-Run功能如何高效处理交流故障批量仿真,告别传统手动调参的低效模式。通过五步配置法,工程师可在5分钟内完成数百次参数组合的仿真,显著提升电力系统分析效率。文章还包含工业级应用案例和高级调试技巧,助力实现故障仿真的自动化与智能化。

weixin_42552716的博客 274

TC275-AutoSAR实战:Davinci Cfg多核OS配置与调试技巧

本文详细介绍了在TC275芯片上使用Davinci Cfg工具进行AutoSAR多核操作系统配置的实战步骤与调试技巧。内容涵盖从导入arxml文件的常见“坑”开始,到配置Det、EcuC、创建多核OS实例、关联OS应用、创建任务与设置优先级调度,最后分享了利用Det日志、调试器多核视图及处理核间通信与缓存一致性等关键调试方法,旨在帮助开发者高效完成复杂车载ECU软件集成。

weixin_29219189的博客 487

智能网联汽车云控系统核心解析:车云数据交互协议设计与实践

本文深入解析了智能网联汽车云控系统的核心——车云数据交互协议的设计与实践。文章围绕“说什么”、“怎么说”及异常处理三大核心问题,详细阐述了二进制与结构体数据类型定义、TCP/UDP双通道传输机制、通用报文格式以及典型交互流程(如GLOSA车速引导),并分享了时间同步、坐标系定义等关键实战经验与避坑指南,为构建高效、可靠、安全的车云“神经系统”提供专业指导。

alice7model的博客 119

【AIOPS实战】Dify+Zabbix:构建智能告警分析助手的核心架构与实现

本文详细介绍了如何利用Dify平台与Zabbix-MCP接口构建智能告警分析助手,实现自然语言查询告警、智能分析和报告生成。该系统通过AIOPS技术显著提升运维效率,支持中英文混合查询、自动根因分析,并内置多种优化方案确保稳定可靠。

weixin_29238147的博客 314

18、近端策略优化(PPO)算法详解

本文详细介绍了近端策略优化(PPO)算法的理论基础、算法流程、实现方法及实际应用。PPO作为当前最受欢迎的策略梯度算法之一,具有易于实现、计算成本低、样本效率高和性能优越等优点。文章对比了基于自适应KL惩罚和基于裁剪目标的两种PPO变体,重点解析了裁剪目标函数的设计原理及其在Actor-Critic框架下的实现方式,并通过Atari Pong游戏展示了完整的训练配置与流程。最后总结了PPO的优势、适用场景及未来发展方向,为强化学习研究者和实践者提供了全面的参考。

mongodb5scout的博客 177

晶体管-二极管三极管MOS管选型参数总结

二极管三极管和MOS管,是电路中常用的控制电流电压的基本电子元器件。电路世界中晶体管的选型,需要考虑的参数多种多样,这些参数的选择会直接影响到电路的性能、稳定性、成本等多个方面。本文对二极管三极管和MOS管的选型参数进行详细介绍并总结。

fydar的博客 882

怀旧版电脑GBC模拟器

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

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

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IEM模型,地表粗糙度模拟

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

上一篇: 29、渗透测试技术与项目管理全解析
下一篇: 66、基于反射策略的可扩展高效自动化及数值程序归纳不变式推断算法
sql99
博客等级 码龄19年 168粉丝 1905原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值