解决Activiti Modeler 部署中文流程 报错问题

如何在开源程序中添加Apache License2.0授权 在开源程序中添加许可证是必不可少的一个工作,下面我们来看一下当今最常用开源许可证Apache License2.0如何添加到自己的开源程序中,添加License十分简单,根据下面的步骤你只需要5分钟就可以完成。 1、官网条款全文 全文地址:https://www.apache.org/licenses/LICENSE-2.0 可以打开官文看一下全文内容,也可以跳过直接看下面步骤。 2、如何... 阅读详情

我的Activti 版本是5.13

在画流程图的时候 含有中文的流程图无法部署,看了半天源代码。直接把流程图转成base64来解决。

1.在Modeler 保存流程是调用方法org.activiti.editor.rest.model.ModelSaveRestResource

下面是修改后的完整代码 json_xml传递过来发现是gbk的,这里我转成utf8 然后在进行base64编码。

/* Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.activiti.editor.rest.model;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;

import org.activiti.editor.constants.ModelDataJsonConstants;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Model;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.PNGTranscoder;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.node.ObjectNode;
import org.restlet.data.Form;
import org.restlet.data.Status;

import org.restlet.resource.Put;
import org.restlet.resource.ServerResource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import sun.misc.BASE64Encoder;
/**
 * @author Tijs Rademakers
 */
public class ModelSaveRestResource extends ServerResource implements
		ModelDataJsonConstants {

	protected static final Logger LOGGER = LoggerFactory
			.getLogger(ModelSaveRestResource.class);

	@Put
	public void saveModel(Form modelForm) {
		ObjectMapper objectMapper = new ObjectMapper();
		String modelId = (String) getRequest().getAttributes().get("modelId");
		// System.out.println("json " + modelForm.getFirstValue("json_xml"));

		try {

			/*
			 * ObjectNode modelNode = (ObjectNode)
			 * objectMapper.readTree(modelForm.getFirstValue("json_xml"));
			 * JsonToBpmnExport converter = new JsonToBpmnExport(modelNode);
			 * byte[] bpmnBytes = converter.convert();
			 * System.out.println("bpmn " + new String(bpmnBytes));
			 */

			RepositoryService repositoryService = ProcessEngines
					.getDefaultProcessEngine().getRepositoryService();
			Model model = repositoryService.getModel(modelId);

			ObjectNode modelJson = (ObjectNode) objectMapper.readTree(model
					.getMetaInfo());

			modelJson.put(MODEL_NAME, modelForm.getFirstValue("name"));
			modelJson.put(MODEL_DESCRIPTION,
					modelForm.getFirstValue("description"));
			model.setMetaInfo(modelJson.toString());
			model.setName(modelForm.getFirstValue("name"));

					
			byte[] svg_xml=modelForm.getFirstValue("svg_xml").getBytes("UTF-8");
		
			
			//转成UTF-8 然后使用base64编码
			String gbk=new String(modelForm.getFirstValue("json_xml").getBytes("GBK"));
			String iso = new String(gbk.getBytes("UTF-8"),"ISO-8859-1");
			String utf8=new String(iso.getBytes("ISO-8859-1"),"UTF-8");
			byte[]  json_xml=new BASE64Encoder().encode(utf8.getBytes("UTF-8")).getBytes();
			repositoryService.addModelEditorSource(model.getId(),json_xml);
			
			
			
			InputStream svgStream = new ByteArrayInputStream(svg_xml);
			TranscoderInput input = new TranscoderInput(svgStream);

			PNGTranscoder transcoder = new PNGTranscoder();
			// Setup output
			ByteArrayOutputStream outStream = new ByteArrayOutputStream();
			TranscoderOutput output = new TranscoderOutput(outStream);

			// Do the transformation
			transcoder.transcode(input, output);
			final byte[] result = outStream.toByteArray();
			repositoryService.addModelEditorSourceExtra(model.getId(), result);
			outStream.close();
				
			repositoryService.saveModel(model);
			
		} catch (Exception e) {
			LOGGER.error("Error saving model", e);
			setStatus(Status.SERVER_ERROR_INTERNAL);
		}
	}
}


