MuleSoft作为LLM运行时:企业级AI编排的核心架构

MuleSoft+LLM企业级AI编排实战:安全、可控、可审计的集成增强方案 大语言模型(LLM)在企业落地面临三大核心挑战:协议不兼容、治理不可控、流程难嵌入。MuleSoft作为成熟的企业集成平台,凭借API网关、Flow可视化编排、DataWeave数据转换与策略链治理能力,天然适配LLM的工程化部署需求。其价值在于将非结构化AI能力转化为可审计、可熔断、可版本化的服务节点,实现LLM与ERP、CRM等核心系统间的语义翻译与可信协同。典型应用场景包括智能合同分析、信贷审批增强、客服意图理解等需强合规、低延迟、高稳定性的业务流。本文聚焦MuleSoft与LLM深度集成的技术路径, 阅读详情

1. 项目概述:当企业级集成平台遇上大语言模型,不是叠加,而是重定义工作流

“AI Orchestration in Action: How MuleSoft and LLMs Fuel the Future of Enterprise AI”——这个标题里藏着一个正在发生的、静默却剧烈的范式转移。它说的不是“用LLM写个周报”,也不是“在CRM里加个聊天框”,而是把大语言模型从一个孤立的、会说话的“新员工”,真正变成企业IT系统里能调度资源、理解上下文、执行决策、闭环反馈的“神经中枢”。MuleSoft在这里,绝非简单的API网关或数据搬运工;它是让LLM从“知道很多”走向“能做很多”的关键基础设施。我过去三年带团队落地过7个跨系统AI增强项目,其中4个卡在“模型输出漂亮,但业务流程纹丝不动”这一步——直到我们把MuleSoft的Anypoint Platform当作LLM的“操作系统内核”来设计。核心逻辑很朴素:LLM擅长理解非结构化意图(比如销售发来一封含糊邮件:“客户A对报价B有疑虑,尽快处理”),但它不掌握客户主数据在哪、合同版本是否已审批、库存实时状态如何、甚至不知道该调哪个系统的哪个接口。而MuleSoft恰恰是企业里唯一一张完整、可信、实时更新的“系统地图+操作手册”。它把ERP、CRM、HRIS、MES这些沉睡的孤岛,变成LLM可调用的“函数库”。所以这不是AI+Integration,而是Integration as AI’s Runtime。关键词“AI Orchestration”里的“Orchestration”,指的就是这种动态编排能力:根据LLM解析出的用户意图,实时判断需要调用哪些系统、按什么顺序、传什么参数、失败后如何降级。它解决的是企业AI落地最痛的断点——模型能力与业务动作之间的“最后一公里鸿沟”。适合读这篇文章的,是那些已经跑通了单点AI PoC、正被“怎么让AI真正驱动业务”问题困扰的架构师、集成工程师、AI产品负责人,以及想跳过PPT阶段、直接看真实配置和踩坑记录的技术决策者。

2. 核心思路拆解:为什么必须用MuleSoft做LLM的“调度器”,而不是自己写胶水代码

2.1 企业级AI落地的三大死结,MuleSoft直击要害

很多团队尝试用Python脚本或低代码工具串联LLM和业务系统,初期很顺,但一上生产就崩。我见过最典型的三个崩溃现场,都指向同一个底层矛盾: LLM的动态性与企业系统的刚性之间存在不可调和的摩擦 。

第一个死结是 协议与认证的碎片化 。销售系统用OAuth 2.0 PKCE,财务系统只认SAML 2.0,供应链系统还在用Basic Auth加IP白名单,而设备管理系统要求双向mTLS证书。如果让LLM直接对接,就得在提示词里硬编码所有认证逻辑,或者写一堆if-else判断——这既不可维护,更埋下巨大安全风险。MuleSoft的Anypoint Exchange里有超过3000个预建连接器,每个都封装了对应系统的认证、重试、限流、错误码映射。比如调用Salesforce,你只需配置一次Connected App凭证,后续所有Flow里复用同一个Connector实例,MuleSoft自动处理token刷新、session失效重登。实测下来,一个原本需要5人天开发+3人天测试的多系统认证集成,用现成Connector 2小时就能完成配置,且后续系统升级(如Salesforce API版本迭代)由MuleSoft官方连接器自动适配,我们完全无感。

