ERP数据拆分什么鬼东西?看完终于明白了!!!

ERP系统中分库分表的应用 ​ 随着业务的发展,ERP系统需求越来越广,系统界面、表结构、业务逻辑越来越复杂,报表查询的逻辑也越发的复杂,随着时间的推移数据量也逐渐飙升。当一张表的数据达到几千万时,查询一次所花的时间会变长。这时候,如果有联合查询的话,可能会卡死在那儿,甚至把系统给拖垮。而分库分表的目的就在于此:减小数据库的负担,提高数据库的效率,缩短查询时间。权衡过多个框架的利弊后,我们最终选择使用Sharding-JDBC来进行分库分表。 ​ 阅读详情

图片

声明:本文仅代表原作者观点,仅用于ERP软件的应用与学习,不代表任何公司。

2024年是企业数字化转型的关键之年,企业势必要加快数据价值释放,加速数字化转型。

未来数字经济会占据整个GDP的近半壁江山,对于企业来说,“得数据者得天下”。

图片

数据即资产吗?答案是NO。并不是所有数据都能称之为数据资产。数据资产是由个人或企业拥有或控制的,能够为企业带来未来经济利益的,以物理或电子的方式记录的数据资源。

谈到数据资产,就会提到数据治理,数据治理的目的是提升数据质量,进而提升数据资产价值。数据拆分就是从数据治理衍生出来的。很多ERP顾问可能对ERP系统数据拆分比较陌生,其实笔者前几年写过一些关于数据拆分的文章,如《ERP数据治理之数据的单位化拆分》、《基于数据中台的ERP系统数据按单位拆分方案【上篇】》、《基于数据中台的ERP系统数据按单位拆分方案【下篇】》、《关于ERP系统数据按单位拆分的总结》等,感兴趣的朋友可以看看。

话说回来,什么时候ERP系统数据需要进行拆分处理呢?大型央国企或民营企业,集团下属单位或公司比较多,比如国家电网公司,其下有27家网省公司,每个省公司其下有多个地市公司,每个地市公司下面还有多个区县单位....类似这种情况的公司还有很多,那么如何确保数据治理落实到单位,落实到人,才能更高效地从源头把数据治理好,就需要把ERP系统的数据按单位(ERP系统数据库表中的单位字段或具有单位属性的字段,以下称为:拆分字段)进行拆分,正所谓数据“谁生产,谁治理”。这里需要说明的是,此数据治理并不是指主数据治理,而是一手数据。关于一手数据,可以参考《SAP ERP系统哪些是一手数据?》、《ERP系统哪些数据能够称为“一手数据”?》、《ERP系统“一手数据”如何治理?》、《ERP系统“一手数据”治理任重道远》。

以下是笔者为某国企设计的基于ERP系统的数据表及字段自动识别并进行数据拆分的功能流程图,仅供大家参考:

图片

说明:

1)有效(业务)表:除去ERP数据库中的系统配置表、日志表、备份表、测试表、空表、僵尸表等,实际存储业务或基础数据的数据表,比如SAP ERP系统中的EKKO(采购订单的抬头表)、EKPO(采购订单的明细表)两张表就是用于存储采购订单信息的数据表。

2)负面清单:关于数据负面清单,你完全可以理解数据只要纳入负面清单,就不能随便对外开放或使用,因为被纳入负面清单的数据往往都是涉密数据。

3)拆分字段:就是上面我们说到的数据表中的单位字段或者具有单位属性的字段,比如SAP ERP系统中的PROJ表,表中具有单位属性的字段有PRCTR(利润中心)、KOSTL(成本中心)、WERKS(工厂)、FUNC_AREA(功能范围)、VKORG(销售组织)、VTWEG(分销渠道)、SPART(产品组)、VKOKR(此项目的控制范围)等字段,也就是意味着该表具有多个拆分字段,而实际业务中PRCTR(利润中心)、KOSTL(成本中心)、WERKS(工厂)三个字段数据是可以满足数据拆分条件的。

4)关联其他表获取拆分字段:并不是所有的有效业务表都具有拆分字段(单位字段),这个时候就需要与其他数据表进行关联,SAP ERP系统强大的一个地方就是底层设计表和字段的时候,通常具有关联关系的字段在不同的表中字段名称都是一样的,结合笔者做SAP ERP系统数据治理的实践,不一样的情况比较少。

