Weblogic Jms简单应用

Weblogic JMS 全称:WebLogic Server的Java Messaging Service(JMS)WebLogic JMS 是与 WebLogic Server 平台紧密集成的企业级消息传递系统。Java Message Service (JMS) API 是一种消息传递标准,允许基于 Java Platform Enterprise Edition (Java EE) 的应用程序组件创建、发送、接收和读取消息。它实现了松散耦合、可靠和异步的分布式通信。JMS 的具体功能包括。 阅读详情


目录

1     基本用法

1.1     Jms服务端

1.1.1    配置Jms服务器

1.1.2    配置Jms模块

1.2     Jms客户端

1.2.1    Jar包导入

1.2.2    程序开发

2     整合Spring

3     参考文档

 

1       基本用法

       对于Weblogic Jms的使用可以分为两部分,一部分是Weblogic作为服务端发布对应的Jms服务为客户端程序提供服务,一部分是我们的应用程序作为客户端发布消息到Jms服务端或从Jms服务端获取消息进行消费。

 

1.1     Jms服务端

       Weblogic作为Jms服务端提供Jms服务需要在Weblogic的控制台进行一些配置,主要是Jms服务器和Jms模块。Jms服务器作为Jms服务的核心提供Jms服务,也可以说是作为Jms模块的一个管理容器;Jms模块下可以进行ConnectionFactory、Topic、Queue等资源的定义,Weblogic允许我们通过JNDI对它们进行访问。

 

1.1.1配置Jms服务器

       首先我们需要配置一个Jms服务器。在控制台左边的域结构下面找到对应的域,进入到服务->消息传送->Jms服务器,如下图所示。



 

 

       然后在右边出现的列表点击“新建”按钮进入新建Jms服务器的导航页面,之后根据提示一步一步操作即可。

 

伦理片 http://www.dotdy.com/

1.1.2配置Jms模块

       配置好Jms服务器后我们需要配置对应的Jms模块,Jms模块用来分模块管理一组资源,一个Jms模块下可包括ConnectionFactory、Topic、Queue等资源。在控制台左边的域结构下面,进入到服务->消息传送->Jms模块,如下图所示。



 

 

       然后在右边出现的列表中点击“新建”按钮进入新建Jms模块的导航界面,之后就根据提示进行操作即可。新建好Jms模块后,我们可以在Jms模块列表点击对应Jms模块的链接到对应Jms模块下的资源列表页面,在对应的资源列表页面,我们点击“新建”按钮新建对应的资源。

 

1.2     Jms客户端

1.2.1Jar包导入

       在进行客户端开发的时候我们首先需要导入对应的jar包。按照Weblogic官网文档的说明,我们在开发Weblogic Jms客户端的时候只需要把wlclient.jar和wljmsclient.jar加入classpath即可。这两个jar包在Weblogic安装目录(WL_HOME)下的server/lib目录下,如:/home/weblogic/Oracle/Middleware/Oracle_Home/wlserver/server/lib。但是我在开发的时候只导入这两个jar包,客户端程序跑不起来,错误信息是“Root exception is org.omg.CORBA.COMM_FAILURE:   vmcid: SUN  minor code: 203  completed: No”。而加上wlfullclient.jar则访问正常。wlfullclient.jar默认不在WL_HOME/server/lib目录下,需要我们在WL_HOME/server/lib目录下通过运行“java –jar wljarbuilder.jar”来生成,生成后的wljarbuilder.jar非常大,有60多M,可以将里面一些与工程现有jar包有冲突的类删除。

 