第二个死结是 数据语义的错位 。LLM理解“客户投诉”,但ERP里对应的是 Incident 对象下的 Priority = 'High' AND Status NOT IN ('Resolved', 'Closed') ;LLM说“查最近订单”,CRM里要关联 Account 、 Opportunity 、 Order 三张表并过滤 CreatedDate > LAST_N_DAYS:30 。如果让LLM直接生成SQL或API参数,90%的请求会因字段名、枚举值、时间格式不匹配而失败。MuleSoft的DataWeave语言就是为解决这个而生。它不是简单JSON转换,而是强类型的、声明式的数据映射引擎。你可以定义一个 customerComplaintSchema ,明确指定 complaintType 字段必须映射到Salesforce Incident.Type ,且值域限定为 ['Product Defect', 'Billing Issue', 'Service Delay'] ,DataWeave会在运行时强制校验并转换。更关键的是,DataWeave支持嵌套条件、动态字段计算(比如根据客户等级自动设置SLA时限),这些逻辑一旦写好,就成为LLM调用时的“数据翻译官”,彻底隔离了模型层与系统层的数据契约。

第三个死结是 流程韧性与可观测性的缺失 。LLM调用链路长:用户输入→LLM解析意图→调用系统A→等待响应→LLM生成中间结论→调用系统B→……任何一个环节超时、返回脏数据、网络抖动,整个流程就卡死或产生错误结果。自己写的胶水代码往往只有基础日志,排查时得翻遍各服务日志,耗时数小时。MuleSoft的Runtime Manager提供开箱即用的端到端追踪:从HTTP请求进入API网关开始,到每个Connector的调用耗时、入参/出参快照、DataWeave转换前后数据、甚至JVM内存使用率,全部在一张拓扑图上实时呈现。我们曾定位一个“LLM回复延迟”的问题,发现根源是调用SAP的RFC接口平均耗时12秒,而MuleSoft的监控直接标红了该节点,并显示其线程池已满——这立刻指向了SAP连接池配置不足,而非LLM本身性能问题。这种级别的可观测性,是任何自研脚本都无法低成本实现的。

2.2 架构选型对比:为什么不是Kubernetes + LangChain,也不是Azure Logic Apps

看到这里,可能有人会问:既然目标是编排,那用K8s部署LangChain Agent,或者用Azure Logic Apps,不也能干吗?我们做过严格对比,结论很明确: MuleSoft是唯一同时满足企业级安全合规、现有系统深度集成、以及LLM动态意图理解这三重约束的方案 。

LangChain Agent在K8s上跑,优势在于模型调度灵活、可定制Agent策略。但致命短板是“企业系统盲区”。LangChain的Tool概念本质是Python函数,要调用SAP,你得自己写PyRFC连接、处理ABAP数据类型、管理RFC连接池——这要求开发者既是AI专家又是SAP专家,成本极高。更麻烦的是,LangChain没有内置的企业级治理能力:谁创建的Tool、谁有权调用、调用频次限额、审计日志留存多久?这些在金融、医疗行业是硬性合规要求,LangChain需大量二次开发才能勉强达标。而MuleSoft的API Manager原生支持OAuth scopes、rate limiting、client ID管理、GDPR数据脱敏策略,开箱即用。

Azure Logic Apps看起来更接近,它也有连接器和可视化编排。但我们压测发现两个硬伤:一是连接器生态远不如MuleSoft丰富,尤其对老旧系统(如AS/400、Siebel)支持弱;二是它的表达式语言(Liquid/Workflow Definition Language)在复杂数据转换上力不从心。比如要把LLM解析出的非结构化采购需求(“买10台戴尔XPS13,预算2万,下周到货”)转换成SAP MM模块所需的 BAPI_PO_CREATE 所需20多个嵌套表结构,Logic Apps的表达式会变得极其冗长且难以调试,而DataWeave用几行声明式代码就能清晰表达映射逻辑,并支持单元测试。

最终我们选择MuleSoft,核心是它解决了“信任传递”问题:企业愿意把核心业务系统(尤其是财务、HR)的API权限授予MuleSoft,因为它是经过十年以上金融、政府客户验证的集成平台;而不会轻易给一个新起的LangChain服务放行。LLM通过MuleSoft调用系统,相当于借用了MuleSoft的“企业信用背书”,这是技术选型中常被忽略、却决定项目生死的政治因素。

2.3 “AI Orchestration”的本质:从静态API网关到动态意图路由器