2.取流程图的时候调用的是 org.activiti.engine.impl.RepositoryServiceImpl 下面是修改后的代码


  public byte[] getModelEditorSource(String modelId) {
        //修改
        byte[] json_byte= commandExecutor.execute(new GetModelEditorSourceCmd(modelId));
	    try {
			if(!new String(json_byte).startsWith("{")){
                json_byte=new BASE64Decoder().decodeBuffer(new String(json_byte));
                return json_byte;
            }
		} catch (IOException e) {
			e.printStackTrace();
		}
        return json_byte;
  }


3.发布的时候 String又成了默认编码

org.activiti.editor.ui.EditorProcessDefinitionDetailPanel

String bmpnString=new String(bmpnBytes) 改为String bmpnString=new String(bmpnBytes,“utf-8”)

protected void deployModelerModel(final ObjectNode modelNode) {
    try {
		BpmnModel model = new BpmnJsonConverter().convertToBpmnModel(modelNode);
		byte[] bpmnBytes = new BpmnXMLConverter().convertToXML(model);
		String bpmnString=new String(bpmnBytes,"UTF-8");
		String processName = modelData.getName() + ".bpmn20.xml";
		Deployment deployment = repositoryService.createDeployment()
		        .name(modelData.getName())
		       //.addString(processName, new String(bpmnBytes))
		        .addString(processName, bpmnString)
		        .deploy();

		ExplorerApp.get().getViewManager().showDeploymentPage(deployment.getId());
	} catch (UnsupportedEncodingException e) {
		LOGGER.debug("发布流程xml编码错误");
		e.printStackTrace();
	}
  }

下面是我部署的含有中文的流程






Apache License 2.0: 原文(英文/中文) 将Apache License 2.0的内容搬运于此,便于查阅。 阅读详情

相关推荐

基于Activiti Modoler的SpringBoot流程在线编辑器集成指南

本文详细介绍了如何在SpringBoot项目中集成Activiti Modoler(流程在线编辑器),实现流程设计的线上化与可视化。指南涵盖从依赖引入、后端API构建、前端资源部署到跨域安全配置的全过程,旨在帮助开发者将繁琐的本地流程设计迁移至浏览器端,提升团队协作与开发效率。

weixin_28831341的博客 251

springboot整合activity6

一、说明 此文章为SpringBoot2整合Activiti6设计器形成基于Activiti6的web项目实例的指导文档,整合工具使用的idea。从零开始,详尽的罗列了每一步整合步骤。需要一定整合者要有一定的技术基础,需要了解maven、springboot、activiti、js前端及h5相关的基础技术。 二、资料准备 activiti-6.0.0官方实例:我的网盘下载链接:https://pan.baidu.com/s/1QOxn_AbpHvB5sEjjhG_vDA 提取码:iju7 ; a.

qq_19688207的博客 1604

SpringBoot集成bpmn-js流程设计器:从BPMN标准到Activiti部署实战

BPMN 2.0是业务流程建模与标注的行业标准,它通过一套标准化的图形符号(如事件、网关、任务)来精确描述业务流程逻辑。其核心原理在于将图形化模型转换为可被工作流引擎解析和执行的XML文件,从而实现业务流程的自动化。这项技术的价值在于为OA、ERP、BPM及低代码平台提供了可视化流程编排能力,极大降低了业务人员理解和设计复杂流程的门槛。在应用场景上,前端流程设计器是实现这一价值的关键入口,它需要与后端工作流引擎(如Activiti、Flowable)无缝集成,形成从设计、部署到执行的闭环。本文聚焦于如何将业

weixin_30564785的博客 341

SpringBoot 集成Activiti 实现Model(模型)管理

Activiti 之Model 模型管理需求: 实现Model 检索、新增、编辑、删除、导出和部署功能。 Activiti 之Model 模型管理页面操作: Model 首页: Model 检索: Model 新增: Model 编辑: 简单设计转正流程,记得点击保存按钮。 Model 导出: Model 删除: 5001 流程模型已经被删除。 Model 部署: 功能说明:依据流程模型定义发起一次流程实例,由于该功能涉及用户和用户组设置、...