1.2.2程序开发

       客户端程序的开发的时候获取如ConnectionFactory、Topic、Queue等这些在服务端配置的资源时都需要通过JNDI从服务端获取。所以我们首先得构造一个获取JNDI对象的Context。在构造Context时我们需要提供两个参数,Context.PROVIDER_URL和Context.INITIAL_CONTEXT_FACTORY,这两个参数都由Weblogic提供,第一个参数表示提供JNDI对象的服务地址,这里对应的值是“t3://host:port”,host是Weblogic服务主机的IP地址,port是对应的端口;第二个参数是用于获取InitialContext的InitialContextFactory接口的实现类名称,对于Weblogic而言,它应当是“weblogic.jndi.WLInitialContextFactory”。这里我针对它提供了一个工具类,这个工具类的主要作用是把Context封装起来了,然后提供了对应的根据JNDI名称获取对应对象的方法,还封装了一个ConnectionFactory,提供了获取Connection的方法。

影音先锋电影 http://www.iskdy.com/ 

import java.io.IOException;

import java.util.Hashtable;

import java.util.Properties;

 

import javax.jms.Connection;

import javax.jms.ConnectionFactory;

import javax.jms.JMSException;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

 

import org.apache.log4j.Logger;

 

public class JmsUtil {

  

   private static Context context;

   private static final Properties props = new Properties();

   private static final ConnectionFactory connectionFactory;

   private static final String CONNECTION_FACTORY_JNDI = "weblogic.jms.XAConnectionFactory";

  

   private static final Logger logger = Logger.getLogger(JmsUtil.class);

  

   static {

      try {

         props.load(JmsUtil.class.getResourceAsStream("jms.properties"));

      } catch (IOException e1) {

         logger.error("读取jms.properties配置文件出错", e1);

      }

      Hashtable<String, String> environment = new Hashtable<>();

      //指定对应JNDI提供者的地址

      environment.put(Context.PROVIDER_URL, props.getProperty(Context.PROVIDER_URL));

      //指定获取InitialContext的InitialContextFactory类

      environment.put(Context.INITIAL_CONTEXT_FACTORY,props.getProperty(Context.INITIAL_CONTEXT_FACTORY));

      try {

         //构造一个获取JNDI对象的Context

         context = new InitialContext(environment);

      } catch (NamingException e) {

         logger.error("初始化InitialContext失败", e);

      }

      connectionFactory = JmsUtil.lookup(CONNECTION_FACTORY_JNDI);

   }

  

   /**

    * 获取Jms连接

    * @return

    */

   public static Connection getConnection() {

      try {

         returnconnectionFactory.createConnection();

      } catch (JMSException e) {

         logger.error("创建Connection失败", e);

         returnnull;

      }

   }

  

   /**

    * 获取指定名称的JNDI对象

    * @param name

    * @return

    */

   public static <T> T lookup(String name) {

      try {

         return (T) context.lookup(name);

      } catch (NamingException e) {

         logger.error("对应的资源不存在", e);

         returnnull;

      }

   }

 

}

 

       上述所使用到的jms.properties文件的内容如下。

java.naming.provider.url=t3://10.10.10.3:7001

java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory

 

具体程序开发的步骤如下。

1、获取ConnectionFactory

       获取ConnectionFactory的时候可以获取我们自己定义好的ConnectionFactory,也可以直接获取Weblogic预先为我们定义好的两个ConnectionFactory,它们对应的JNDI名称如下。

·         weblogic.jms.ConnectionFactory

·         weblogic.jms.XAConnectionFactory

       这两个内置的ConnectionFactory的区别是第二个支持JTA事务,而第一个不支持,只支持本地事务。

      //根据JNDI名称获取对应的ConnectionFactory

      ConnectionFactory connectionFactory = JmsUtil.lookup("weblogic.jms.XAConnectionFactory");

 

       这里获取的ConnectionFactory是一个Weblogic提供的JMSConnectionFactory对象或JMSXAConnectionFactory对象,你可以根据需要将它们强转为一个QueueConnectionFactory对象或TopicConnectionFactory对象,QueueConnectionFactory和TopicConnectionFactory是Weblogic提供的专门针对为Queue服务和为Topic服务的两个接口。在下文的步骤中都不会将它们进行类型强转,而是基于标准的Jms接口进行开发。有兴趣的朋友可以查看Weblogic的Jms文档或对应的API文档了解更多内容。

 