理解MuleSoft在此场景中的角色,必须跳出传统API网关的思维。传统网关(如Kong、Apigee)核心是“路由+鉴权+限流”,它把请求从A转发到B,路径是固定的。而AI Orchestration要求的是“意图路由”:同一个LLM输出的请求,可能因上下文不同走向完全不同的系统组合。

举个真实案例:某银行客服AI。用户说“我的信用卡被锁了”。LLM解析出意图是 cardLockedInquiry 。但接下来的路由逻辑是动态的:

  • 如果用户是VIP客户(从CRM查出 Tier = 'Platinum' ),则优先调用内部风控系统 RiskEngine 查询锁定原因,再调用 CardService 生成临时解锁码;
  • 如果是普通客户,则先调用
MuleSoft作为LLM编排中枢:企业级AI工作流的可治理实现 大语言模型(LLM)在企业落地的核心瓶颈,不在于模型能力,而在于缺乏与现有IT治理体系的深度集成。LLM编排(AI Orchestration)区别于简单API调用,强调多源上下文协同、动态决策路由、语义级数据转换与全链路可观测性。MuleSoft凭借其原生协议适配、DataWeave语义映射、Object Store状态治理及Anypoint平台级策略管控能力,成为支撑LLM进入SOA/ESB体系的关键中枢。它解决GDPR可追溯、金融合规水印、SLA熔断、Schema校验等生产刚需,使LLM从‘智能函数’ 阅读详情

相关推荐

MuleSoft AI Orchestration:企业级LLM编排实战架构

AI编排(Orchestration)是大语言模型(LLMs)从概念验证走向规模化生产的核心范式,其本质是将非结构化AI能力纳入企业服务总线(ESB)级治理体系。它超越简单API调用,聚焦意图解析、上下文编织、动态能力链调度与实时治理闭环,解决语义鸿沟、状态缺失和合规归零三大落地瓶颈。依托MuleSoft的DataWeave、Object Store、Event Mesh与Runtime Fabric等原生能力,可构建具备可审计性、韧性与多模型协同能力的AI Control Plane。该架构已在金融、制造

weixin_34318326的博客 360

MuleSoft+LangChain企业级AI编排实战指南

AI编排(AI Orchestration)是大模型落地企业核心系统的枢纽能力,本质是解决数据孤岛与智能服务之间的调度、治理与协同问题。其技术原理在于构建可编排的数据管道与AI管道,在安全合规前提下实现跨系统数据拉取、语义理解、多步推理与结构化交付。该能力直接支撑销售智能助手、客户流失预警、自动化合规报告等高价值场景。本文聚焦MuleSoft与LangChain的生产级组合实践,详解如何用MuleSoft保障企业集成韧性(如SAP RFC深度连接、OAuth2.0联邦认证、运行时脱敏),同时借LangCha

weixin_34168880的博客 565

MuleSoft企业级AI编排:让大语言模型可信、可控、可治理

大语言模型(LLM)作为新兴智能服务,其非确定性、语义漂移与上下文风险,使其难以直接融入企业核心业务系统。真正的企业AI落地,关键不在模型调用本身,而在于如何通过标准化编排、强Schema约束、全链路审计与多级故障降级,将LLM转化为可配置、可验证、可回滚的受控智能单元。MuleSoft凭借DataWeave语义对齐、Runtime Fabric服务治理、Anypoint Observability可观测性等能力,填补了AI工程化与企业IT治理体系之间的鸿沟。它使Prompt工程成为可版本管理的资产,让LL

weixin_30770783的博客 946

MuleSoft+LLM企业级AI编排:构建可审计、可治理的智能集成中枢

大语言模型(LLM)在企业落地的核心瓶颈,从来不是算力或模型性能,而是如何与SAP、Salesforce等异构系统安全、可靠、合规地深度集成。这涉及API契约管理、协议语义转换、全链路可观测性及SOX/ GDPR等强合规要求。MuleSoft凭借DataWeave数据编织能力、Runtime Fabric私有化部署支持、开箱即用的审计日志与策略治理机制,成为连接LLM语义智能与企业核心业务流的关键枢纽。它将AI从演示脚本升维为生产级服务——支持发票自动校验、合同合规审查、IT事件智能分级等真实场景,真正实现

weixin_30908941的博客 521

MuleSoft企业级AI编排:让大模型安全嵌入ERP/CRM核心流程