zhouzhiwengang的专栏 3184

SpringBoot集成Activiti/Flowable工作流引擎与bpmnjs流程设计器实战

工作流引擎是实现业务流程自动化编排的核心技术,其核心原理是通过预定义的流程模型(如BPMN 2.0标准)来驱动任务流转与状态管理。在Java生态中,Activiti和Flowable是广泛应用的开源引擎,它们为审批流、自动化任务等场景提供了强大的技术支撑。通过SpringBoot框架进行集成,可以快速构建高可用的流程服务,显著提升开发效率与系统可维护性。本文聚焦于SpringBoot整合Activiti/Flowable引擎,并集成bpmnjs前端可视化设计器的完整方案,涵盖环境搭建、依赖冲突解决、流程定义

weixin_33716941的博客 420

Ruoyi框架深度集成Activiti 7工作流引擎实战指南

工作流引擎是现代企业级应用实现业务流程自动化的核心技术,它基于BPMN 2.0规范,通过可视化建模定义流程节点与流转规则,由引擎驱动执行。其技术价值在于将复杂的业务逻辑从硬编码中解耦,提升系统的可维护性、可扩展性与可观测性,广泛应用于OA审批、ERP、CRM等需要多角色协同与状态跟踪的业务场景。本文聚焦于如何将主流的Activiti工作流引擎与广受欢迎的Ruoyi后台管理框架进行深度、无缝集成,通过自定义身份服务、统一流程门面封装等关键实践,解决用户体系同步、权限融合等核心问题,最终实现业务流程配置化与开发

weixin_30294295的博客 302

[Activity] springMVC集成Activiti WebEditor 在线流程设计器

Activiti WEB Editor 流程编辑页面 项目集成

记录 分享 成就 3705

Flowable工作流引擎实战:从BPMN建模到企业级集成

BPMN 2.0作为业务流程建模的行业标准,通过可视化元素(如事件、网关、泳道等)实现复杂业务逻辑的图形化描述。其技术价值在于将业务需求转化为可执行模型,大幅提升流程管理的透明度和敏捷性。在企业级应用中,工作流引擎通过与ERP、移动端等系统的深度集成,实现审批流、任务分配等核心业务场景的自动化。Flowable作为轻量级工作流引擎的代表,提供实时协作设计器、混合部署模式等特色功能,特别适合金融、电商等领域的高并发场景。本文以采购审批流程为例,详解如何利用动态子流程调用、多级缓存策略等实战技术解决企业流程管理

weixin_30457465的博客 377

Activiti Modeler不能部署中文问题

在Activiti Modeler中设计的流程包含奇数个中文时不能部署问题 问题已经解决: 在JVM参数中添加参数:-Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 假如你使用的是tomcat把参数添加到bin/catalina.bat或者bin/catalina.sh中 ...

wangmingyue123456的专栏 255

本地部署DeepSeek连接MATLAB:打造私有化AI编程助手全攻略

大型语言模型(LLM)通过理解自然语言生成代码、解释技术概念,其核心原理是基于海量数据训练的Transformer架构。这项技术为工程计算和数据分析带来了效率革命,尤其在代码生成、调试辅助和文档自动化等场景价值显著。开源模型如DeepSeek-coder凭借优秀的代码理解能力,结合Ollama提供的本地化部署方案,实现了完全离线、低延迟的私有化部署。通过配置国内镜像加速下载,并利用MATLAB内置的HTTP通信函数构造API请求,工程师可以在熟悉的MATLAB环境中直接调用本地模型,处理数据清洗、算法验证等

weixin_30239339的博客 516

SAP后台JOB保姆级教程:从SM36创建到SM37监控,手把手教你搞定ABAP程序定时任务