2、获取Connection

       Connection是通过ConnectionFactory进行获取的。

      //通过ConnectionFactory获取一个Connection

      Connection conn = connectionFactory.createConnection();

 

3、创建一个Session

      //第一个参数表示是否需要事务支持,第二个参数表示消息的应答方式

      Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);

 

4、获取目的地

       无论我们的程序是作为生产者还是作为消费者,它都需要一个目的地,这个目的地可以是一个Topic,也可以是一个Queue。

      //获取一个目的地,这里暂时不区分是Topic还是Queue

      Destination dest = JmsUtil.lookup("dest_queue");

 

5、生成者模式

       (1)如果我们的客户端是作为生产者进行消息的生产,那么我们就需要创建一个对应的生产者。生产者是通过Session进行创建的。

      //创建指定目的地的生产者

      MessageProducer producer = session.createProducer(dest);

 

       (2)有了生产者之后我们还需要创建对应的需要进行发送的Message,Message是通过Session进行发送的,Message有很多种类型,以下只是简单的文本类型的Message。

      //创建一个消息

      Message message = session.createTextMessage("Hello");

 

       (3)有了Message后我们就可以把它交给生产者进行发送了。

      //发送消息

      producer.send(message);

 

 

6、消费者模式

       (1)如果我们的客户端程序是作为消费者进行消费的,那么我们首先应该创建一个消费指定目的地Message的消费者。

      //创建消费者

      MessageConsumer consumer = session.createConsumer(dest);

 

       (2)创建了消费者后就是对消息的消费了,MessageConsumer中定义了好几个接收消息的方法,不过它们都是一次消费,也就是说调用一次最多只会消费一条Message,也有不消费的,方法名是以receive打头的,这里就不说了有兴趣的朋友可以去看一下API文档。这里准备介绍的是通过MessageListener进行消费的情形,即给MessageConsumer指定一个MessageListener,这样一旦有对应的可以进行消费的消息过来后就会自动的回调MessageListener的onMessage方法。

      //指定消息监听器

      consumer.setMessageListener(new MessageListener() {

 

         @Override

         publicvoid onMessage(Message msg) {

            logger.info("收到一条消息: " + msg);

         }

        

      });

 

7、启动Connection

       当我们的客户端程序是作为消费者时最后需要调用Connection的start方法,这样我们的Consumer才能接收到对应的信息,如果什么时候希望暂停接收信息,则可以调用对应Connection的stop方法,等到想再次接收Message的时候可以再次调用Connection的start方法。当我们的程序是作为生产者时可以不用调用Connection的start方法。

 

       到此我们的Weblogic Jms客户端程序开发已经基本完成了,Jms开发的大体思路也都是这样的。上述内容只是比较简单的描述了下服务端的配置和客户端的开发过程。如果希望进行更深入的了解可以参考Weblogic的官方文档和Jms相关的API文档。

 

2       整合Spring

       Spring整合Jms的文章之前写过,是基于ActiceMQ写的,这里关于Spring整合Jms的内容就不详细说了,只是简单的说一下基于Weblogic的Jms整合Spring时一些不一样的地方。Weblogic的Jms资源都是通过JNDI获取的,所以在整合Spring时这些资源也还是需要通过JNDI进行获取。Spring为我们提供了一个JndiTemplate类,其中封装了获取InitialContext的方法,通过它我们可以获取到指定InitialContext下指定JNDI名称的对象。Spring还为我们提供了一个JndiObjectFactoryBean类,它实现了FactoryBean接口,通过给它指定一个jndiTemplate和一个jndiName可以让它返回指定jndiName在JndiTemplate中对应的对象。所以在整合Spring的时候我们可以通过它们来获取Weblogic提供的那些Jms对象,其它的就喝Spring整合标准的Jms是一样的用法了,具体可以参考我之前写的关于Spring整合JMS的文章。以下是Weblogic Jms整合Spring的一段示例配置。




 

 