最后,需要补充的是数据拆分的目的是ERP数据治理能够实现“谁生产、谁治理”,从而最大程度地提高ERP系统数据治理的工作效率。

图片

图片

图片

图片

版权归原作者所有,如有侵权请联系删除。

免责声明:本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容!本文内容为原作者观点,并不代表本公众号赞同其观点和对其真实性负责。

图片

终于有人把生产计划、MPS、MRP、CRP讲明白了! 生产计划管理是工厂运营的核心,生产计划、MPS、MRP和CRP各司其职:生产计划是总体框架,MPS确定成品生产排期,MRP计算物料需求,CRP评估产能匹配度。四者形成完整链条,但许多工厂仅停留在表面排产,导致计划失效。建议企业先梳理基础数据,逐步实现系统化管理,才能真正发挥计划指导作用,避免日常救火。 阅读详情

相关推荐

一张图看懂ERP、MES、PLC:三层架构与数据流向全解析

在工厂信息化与智能制造推进中,ERP、MES、PLC是三个绕不开的核心系统,但很多人对它们之间的层级关系和数据流向缺乏清晰认知。从概念上看,ERP聚焦计划与资源,MES负责车间执行与数据翻译,PLC则控制设备动作,三者分别运行在天/周、分钟/小时、毫秒/秒的不同时间刻度上。理解这种分层原理,不仅是系统选型与集成的基础,也是避免“越权”和“数据孤岛”的关键。在工业互联网和数字孪生等热门技术落地时,清晰的数据流设计——下行指令逐级细化、上行状态逐级聚合——直接决定了项目成败。无论是新建智能工厂还是老线改造,先厘

weixin_28684825的博客 159

erp系统主表和系统子表的区别

ERP系统中的主表和子表分别指的是在数据管理和业务流程中起到不同作用的数据库表。主表通常包含核心业务信息、子表用于记录与主表相关的详细信息。例如,在一个订单管理系统中,订单主表可能包含订单的基本信息,如订单编号、客户名称和订单日期,而订单子表则可能记录每个订单的详细项目,如产品名称、数量和价格。

滴水石穿 755

物料主数据清洗与切换策略:从数据治理到ERP平稳过渡实战指南

在企业的信息化转型中,数据治理是确保新老系统平稳过渡的基石,而物料主数据作为供应链、财务与生产的核心主数据,其质量直接决定ERP系统切换的成败。面对历史数据中普遍存在的一物多码、属性缺失、垃圾数据等问题,必须形成一套包括清洗规则设计、编码映射、人工复核与结果校验在内的系统性清洗方法。同时,切换策略需统筹切换窗口、并行期、冻结期与应急回退机制,以最小化业务冲击。该方法论适用于制造、零售、医药等行业的数据迁移与系统升级场景,能有效降低账实不符、采购中断等风险,保障企业核心业务连续运行。本文结合实战经验,提供了一

weixin_27256197的博客 277

什么是数据治理?如何从数据治理中获得价值?

数据治理(Data Governance)是一套系统化的管理框架,旨在通过制定策略、流程、角色和标准,确保组织数据的质量、安全性、可用性、一致性和合规性。其核心目标是将数据转化为可信赖的资产,支撑业务决策、风险控制和价值创造。策略与政策:明确数据管理的目标和规则。组织架构:如数据治理委员会、数据管理员(Data Steward)。流程与工具:数据质量管理、元数据管理、访问控制等。合规与安全:遵循法规(如GDPR、中国《数据安全法》),防范数据泄露。对中小企业而言,数据治理无需“大而全”,关键在于。

软件行业技术文化交流。 978

2026年工厂ERP选型指南:AI能力成关键指标

ERP作为企业资源计划的核心系统,长期承担着记录业务、规范流程的基础职能。随着AI技术深入渗透制造业,ERP正从“记录系统”向“决策系统”跃迁,通过需求预测、库存优化、智能排产等场景,帮助企业降低成本、提升交付效率。2026年工厂进行ERP选型时,AI能力已从可选项变为必选项,但如何辨别真AI与噱头、如何评估技术架构与落地效果,成为生产经理与IT负责人面临的关键挑战。本文梳理了AI驱动ERP的四种技术入口,对比了国际系、国产平台系与垂直行业系方案差异,并给出包含AI成熟度、开放度、POC验证在内的六维评分模