本文详细解析SAP后台JOB从创建到监控的全流程,重点介绍SM36创建和SM37监控的操作步骤与最佳实践。通过真实案例演示如何配置定时任务、处理常见故障及实施企业级管理策略,帮助ABAP开发者高效管理后台程序执行。

weixin_30838873的博客 430

Activiti Modeler发布以及教程

1.新版Activiti Modeler简介 在Activiti 5.6版本之前把Activiti Modeler作为压缩包的一部分,但是后来不再这么做而是需要开发人员自己根据Signavio打包Activiti Modeler,我之前层写过一篇博文讲解如何打包:《如何使用Signavio打包Activiti Modeler》。 但是现在不需要自...

weixin_34257076的博客 365

十大排序算法详解(一)冒泡排序、选择排序、插入排序、快速排序、希尔排序

冒泡排序、选择排序、插入排序、快速排序、希尔排序

HK的博客 18万+

Activiti-5.6安装配置

如下是在windows XP环境下使用mysql数据库的安装实录: 一)下载 activiti-5.6 二)将activiti-5.6.zip解压到指定目录,假设为“E:\PMS\software\activiti-5.6”,注意下面提到的路径均是相对于该路径而言 三)修改数据库类型为mysql     打开文件“setup\build.properties”修改db=mysql(默认为h...

iteye_7334的博客 183

自动驾驶仿真:Carsim、NI和VTD联合仿真课题二

文章目录前言一、设备配置1、硬件需求2、网络配置二、Carsim工程配置1、创建工程2、创建数据库3、参数配置三、VTD工程配置1、创建工程四、Veristand工程配置1、创建工程五、运行程序 前言 上篇文章《Carsim、NI和VTD联合仿真课题一》简单地介绍了三者之间的联合框架,以及NI与VTD之间简单的组包与拆包指导。这篇文章将要讲述的是如何将三个软件联合起来,如何设置软件参数,用最简单的方法把仿真车开起来。 一、设备配置 1、硬件需求 注:真正的做智能驾驶仿真项目,至少需要两台电脑,一台实时机

zataji的博客 1万+

Windows 10/11 安装 HYSPLIT 气象模型全攻略(附必备工具包下载清单)

本文提供了一份详尽的Windows 10/11系统下HYSPLIT气象模型安装与配置全攻略。指南涵盖了从核心认知、必备工具包(Tcl/Tk、ImageMagick)下载,到分步安装、环境变量设置及首次运行验证的完整流程,旨在帮助研究者和学生高效部署这一用于大气轨迹模拟与污染物扩散分析的专业工具。

weixin_28335283的博客 607

SpringBoot集成bpmn-js流程设计器:前后端分离实践指南

工作流引擎是现代企业应用实现业务流程自动化的核心技术,它基于BPMN 2.0标准,通过可视化建模定义复杂的审批与任务流转逻辑。其原理是将业务过程抽象为节点与连接线组成的流程图,引擎负责解析执行,从而实现流程的自动化、状态跟踪与持久化。在技术价值上,工作流引擎提升了开发效率,实现了业务逻辑与代码的解耦,并增强了系统的可维护性与可扩展性。典型的应用场景包括OA审批、工单处理、供应链管理等。本文聚焦于如何将强大的前端可视化库bpmn-js与SpringBoot后端结合,解决流程设计器与前端技术栈不匹配的痛点,提供

weixin_30319153的博客 321

手把手教你用示波器实测LVDS/CML信号:从波形解读到故障排查(附实测图)

本文详细介绍了如何使用示波器实测LVDS和CML信号,从波形解读到故障排查的全过程。涵盖差分探头选择、示波器配置、标准波形特征解读、眼图分析技巧以及高速信号捕获要点,帮助硬件工程师快速诊断和解决信号完整性问题。附实测图和案例,提升高速数字电路设计效率。

weixin_27215337的博客 198

Spring Boot + Vue + Flowable 工作流系统实战:从零搭建审批流程应用

工作流引擎是自动化业务流程的核心技术,它通过预定义的模型驱动任务流转,实现审批、协作等场景的自动化。其原理基于BPMN 2.0标准,将流程图转化为可执行的流程定义,通过引擎解析驱动状态变迁。该技术能显著提升业务处理效率、规范操作并增强可追溯性,广泛应用于OA审批、CRM、ERP等系统。本文聚焦于如何整合Spring Boot、Vue与Flowable这一流行组合,详细演示了从环境搭建、流程定义动态部署到任务处理与历史追溯的全过程,为快速构建一个功能完整、前后端分离的现代工作流应用提供了清晰的工程实践路径。

weixin_30292745的博客 439

Microsoft Forms功能深度解析:企业数据收集与协作的智能利器

Microsoft Forms是微软365生态中的在线表单工具,支持问卷调查、测验和投票创建,具备拖拽式界面、多题型设计和实时数据分析功能。其核心价值在于易用性、跨平台兼容性以及与Teams、SharePoint等微软服务的深度集成,满足GDPR/HIPAA等合规要求。提供表单创建、权限管理、自动化流程(通过Power Automate)和审计日志等功能,适用于金融、医疗、教育等多行业场景。虽然存在逻辑分支有限等约束,但通过案例证明能显著提升数据收集效率(达70-85%)。使用时需注意许可证配置(Busin

xueyunshengling的博客 9124

DFI协议时序

参数名称典型值应用场景关键影响tcmd_lat1-2个时钟周期命令与地址锁存同步地址错误风险tphy_wrlat1-2个时钟周期写操作响应速度写带宽与延迟2-3个时钟周期写操作端到端延迟系统吞吐量1-2个时钟周期连续写命令间隔信号干扰与资源冲突tphy_rdlat1-2个时钟周期读操作响应速度读带宽与延迟trddata_en由CL决定(如0.41 ns)读数据返回时间系统延迟10-20 ps写数据与命令对齐数据丢失风险<1 µs低功耗模式切换。

qq_43134430的博客 5101

Ruoyi框架集成Flowable工作流引擎:从配置到实战的完整指南

工作流引擎是现代企业应用实现业务流程自动化的核心技术,它通过将业务流程逻辑从业务代码中解耦,以可视化配置的方式定义、执行和监控流程。其核心原理是基于BPMN 2.0标准,通过流程定义、任务分配、条件路由等机制驱动业务流转。在Java生态中,Activiti及其分支Flowable是广泛应用的开源实现,它们提供了强大的流程编排能力。对于使用Ruoyi这类快速开发框架的项目而言,集成工作流引擎能显著提升如请假、报销等审批流程的开发效率和可维护性,避免手写复杂的状态机代码。本文以**Ruoyi**和**Flowa

weixin_33968104的博客 417

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IDEA 20191.3 添加 Apache License, Version 2.0

打开 IDEA 的 配置(Settings),搜索Code Template: 找到 Class:Default:为所有项目添加Project:仅为本项目添加 在Apache License, Version 2.0查看说明: 复制内容: Copyright [yyyy] [name of copyright owner] Licensed under ...

4423

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SpringBoot入门十五,添加Activiti5.22工作流在线编辑器

在线编辑器可以直接参考,springMVC集成activiti-explorer5.22(一)中的第2、3、4步,以及springMVC集成activiti-explorer5.22(二)的配置,基本整合基本完成,这里来着重说一下在springboot中需要修改的地方. 1.修改ModelSaveRestResource.java类 import java.io.ByteArrayInputStr...

weixin_34293246的博客 557

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Activiti学习:(第三篇) 整合Activiti Modeler 流程转化为可编辑模型

1. 背景 Activiti Modeler有个功能可以将已经部署的流程重新转化为可编辑模型,感觉这个功能还是很有实用价值的,百度后发现没有人整合过,所以自己看了源码,做了整合,下面分享给大家。 2. 代码分享 package com.ssm.service.manager; import com.fasterxml.jackson.databind.ObjectMapper; ...

左撇子帕布 6600
上一篇: 清空Activti脚本
下一篇: Activit设计器汉化
xugangjava
博客等级 码龄16年 83粉丝 72原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值