WebLogic JMS与数据源配置实战指南 数据源是用于在Java应用程序中管理数据库连接的一个抽象概念。它提供了一种集中管理数据库连接池的方式,使得应用程序能够以一种高效且一致的方式与数据库交互。数据源的概念在多种Java EE应用服务器中都有实现,其中就包括WebLogic Server。在WebLogic中,数据源的作用主要体现在以下几个方面:连接池管理:数据源通过维护一组数据库连接的池来优化性能,减少数据库连接的建立和关闭开销。环境抽象:它将应用程序与特定的数据库驱动、连接参数等细节相隔离,简化了数据库迁移和管理。 阅读详情

相关推荐

某手 v8.x 签名计算方法(二) sig和__NS_sig3

一、目标 今天的目标是 sig和__NS_sig3,咱们抓个包先 二、步骤 sig目测像是MD5 先jadx搜索 sig= ,没有找到结果。 再试试 sig ,晕倒 6k多个结果,突然灵光一闪,这些参数,必然是要加入到 Map中,那么我们搜索 "sig" 应该就是这个 CPU.getClock,Hook之 var signCls = Java.use('com.yxcorp.xxx.util.CPU'); signCls.getClock.implementation = function(a,b,c

fenfei331的博客 2428

Weblogic Jms简单使用

1       基本用法        对于Weblogic Jms的使用可以分为两部分,一部分是Weblogic作为服务端发布对应的Jms服务为客户端程序提供服务,一部分是我们的应用程序作为客户端发布消息到Jms服务端或从Jms服务端获取消息进行消费。   1.1     Jms服务端        Weblogic作为Jms服务端提供Jms服务需要在Weblogic的控制台进行一些配

零度的博客专栏 4228

如何利用GMS构建地下水数值模拟模型?

第一步:点图中三维网格的图标然后点Grid→Create Grid这个界面是用于创建一个有限差分网格的设置窗口。它允许你定义网格在三维空间中的范围、分辨率以及其他相关属性。这个界面提供了一个直观的方式来定义一个三维的有限差分网格,你需要指定每个维度上的范围、划分的单元格数量,以及一些控制单元格大小分布和网格方向的参数。这个网格通常会被用于数值模拟,例如地下水流模拟。在点击 "OK" 之前,请务必仔细检查所有参数是否符合你的建模需求。1. X-Dimension (X 轴维度)2. Y-Dimension (

weixin_44259522的博客 2093

JMS简介以及WebLogic配置JMS图解

1.  技术基础简介 1.1  JMS 1.1.1  JMS简介 JMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,翻译为Java消息服务。 JMS是一种与厂商无关的 API,用来访问消息收发系统。它类似于 JDBC(JavaDa

IT忍者神龟 1882

数据埋点系列 3|数据质量保证:验证、清洗与管理

数据质量管理是一个持续的过程,需要技术和组织文化的共同支持。通过本文,我们深入探讨了数据质量保证的各个方面,从基本的验证和清洗技术,到高级的监控和自动化策略。主动的而非被动的自动化的而非手动的持续的而非一次性的全面的而非局部的随着数据在决策中的作用越来越重要,确保数据质量将成为每个数据驱动型组织的核心竞争力。通过实施本文中讨论的策略和技术,你将能够建立一个强大的数据质量保证体系,为你的组织带来更可靠、更有价值的数据洞察。

一个8年大数据开发工程师的碎碎念 1464

为什么RingMo能成为遥感领域的首个生成式自监督基础模型?

RingMo作为遥感领域首个生成式自监督基础模型,通过创新的图像掩码建模技术解决了传统方法在遥感图像处理中的挑战。该模型利用两百万张多元数据集进行预训练,在小目标检测、场景分类等任务上表现卓越,显著提升了性能指标。RingMo的技术突破为遥感图像解译提供了高效解决方案,降低了标注成本并增强了模型泛化能力。

ll5678的博客 691

JMS系列(一)-weblogic jms配置

相关概念 weblogic对jms协议的实现,有自己一套管理方式,其中涉及到比较多概念,在开始之前把这些概念理解清楚 weblogic server 即weblogic服务器实例,又包含管理服务器(AdminServer)和受管服务器(ManagerServer)相关概念,跟本次jms无关,不扩展。weblogic server可以理解为服务器,和tomcat一个级别。 Persistent...

wang13145的博客 1157

国科大学习资料--数据挖掘(刘莹)--第三章习题及参考答案

国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 第 3 章分类与回归 3.1简述决策树分类的主要步骤。 答:决策树生成的过程如下: (1)对数据源进行数据预处理, 得到训练集和测试集; (2)对训练集进行训练; (3)对初始决策树进行树剪枝; (4)由所得到的决策树提取分类规则; (5)使用测试数据集进行预测,评估决策树模型; 3.2给定决策树,选项有:(1)将决策树转换成规则,然后对结果

无名何许人的博客 3092

weblogic中使用jms发送和接受消息

一. 开篇 今天很坑爹啊, 为了搞一下JMS这个玩意, 整了一天了, 光是weblogic的环境就换了两, 最后总算是搞定了, 写下这篇日志, 记录下学习的心得. 二. JMS 所谓的JMS其实就是异步通讯, 我们可以打个简单的比方:  现在的手机基本上普及了, 手机它有两个基本功能, 一个是打电话, 一个是发短信. 打电话是同步的, 必须要保证双方都开机才能进行通话;  而发短信则是异

技术人生 1万+

【论文复现】Applied Intelligence 2025:Auto-PU正例无标签学习的自动化实现与GPT-5.4辅助编程实战

正例-无标签学习(Positive-Unlabelled Learning, PU Learning)是机器学习领域处理"只有正例标签,负例完全未知"场景的重要技术。本文基于2025年发表于Applied Intelligence的最新研究成果,详细阐述如何从零复现Auto-PU框架(包含GA-Auto-PU、BO-Auto-PU、EBO-Auto-PU三种优化器)。

nmdbbzcl的博客 1388

基于STM32设计的电能质量控制系统_353

本项目基于STM32F103RCT6微控制器设计了一套电能质量控制系统,实现了对火焰、烟雾、环境温湿度、电压、电流及功率等多项参数的实时监测与报警。系统通过MQ2烟雾传感器、火焰传感器、SHT30温湿度传感器及电力参数采集模块采集数据,采用高电平触发有源蜂鸣器进行异常报警。采集的数据通过ESP8266无线模块以AP+TCP模式上传至基于Qt开发的手机APP和电脑上位机,实现远程实时监控和历史数据管理。系统配备1.44寸LCD显示屏,实现本地数据显示。软件采用Keil5开发,采用寄存器编程方式,提高系统响应速

253

JMS服务器

了解一下JMS,JMS规范提出的目的就是使得Java可以访问其他的消息服务器。一、消息服务器一般为两类,pTp,publish-subscribe(pub/sub)。实现JMS接口的消息中间件叫做jms-provider.二、JMS 消息模型 JMS消息由两部分构成:header和body。header包含消息的识别信息和路由信息,body包含消息的实际数据。 三、根据数据格式,JMS消息可分为以

1387

Silly Tavern酒馆ai角色卡与世界书导入超详细教程!

前几天,我在设置 Silly Tavern 的时候,想导入一个喜欢的角色卡,结果发现不少朋友其实已经下载好了角色资源,但却不知道怎么正确导入使用。这篇文章就作为一份完整的新手向教程,一步步教你如何在 Silly Tavern 中导入角色卡、世界书,并实现与 AI 角色的真实互动。如果你是第一次接触这个功能,建议先收藏慢慢看~点击菜单栏上的 图标,打开角色界面。初始状态下,你应该只看到默认角色 Seraphina。你可以先点击她的头像尝试聊天,也可以导入自己喜欢的角色。点击导入按钮,选择你下载好的角色卡(通

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2万+

Enterprise JavaBeans Distilled

  Enterprise JavaBeans Distilled   作者: Tnk Luo   第七次:   消息驱动Bean(续)   JMS 应用客户程序 To get a better idea of how JMS is used, we can create a Java application whose sole purpose is receiving and processin

Inber 1356

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

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

<Error> <Socket> <BEA-000403> <IOException occurred on socket: Socket

最近weblogic9.2报错,是jms的应用,这里将处理方法记下: <2012-10-16 上午11时58分51秒 CST> <Error> <Socket> <BEA-000403> <IOException occurred on socket: Socket[addr=/192.168.9.50,port=...

weixin_34038652的博客 254

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Weblogic JMS 入门简单实例

最近通过网上查询各中资料,简单学习了下JMS。对于原理,现在处于学习阶段,未完全融会贯通,本期先只提供简单实例源码和weblogic部署方法。希望能通过简单实例来完成JMS学习的入门。 环境:eclipse + weblogic 816 简介:部署发送端和接收端两个服务应用,发送端部署web应用并搭建JMS环境,JMS的相关jndi信息与代码中的一致。接收端应用,通过监听来自动接收发送端的消息

大文Han的工作笔记 1034

weblogic10配置JMS

      最近需要写一个消息交换平台,需要在weblogic10上面配置JMS。google了半天,发现很多都是引用下面这篇文章的。文章里面有些地方写的有问题,按照它写的根本配不成功,暂时先写下备忘:      在同一个JMS Module中创建不同的subdeployment,然后ConnectionFactory和Queue要配给不同的subdeployment,ConnectionFa

diborve的专栏 5282

第四章 应用WebLogic JMS服务

第四章 应用WebLogic JMS服务研究人:滕勇文档简介:本文档通过图解的形式介绍了EJB的JMS实现机制以及如何在WebLogic里配置JMS服务。在分布式企业级应用程序中,异步消息机制用于有效地协调各个部分的工作。 J2EE为我们提供了JMS和消息驱动Bean(Message-Driven Bean),用来实现应用程序各个部件之间的异步消息传递。一、什么是消息系统?   通常一个消息系统允

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 1535

如何在WEBLOGIC12中配置JMS服务器

1.因为消息可能需要持久化保存,所以首先要配置“持久化存储”

冰狼的专栏 4927

weblogic上配置jms服务的方法

在weblogic上配置JMS服务的方法   1.启动数据库    2.启动weblogic    3.启动浏览器,在地址栏输入http://localhost:7001/console。在登录 界面输入用户名和密码进入管理界面,weblogic需要锁配置库。点击“Lock & Edit”    4. 配置JMS服务的步骤为:        4.1 配置连接工厂(Connect

wonderfulhaiya的专栏 1408

JMS消息处理(四):WebLogic中配置JMS服务器;WebLogic中配置JMS模块;子部署;

1.配置JMS服务器 1.1.在Weblogic域里新建JMS服务器 选择已经创建的持久性存储/没有则新建存储(参考:JMS消息处理(三)) 1.2.选择目标: AdminServer 1.3.配置完成一个JMS服务器 接下来就可在该服务器上配置JMS消息目的,JMS连接工厂了。 与WebLogic服务器早期版本不同的是,WebLogic 11g采用JMS模块来组织JMS消息目的,JMS连接工厂等;而WebLogic服务器早期版本则可以直接配置JMS消息目的,连接工厂等。对于我们现在使用的WebLog

weixin_46055386的博客 1149
上一篇: Penguins DbTools数据库管理移植差分工具(EXCEL相关) ver 20151020
下一篇: java String StringBuilder StringBuffer 以及各种赋值和注意
dotedy
博客等级 码龄11年 61粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值