weixin_33895695的博客 251

SAP 采购订单抬头表 EKKO 的「核心字段」清单与逐条业务含义说明,已剔除技术冗余字段,可直接用于报表开发、审计取数或流程排查

本文提炼了SAP采购订单抬头表EKKO的核心业务字段,分为9类说明其业务含义:订单标识(如订单号、凭证类型)、组织维度(如公司代码、采购组)、合作方信息、日期时间、金额币种、审批状态、控制标志、合同关联及文本备注。重点指出EBELN(订单号)作为全流程追踪依据、BEDAT/AEDAT(业务日期/创建日期)的区别应用、PROCSTAT+FRGRL组合判断审批状态等关键点,并提供了关联表建议和实用技巧(如过滤逻辑删除订单)。这些精选字段可直接用于报表开发、审计分析和流程排查。

金牌架构师 914

一文了解数据治理全知识体系

数据治理

LuckyTHP 2670

基于Java的开源ERP系统实践:从源码分析到二次开发落地

从企业信息化建设中的常见痛点出发,围绕开源ERP的选型与落地,探讨如何借助Java技术栈构建一套完整、可扩展的业务管理系统。文章从基础概念讲起,分析ERP系统的核心模块与业务闭环原理,梳理主从表设计、状态机、事务控制等关键技术,并结合实际部署与二次开发流程,展示如何从零开始读懂源码、改造字段、上线运维。适合Java开发者、中小企业技术团队参考,帮助读者理解从采购、销售到库存财务的一体化业务逻辑,掌握开源ERP在真实业务场景中的应用价值。

weixin_33922670的博客 319

MES/ERP复杂多结构组件拆分:从工单到返工模块的落地实践

MES/ERP系统的业务复杂度极高,工单、返工单等核心对象往往嵌套多层数据,传统页面堆字段的方式导致代码臃肿、难以维护。本文从组件化设计出发,讲解如何将复杂业务拆解为高内聚的段落组件,通过主从、树形、流程等结构组合实现按角色、按工厂装配页面。组件化不仅是前端工程手段,更是应对长期演进的系统架构思路。以工单详情和返工返修模块为例,详细说明了段落识别、组件通信、状态机管理、动态加载等关键设计,并给出了落地节奏与踩坑经验,帮助读做好MES/ERP产品复杂业务建模。

weixin_26767391的博客 275

ERP项目数据清理

ERP项目中的核心工作,数据清理。

数据切割ERP数据切割工具.7z

官方发布的ERP数据切割工具,已经正式使用过,不过建议使用前先测试!

基于TOGAF 4A架构的ERP自研方法论体系构建指南

企业架构是连接业务战略与IT系统的桥梁,而ERP作为企业数字化的核心载体,其自研成功与否往往取决于架构方法论的完备性。TOGAF 4A架构以业务架构、数据架构、应用架构、技术架构四层骨架,系统性地定义了从业务需求到技术落地的分层治理逻辑,为复杂软件工程提供了标准化决策框架。在工程实践中,4A架构不仅帮助企业厘清概念、原理与数据流向,还能有效提升模块解耦、接口契约和主数据管理能力,降低长期维护成本。该方法论适用于制造业、贸易流通等多业态场景,尤其适合对数据主权和业务响应速度有高要求的企业,用以构建可演进的ER

weixin_28520495的博客 227

亚马逊广告接口 amazon advertising

亚马逊广告接口官方说明:https://advertising.amazon.com/API/docs/en-us/setting-up/account-setup 一:注册aws开发者账号 注册地址:https://developer.amazon.com 二:填写注册资料 三:进入控制台,生成安全配置文件 进入 Login with Amazon 菜单: 创建配置文件: 四:申请广告接入权限 申请地址:https://advertising.amazon.com/zh-cn/about-api

lzy66666的博客 4776

企业数字化系统地图:ERP、MES、CRM、OA、低代码分别管什么?

企业信息化建设常因系统边界不清导致数据孤岛和协同问题。本文梳理了ERP、MES、CRM、OA和低代码五类系统的核心定位:ERP管资源账目,MES管生产执行,CRM管客户经营,OA管组织协同,低代码则作为灵活补充层。