AI编排(AI Orchestration)是将大语言模型与企业既有系统深度协同的关键范式,其本质不是简单调用LLM API,而是通过确定性流程实现意图识别、上下文增强、规则校验与安全执行。MuleSoft Anypoint Platform凭借开箱即用的120+企业级Connector、Runtime Fabric的混合部署能力及Anypoint Exchange的统一治理,天然适配ERP、CRM、WMS等强契约系统,有效解决LLM‘幻觉’与业务刚性之间的根本矛盾。该方案已在医疗器械、零售等行业落地验证,

weixin_34128237的博客 717

AI编排实战:MuleSoft+LangChain企业级落地指南

AI编排(AI Orchestration)是连接企业碎片化数据系统与大语言模型的关键基础设施,其本质是构建可审计、可追溯、权限可控的智能调度中枢。它并非简单API串联,而是融合API治理、数据血缘、模型行为边界与异常熔断机制的交叉工程。在金融、保险、政务等强监管场景中,需兼顾LLM的不确定性与企业系统的确定性——这正是MuleSoft负责安全集成、LangChain专注智能推理的分层价值所在。本文聚焦真实生产环境中的数据汇聚、Prompt工程、输出容错、响应封装与灰度发布等核心环节,提供可复用的配置范式与

csdndownload11123的博客 313

MuleSoft作为AI工作流中枢:企业级LLM编排的架构与实践

AI编排(AI Orchestration)是大语言模型落地企业生产环境的核心范式,其本质是将LLM的认知能力与企业已有IT系统的治理、路由、安全与可观测能力深度协同。不同于低代码自动化工具或裸调API,真正的AI编排需满足可用性、可控性与合规性三大硬约束,依赖协议无关的集成能力、全生命周期治理机制和韧性Fallback设计。MuleSoft凭借其成熟的企业服务总线基因与Anypoint平台能力,天然适配这一需求,可将LLM调用转化为受控、可审计、可降级、可计量的标准化API资产。本文聚焦AI编排在金融、制

weixin_34348174的博客 333

MuleSoft企业级AI编排:LLM服务化、治理与生产落地

大语言模型(LLM)在企业中已从概念验证迈向核心系统集成,但裸调API面临安全合规、协议适配、可观测性与治理缺失等根本挑战。MuleSoft作为成熟的企业集成平台,凭借DataWeave数据转换、Runtime Fabric私有部署、API全生命周期管理及Flow可视化编排能力,可将LLM重构为可审计、可熔断、可计量的标准化服务组件。其技术价值在于 bridging AI与ERP/CRM/HRIS等遗留系统,支撑保险理赔、合规审查、客户意图识别等高价值场景。本文聚焦MuleSoft如何实现LLM的服务化封装

weixin_30394981的博客 675

MuleSoft+LLM企业级AI编排实战:从PoC到生产就绪

AI编排(AI Orchestration)是将大语言模型深度融入企业核心系统的工程方法论,其本质是把LLM作为可调度、可验证、可审计的有状态服务组件,而非简单API调用。它依赖集成平台实现上下文锚定、业务规则校验与数据治理闭环,解决LLM概率性输出与企业确定性流程之间的根本矛盾。关键技术包括动态Prompt组装、RAG可信度熔断、Token级资源管控及端到端血缘追踪。在银行、保险、制造等强合规场景中,MuleSoft凭借Anypoint Platform的流式编排、DataWeave数据转换与Object

weixin_30839881的博客 401

MuleSoft+LLM企业级AI编排实战:从工单分类到AI中枢

大语言模型(LLM)在企业落地面临数据孤岛、合规缺失与业务集成难三大瓶颈。MuleSoft作为成熟的企业级API治理与流程编排平台,凭借DataWeave语义处理、Anypoint策略治理和Runtime Fabric混合云一致性能力,天然适配LLM的工程化部署需求。其核心价值在于将非结构化AI能力转化为可审计、可降级、可复用的标准化服务组件,支撑信贷审批、保险理赔、IT工单等高敏场景。本文聚焦MuleSoft与LLM协同架构设计、安全合规落点及提示词工业化实践,提供银行、制造、保险等行业可复用的AI集成方

weixin_31062533的博客 263

深信服aCloud虚拟存储VS3.0实战:从数据分片到仲裁机制的全流程解析