weixin_52213728的博客 377

PyMuPDF`库实现PDF旋转功能

本文介绍了一个简单的Python应用程序,用于将PDF文件转换为旋转90度的PDF文件。通过使用`wx很抱歉,Markdown格式在当前聊天界面无法显示。我将为您提供纯文本格式的博客内容,您可以将其复制到Markdown编辑器中进行格式化。PDF转换工具本文介绍了一个简单的Python应用程序,用于将PDF文件转换为旋转90度的PDF文件。该工具使用了wxPython和PyMuPDF库。功能该PDF转换工具具有以下功能:1. 选择PDF文件:通过点击“选择文件”按钮,用户可以选择要转换的PDF文件。

Winfredzhang的博客 2735

MCU工程迁移实战:从STM32到MSPM0L1306的完整指南

在嵌入式系统开发中,MCU工程迁移是开发者常面临的核心挑战,涉及从旧平台向新芯片的完整适配。其原理在于不同MCU在硬件架构、外设寄存器映射、时钟树及开发工具链上存在差异,迁移的本质是将应用逻辑与底层硬件实现解耦。这一过程的技术价值在于提升代码复用性、降低硬件切换成本,并确保产品能快速响应供应链或技术栈变化。典型应用场景包括产品升级换代、芯片缺货替代以及技术生态统一。本文以TI MSPM0L1306为例,详解如何通过对比清单分析、DriverLib API替换及分步调试,高效完成从STM32等平台到Arm C

weixin_27625589的博客 330

小卖家ERP选型指南:从订单混乱到多平台高效运营

当订单从几十单冲到几百单,多平台铺货带来的订单分散、库存不同步、发错货等问题会迅速暴露,Excel已难堪重任。ERP的核心价值在于打通订单、库存、采购与财务链路,但小卖家选型常被概念误导。首先要明确自身业务流程与规模档位,再匹配轻量SaaS或本地部署;关键功能需聚焦多平台订单聚合、实时库存同步、批量打单与对账能力。高并发大促场景下,系统稳定性取决于架构设计,也可通过预打包、安全库存等运营手段缓解。数据迁移时务必冻结期初数据,日常巡检不可少。ERP+AI是未来方向,但对起步期卖家而言,先保证流程匹配与数据准确

weixin_33906657的博客 216

零中频架构实战:用Matlab模拟AD9361收发信号(附完整代码)

本文详细介绍了如何使用Matlab模拟AD9361射频收发器的零中频架构,解决镜像干扰等关键挑战。通过完整的代码示例和系统级建模方法,帮助工程师掌握RFIC设计中的自适应校准算法和性能优化技巧,特别适用于SDR系统开发。

weixin_30733003的博客 541

基于SpringBoot的ERP仓储管理系统设计与实现指南

企业资源计划(ERP)与库存管理是数字化转型中的高频需求,其核心在于对“进销存”全链路进行数据化与流程化管控。一套可靠的管理系统,既要通过数据库建模梳理商品、仓库、供应商与流水记录的关系,也要利用事务与锁机制保证出入库时库存数据的一致性。SpringBoot作为轻量级Java开发框架,有效降低了企业级Web系统的搭建门槛;配合MyBatis Plus简化数据持久化、使用前后端分离模式构建界面,可快速落地一个功能闭环。权限控制、Excel批量导入导出、库存预警、统计报表等典型模块,都是工程实践必须解决的具体场

weixin_29219539的博客 237

别再一个个BAPI调了!用CVI_EI_INBOUND_MAIN一次性搞定SAP BP主数据(附完整ABAP代码)

本文详细介绍了如何使用SAP标准函数CVI_EI_INBOUND_MAIN高效维护业务伙伴(BP)主数据,替代传统的多BAPI调用方式。通过完整ABAP代码示例,展示了如何一站式处理供应商、客户、公司代码等所有视图的创建与更新,提升数据一致性和开发效率。

weixin_29204205的博客 291

Ollama+FAISS+Embedding+Rerank+LLM 详细部署指南

下载安装Ollama 双击运行安装程序 安装完成后会自动启动服务 修改默认安装路径(避免C盘爆满) 或使用PowerShell: 验证安装 Linux系统部署: (二)准备模型 1. 拉取Embedding模型 2. 拉取LLM模型 注意:原文中提到的可能需要从自定义仓库拉取: 3. 下载Rerank模型 (三)安装依赖库 创建项目目录和虚拟环境: 二、主要功能实现 项目结构 (一)配置文件(config/config.yaml) (二)文本分块策略实现 创建 : (三)文档读取

AI技术改变世界 1580

穿透云原生SaaS ERP的架构叙事:六个维度验证真实落地能力

云原生架构已成为企业数字化转型中的热门话题,微服务与容器化承载着弹性伸缩的美好愿景。然而,架构优势并不等于生产环境中的稳定表现。多租户隔离、数据库扩展、API集成等底层机制,往往才是决定ERP系统真实体验的关键。当订单峰值、月末结账等场景出现性能瓶颈,企业需要的是经过验证的工程能力,而非PPT上的技术叙事。从技术架构虚实、多租户边界、性能压测、集成工程、迁移切换与长期合作六个视角,系统评估一套云原生SaaS ERP的真实落地能力,能够帮助CIO与IT决策者在选型中穿透营销话术,建立可验证的评估框架,避免为精

weixin_31364787的博客 264

如何使用 Python 爬虫爬取滴滴打车信息:获取司机和乘客数据

滴滴打车作为中国最大的打车平台之一,提供了丰富的司机和乘客数据,包括司机的车辆信息、乘客的评价、行程数据等。公开的司机和车辆信息(如司机的名字、车辆类型、评价等)可以通过网页直接获取,而乘客的个人信息和具体行程数据通常会受到隐私保护。在滴滴打车的网页中,司机的信息可能以特定的 HTML 标签存在,例如包含司机名称、车辆类型、车辆等级等信息。我们需要分析网页的 HTML 结构,找到这些数据所在的标签。同时,对于涉及到隐私的用户数据(如乘客的行程信息、用户评价等),我们必须特别谨慎,避免侵犯他人的隐私。

2201_76125261的博客 1917

外贸ERP如何唤醒沉睡数据,破解制造企业数据孤岛难题

在传统制造企业的数字化转型进程中,数据孤岛往往是最先暴露的拦路虎。订单、库存、采购等业务数据沉睡在各部门的Excel与独立系统中,口径不一、彼此割裂,致使管理者面对“真实毛利”“客户价值”等关键问题只能靠猜。而外贸ERP作为一种业务驱动的管理系统,能沿着外贸订单这条绵长链条完成数据采集、清洗、建模与应用,将沉睡数据逐一激活。从统一客户与SKU编码的主数据治理,到打通ERP与财务、仓储、生产的系统集成,再到搭建经营驾驶舱看板,外贸ERP可以把散落的数据转化为可分析、可决策的资产。典型场景包括订单毛利多维拆解、

weixin_29038155的博客 208

2024年03月CCF-GESP编程能力等级认证Python编程五级真题解析

下面流程图在yr输入2024时,可以判定yr代表闰年,并输出 2月是29天 ,则图中菱形框中应该填入( )。 A. (yr % 400 == 0) or (yr % 4 == 0) B. ( yr % 400 == 0) or (yr % 4 == 0 and yr %100 != 0) C. ( yr % 400 == 0) and ( yr % 4 == 0) D. (yr % 400 == 0) and (yr % 4 == 0 and yr % 100 != 0)

人生就是一个不断学习的过程 746

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

跨境电商多仓发货规则:拆单成本优化与ERP落地实践

跨境电商订单履约中,拆单是影响利润的隐形杀手。当同一订单中的SKU分布在FBA、第三方海外仓或国内直发仓时,系统自动拆单会产生额外头程运费、末端派送费与人工操作成本。理解库存映射和订单路由原理,是优化多仓发货规则的基础。通过ERP系统配置仓库分级、SKU绑定、费用参数与时效约束,可在整单优先与成本最优之间取得平衡。合理设置拆单惩罚系数、验证规则灰度上线,能有效降低拆单率,提升客户体验。本文结合电商物流工程实践,系统拆解多仓发货规则的配置方法与排查技巧,帮助跨境卖家真正掌控履约成本。

weixin_42604188的博客 267

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

上一篇: 炸裂!Sora能给ERP带来什么?
下一篇: ERP顾问!你的数据认知水平如何?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值