本文深度解析了深信服aCloud虚拟存储VS3.0的核心架构与生产级实践。从数据分片、条带化写入、多副本机制到智能缓存分层,详细阐述了其如何实现高性能与高可靠性的平衡。同时,深入剖析了动态均衡、平滑扩容以及故障恢复与仲裁机制,为运维人员和技术决策者提供了在超融合基础架构(HCI)中部署和管理虚拟存储的实战指南。

net55的博客 588

FPGA图像处理入门 ZYNQ7020 图像中值膨胀腐蚀滤波

图像处理的三种滤波 中值滤波应用较为广泛 综合膨胀和腐蚀可以实现边缘检测。

Coast_的博客 715

Uncertainty-Aware Mean Teacher(UA-MT)

本文提出了一种新的基于不确定性的半监督学习框架(UA-MT),通过额外利用未标记的数据从3D MR图像中分割左心房。具体地说,本文建立了一个教师模型和一个学生模型,学生模型通过最小化标注数据上的分割监督损失和所有输入数据上的与教师模型预测输出的一致性损失进行优化。如果没有未标记输入中的注释,教师模型的预测目标可能不可靠且有噪声。:在估计不确定性 U 的指导下,我们过滤掉相对不可靠**(高不确定性),整个体积** U 的不确定性**是 {u} ∈ RH×W ×D。过滤掉高不确定性的,也就是熵大于某个值的。

Alexa_的博客 1870

VirtualBox安装Win10虚拟机超详细教程(附微软官方镜像下载)

本文提供了一份详细的VirtualBox安装Win10虚拟机教程,涵盖从环境准备、工具下载到系统安装与初始配置的全过程。特别推荐使用微软官方镜像下载,确保系统纯净安全。此外,还分享了性能优化技巧和常见问题解决方案,帮助用户高效搭建稳定的Windows测试环境。

weixin_29243279的博客 919

SerDes系列之FFE均衡技术

FFE的基本结构可以在RX侧或TX侧实现,其基本工作原理相同:它通过从同一信号源应用适当的延迟来产生多径信号,然后对它们进行线性缩放和组合以消除信道ISI。

一只豌豆象的博客 4243

YOLOv11 改进 - 特征融合 | 替换 C3k2 涨点:GELAN 融合 CSP+ELAN 提精度

本文介绍了可编程梯度信息(PGI)和广义高效层聚合网络(GELAN)与 YOLOv11 的结合,以解决深度网络数据传输时的信息丢失问题。PGI 能为目标任务提供完整输入信息,计算目标函数以更新网络权重。GELAN 作为轻量级网络架构,由 SPPELAN、ELAN1、RepNCSPELAN4 等模块组成。我们将 GELAN 代码集成进 YOLOv11, 实验脚本显示,结合 GELAN 的 YOLOv11 在 MS COCO 数据集目标检测任务中或有良好表现。

魔改工程师的博客 1242

支持向量机算法之鸢尾花特征分类【机器学习】

支持向量机(SVM)是一种二元分类模型。它的基本模型是在特征空间中定义最大区间的线性分类器,这使它不同于感知器;支持向量机还包括核技术,这使得它本质上是一个非线性分类器。支持向量机的学习策略是区间最大化,它可以形式化为求解凸二次规划的问题,等价于正则化铰链损失函数的最小化。支持向量机的学习算法是求解凸二次规划的优化算法。Scikit learn(sklearn)是机器学习中常见的第三方模块。它封装了常见的机器学习方法,包括回归、降维、分类、聚类等。实例的特征向量(以2D为例)映射到空间中的一些点,如下图中的

一键难忘的博客 4971

【Coze搞钱实战】14. 抖音直播间自动回复机器人实战教程:三小时搭建智能客服,互动率提升150%(保姆级无代码指南)

摘要:抖音直播间高频问题重复回复、观众互动不及时是运营痛点。本文针对新手和进阶用户,提供无代码的自动回复机器人搭建方案:新手1小时完成基础配置(Coze+抖音对接),进阶用户通过促销倒计时、粉丝分层、热点借势三大策略提升互动率150%。方案基于某女装直播间实测数据(日UV 5W+),所有工具免费获取,步骤拆解到分钟级,附避坑指南与效果验证(某案例互动率从8%升至20%),读者可直接套用配置模板,无需代码基础即可落地。

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

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

上一篇: Windows UAC绕过技术深度解析:从原理到PowerShell-Suite实战
下一篇: AI原生应用前沿追踪与工程实践指南
java_mail_test
博客等级 码龄18年 1粉丝 299原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值