CORBA Programming with TAO - 8.Event Service(事件服务)

Cloudera Management Service -- Event Server 起不来,解决方法 问题解决了,忘了截图。。。意思意思? 问题: Cloudera Management Service Event Server起不来, 看此处日志看不到任何问题或报错,重启该节点的 systemctl restart cloudera-scm-agent systemctl restart cloudera-scm-server 亦不能解决问题。 查看服务器上的log,位置如下: 发现日志里全是乱码,依然没有头绪,卡了半天。 解决: 参考其他博主的event server报错解决办法 虽然我看不到自己的 阅读详情
CORBA Programming with TAO - 8.Event Service(事件服务)
摘要:
事件服务(Event Service)通过在通信的双方甚至是多方间引入一个第三方――Event Channel,一定程度上解除Client和Server之间的耦合关系,在通信的过程中,任意一方只需与Event Channel打交道,而无需确切知道对方的存在,从而使得二者由一对一的关系变成多对多的关系。
一、简介
CORBA除了前面讲过的基本的Naming Service(命名服务)外,还定义了许多其它服务,Event Service就是其中的一个。标准的CORBA通信模式中,Client与Server之间的通信是直接的,Client向Server发出调用请求,Server进行处理并返回结果,这种处理方式下,二者之间是完全耦合在一起的一对一的关系。而Event Service则通过在二者之间引入一个第三方--Event Channel,可在一定程度上解除Client和Server之间的耦合关系,在通信的过程中,任意一方只需与Event Channel打交道,而无需确切知道对方的存在,从而使得二者由一对一的关系变成多对多的关系。
CORBA的Event Service定义了两种通信模式,推模式(Push Model)与拉模式(Pull Model)。在推模式下,PushSupplier向Event Channel发送消息,由Event Channel向Cusumer转发消息;在拉模式下,PullConsumer向Event Channel请求消息,由Event Channel向Supplier转发该请求。但是,并不是说PushSupplier只能与PushConsumer通信,PullSupplier只能与PullConsumer通信,由于Event Channel提供的代理同时也扮演着Supplier/Consumer的角色,因此,在实际应用中,我们可以混合使用两种模式,后面的实例将演示PullSupplier与PushConsumer通过Event Channel连接的例子,这种情况下,代理一方面不断地主动从Supplier处请求消息(默认时间间隔1秒),另一方面,又主动将收到的消息向Consumer发送。
二、编译
与Naming Service一样,Event Service也是TAO的一个独立的Service,其源代码可以在$TAO/orbsvcs/CosEvent_Service下找到,但是前面介绍的CIAO_TAO.mwc产生的工程文件仅包含了TAO的少数几个Service,因此,要编译Event Service需要通过在$TAO_ROOT目录下运行:
mwc.pl -type vc8 TAO.mwc
以产生包含所有TAO实现的Service的工程文件。在执行上述命令前,最好将TAO.mwc的内容改为:
 
// TAO.mwc,v 1.2 2003/08/22 15:23:48 dhinton Exp
 
workspace {
 exclude {
    CIAO
    examples
    performance-tests
    tests
    orbsvcs/tests
    orbsvcs/performance-tests
    orbsvcs/examples
 }
}
 
否则,过多的测试工程将使得上述命令需要很长的时间才能执行完毕。
三、实例
下面举一个PullSupplier的例子,PullSupplier必须从POA_CosEventComm::PullSupplier派生,并实现该接口定义的三个基本方法:
CORBA::Any *pull();
CORBA::Any *try_pull(CORBA::Boolean &has_event);
void disconnect_pull_supplier ();
PullSupplier周期性会收到来自ProxyPullConsumer的pull请求,要求从PullSupplier取得消息。下面是该实例的相关代码:
 
// Notes: just for demo, no exception handle
#include <orbsvcs/CosEventCommS.h>
#include <orbsvcs/CosEventChannelAdminC.h>
#include <orbsvcs/CosNamingC.h>
 
#include <process.h>
#include <stdio.h>
 
#include <iostream>
using namespace std;
 
class Supplier_i : virtual public POA_CosEventComm::PullSupplier {
public:
      Supplier_i () : l(0) {};
      // each PullSupplier must implement the following three methods.
      CORBA::Any *pull();
      CORBA::Any *try_pull(CORBA::Boolean &has_event);
      void disconnect_pull_supplier ();
     
private:
      CORBA::ULong l;
};
 
void Supplier_i::disconnect_pull_supplier () {
      cout << "Pull Supplier: disconnected by channel." << endl;
}
 
CORBA::Any* Supplier_i::pull() {
      cout << "Pull Supplier: pull() called. Data : ";
      CORBA::Any *any = new CORBA::Any();
      *any <<= l++;
      cout << l-1 << endl;
 
      return (any);
}
 
CORBA::Any *
Supplier_i::try_pull(CORBA::Boolean &has_event)
{
      cout << "Pull Supplier: try_pull() called. Data : ";
      CORBA::Any *any = new CORBA::Any();
      *any <<= l++;
      cout << l-1 << endl;
      has_event = 1;
 
      return (any);
}
 
int
main( int argc, char **argv)
{
      const char* channelName = "CosEventService";
      CORBA::Object_var obj;
 
      // Start orb.
      CORBA::ORB_ptr orb = CORBA::ORB_init(argc,argv);
     
      // find RootPOA
      obj=orb->resolve_initial_references("RootPOA");
      PortableServer::POA_var rootPoa = PortableServer::POA::_narrow(obj);
     
      // find and activate POAManager
      PortableServer::POAManager_var pman =rootPoa->the_POAManager();
      pman->activate();
     
      // find NameService
      obj = orb->resolve_initial_references("NameService");
      CosNaming::NamingContextExt_var ncRef = CosNaming::NamingContextExt::_narrow(obj);
 
      cout << "Find NameService" << endl;
     
      // search for EventChannel though NameService
      CosNaming::Name_var name = ncRef->to_name(channelName);
      obj = ncRef->resolve(name);
      CosEventChannelAdmin::EventChannel_var channel =
            CosEventChannelAdmin::EventChannel::_narrow(obj);
 
      cout << "Find EventChannel" << endl;
     
      // find SupplierAdmin on this channel
      CosEventChannelAdmin::SupplierAdmin_var supplier_admin;
      supplier_admin = channel->for_suppliers ();
 
      cout << "Find SupplierAdmin" << endl;
 
      // find ProxyPullConsumer under this SupplierAdmin
      CosEventChannelAdmin::ProxyPullConsumer_var proxy_consumer;  
      proxy_consumer = supplier_admin->obtain_pull_consumer ();
 
      // create PullSupplier
      Supplier_i* supplier = new Supplier_i ();
      CosEventComm::PullSupplier_var supplierRef = supplier->_this();
     
      // Connect PullSupplier with ProxyPullConsumer
      proxy_consumer->connect_pull_supplier(supplierRef.in());
      cout << "Connect Pull Supplier." << endl;
     
      orb->run();
     
      // cut off connection with ProxyPullConsumer
      proxy_consumer->disconnect_pull_consumer();
 
      cout << "Disconnect ProxyPullConsumer." << endl;
 
      // Destroy the POA, waiting until the destruction terminates
      rootPoa->destroy (1, 1);
      orb->destroy ();
 
      return 0;
}
 
从上面的代码可以看出,PullSupplier的基本调用序列为:
1、初始化ORB、查找rootPOA并激活POA Manager、查找Name Service并通过Name Service与事件通道取得联系;(这一步与前面讲的Name Service的例子并无差异)
2、在找到对应的事件通道后,PullSupplier通过channel->for_suppliers()找到对应的SupplierAdmin,进而通过SupplierAdmin找到ProxyPullConsumer,这样我们就可以向该代理注册我们的PullSupplier了。
3、最后,我们可以通过调用disconnect_pull_consumer()方法断开与ProxyPullConsumer的连接。
 
本文附带的源码包还包括了PullConsumer、PushSupplier、PushConsumer等三个例子,基本流程与上面类似,大家可以自行进行比较,以充分掌握各模式对调用序列的影响。
 
实际上,除了上面将事件数据写入Any类型进行传输外,CORBA规范还定义了一套强类型API,以用于用户自定义类型的传输,%TAO_ROOT%/orbsvcs/examples/CosEC/TypedSimple是一个强类型EventChannel的例子。
四、运行
由于上述实例需要同时使用Naming_Service、Event_Service,因此,需要在启动程序前先启动这两个服务:
%TAO_ROOT%/orbsvcs/Naming_Service/Naming_Service -m 1
%TAO_ROOT%/orbsvcs/CosEvent_Service/CosEvent_Service
然后即可启动客户程序:
pushcons
pushsupp
五、小结
Event Service为Supplier与Consumer提供了一种基本的借助第三方进行通信的机制,从而一定程度上解除了二者之间的耦合关系,但由于Event Service没有提供Filter机制,所有事件在整个事件通道内进行广播,使得Consumer无法订阅自己感兴趣的事件,同时,对QoS的等方面的支持也十分有限,因此,对于我们的实际应用,Event Service往往只能被应用于十分简单的松散耦合的多方通信。
CORBA规范定义的Notification Service从很大程度对Event Service进行了扩展,避免了Event Service存在的一些问题,感兴趣的朋友可以访问:
来获得在TAO中使用Notification Service的相关信息。
 
参考:
1.      Alex Tingle, Paul Nader. omniEvents. http://omnievents.sourceforge.net/doc/index.html
2.      IONA Technologies. OrbixEvents Programmer's Guide. http://www.iona.com/support/docs/manuals/orbix/33/html/orbixevents33_pguide/index.html
3.      OMG. Event Service, v1.2. http://www.omg.org/cgi-bin/apps/doc?formal/04-10-02.pdf
5.      Chris Gill, Tim Harrison, and Carlos O'Ryan. Using the Real-Time Event Service. http://www.cs.wustl.edu/~schmidt/events_tutorial.html
 
eventservice 活动服务 立即下载

相关推荐

event_server

event server with high performance logger ,async write

oracle查看v$,oracle 常见v$视图整理

oracle常见v$视图整理(2012-10-28 17:35:07)标签:it1.查看备份,恢复性能V$BACKUP_SYNC_IOV$BACKUP_ASYNC_IO2.? V$IR_FAILURE:List of all failures, including closed ones (result of the LISTFAILUREcommand)? V$IR_MANUAL_CHECKL...

weixin_33781129的博客 605

Web Service Event

Web Service Event specification

企业开发基础设施--事件通知服务(Remoting双向通信)

    事件通知服务用于解决多个应用程序之间的事件发布与预定的问题。在.NET平台上,跨应用程序的事件发布/预定通常以Remoting作为底层的通信基础,在此基础之上,事件通知服务使用中介者模式来简化跨应用程序的事件通知问题。    本文采用的解决方案中,有两个重要组件:事件服务器EventServer和事件客户端EventClient。EventServer作为中介者,并作为一个独立的

zhuweisky 1703

编程小白的自学笔记四(正则表达式模块search函数)

本文仅仅简单介绍了search的使用,供小白学习探讨。

m0_49914128的博客 2322

Weaxor勒索病毒实战分析:从加密算法到防御策略(附检测工具清单)

本文对Weaxor勒索病毒进行了深度实战剖析,详细拆解了其采用ChaCha20与AES-CTR的混合加密算法、横向移动手法及数据回传行为。文章重点分析了其密钥生成机制的“漏洞修复”,并提供了从主机加固、网络监控到基于IOC威胁狩猎的立体化企业级防御策略与检测工具清单。

weixin_29233333的博客 262

Event Service

Event Service When using events within an MPI application, a thread needs to be created to distribute any events that occur on the controller. This involves calling mpiControlProcessEvents and then

yanglq的博客 812

百度文心大模型ERNIE全面解析

文章摘要:本文汇总了多个Python自然语言处理(NLP)工具库的应用实例,涵盖百度文心大模型ERNIE、Hugging Face Transformers、StanfordNLP、SymSpell等主流框架。内容涉及文本预处理、情感分析、命名实体识别、机器翻译、文本纠错等典型NLP任务,并包含ERNIE-Lite、BART、T5等模型的调用示例。各工具库的特色功能包括:ERNIE的知识增强技术、Transformers的多任务统一接口、SymSpell的高效拼写纠正等。文章还提供了知识图谱构建、Rasa对

keny-大成的博客 2526

领域驱动设计架构概述与设计原则

参考原文链接:https://blog.csdn.net/baidu_24237655/article/details/104312052 有删减 目前市面常用的两套分布式系统框架 1.zookeeper+dubbo组合 2.SpringCloud全家桶 注:在云原生大行其道的当下,美团用的OCTO + thrift + plus(持续集成),阿里则是 HSF(Dubbo)+ EDAS + 云校流水线(不同部门可能不同) zookeeper 是一个分布式服务应用的协调服务,其功能包括了:配置维护.

thekenofDIS的专栏 1140

ThreeJS教程:地图案例(包围盒、正投影)

推荐:将加入你的3D工具链。

jianshi2023的博客 1007

uniapp - 解决App端(安卓/苹果)使用uni.openlocation跳转第三方高德地图白屏问题,安卓苹果ios平台使用应用内置地图查看位置打不开,打包后App高德地图页面白屏不显示的问题!

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果安卓app,高德地图白屏,uniapp调用内置高德地图白屏,uniApp使用uni.openlocation空白不显示地图,uniappapp端如何解决openlocation地图不显示问题,打开第三方地图显示位置地图没反应,uni.openlocation跳转第三方高德地图,APP端白屏问题,使用uni.openlocation跳转到第三方导航软件的时候,app端跳转的是高德地图,但是白屏没有反应,打包发布后白

🏆 前端领域优质创作者 1万+

CDI services--Event(事件)

Cdi中的event事件,是整个CDI的精华所在之一.其有点类似设计模式中的观察者模式.但也有不同的地方.如下3点: 不仅是生产者(producers)从观察者(observers)解耦.观察者也从生产者解耦. 观察者可以指定“选择器”的组合来缩小的事件通知 观察者可以立即通知,或者可以指定交付的事件应该推迟到当前事务的结束。 即用一种维护生产者和观察者之间的分离代码的方式,来产生...

weixin_30791095的博客 166

15张图详解三方支付:总架构、5大核心业务处理流程、备付金管理

用户可以将银行卡与零钱账户绑定,建立银行结算账户与支付账户的连接,然后将银行账户资金充值到零钱账户中,或将零钱账号中的余额提现至绑定的银行卡。因此,用户在A支付机构的零钱一般只能支付给A支付机构的商户,如支付宝的零钱不能支付给微信的商户。这五大业务的协同运作,使得第三方支付机构这一庞大的支付服务平台能够为市场提供卓越的支付能力。到了结算时间,网联会向备付金集中存管账户提交结算指令,在第三方支付机构备付金集中存管账户内完成最终的结算,并将结算结果及额度变动情况通知给第三方支付机构,具体流程如图13所示。

银行信息系统应用架构详解 1044

Spring 自定义事件,通过注解的方式来实现事件监听

使用 spring 框架的 event,实现程序的松耦合,以及发送事件之后能从接受到事件的返回值

Wayfreem的博客 1564

MATLAB - 浮动基座机器人的逆运动学

本例演示如何解决以浮动底座为模型的机器人的逆运动学问题。浮动底座机器人可以在空间中自由平移和旋转,具有六个自由度。浮动基座机器人的逆运动学问题适用于空间应用,即使用安装在浮动和致动基座上的机械臂在空间操纵物体,也适用于躯干和腿部可在空间自由移动的行走机器人。请注意,刚体树对象表示具有固定基体的刚体树。这意味着刚体树的基体在世界中具有固定的位置和方向。您可以在基体上附加一个 “浮动 ”类型的刚体关节,为具有浮动基体的机器人建模,以用于动态模拟等某些应用。

机器人控制与仿真应用 2439

StarRocks 面试题及参考答案详解(万字详解)

Broker Load的过程通常涉及到数据的解析、转换和加载,它支持多种数据格式,并且可以处理复杂的数据导入任务。一方面,压缩可以减少磁盘I/O操作,因为压缩后的数据占用的空间更小,需要读取的数据块数量也就更少。在StarRocks中,表数据可以被划分成多个分区,每个分区包含表的一部分数据。在传统的行存储模型中,数据是按行组织的,这意味着在执行分析查询时,系统需要读取并处理整行数据,即使很多时候只需要查询其中的少数几列。物化视图的更新可以是完全重算,也可以是增量更新,取决于物化视图的定义和数据变更的模式。

大模型大数据攻城狮的专栏 2082

Spring常用配置——SpringEvent

Spring的事件(Application Event)为Bean之间的消息通信提供了支持。当一个Bean处理完一个任务之后,希望另一个Bean知道并能做相应的处理,这是我们就需要让另外一个Bean监听当前Bean所发送的事件Spring的事件需要遵循如下流程:(1)自定义事件,继承ApplicationEvent(2)定义事件监听器,实现ApplicationListener(3)使用容器发布事...

程序猿 707

计算机控制技术及应用

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

CORBA(命名服务)

    命名服务的本质是:将名字与corba对象引用绑定,即:名字与corba对象引用之间的一个映射关系。一个名字对应一个对象引用,一个对象引用可以对应多个名字。(关系为一对多)       功能:实现给定一个名字,就可以获得绑定到该名字的对象引用。       优点:不需要知道对象的物理位置,只根据名字就可获取该对象的引用。对应用程序而言,实现了网络透明。        命名服务

rita_li的专栏 3826

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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

CORBA——名字命名服务

命名服务的本质是:将名字与corba对象引用绑定,即:名字与corba对象引用之间的一个映射关系。一个名字对应一个对象引用,一个对象引用可以对应多个名字。(关系为一对多)        功能:实现给定一个名字,就可以获得绑定到该名字的对象引用。        优点:不需要知道对象的物理位置,只根据名字就可获取该对象的引用。对应用程序而言,实现了网络透明。          命名服务的名字:

Nancy_m的专栏 4471

SAP B1中文培訓教材_SDK

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

上一篇: CORBA Programming with TAO - 7.IIOP(体验IIOP--一个Java作客户端的例子)
下一篇: CORBA Programming with TAO - 9.Postscript(后记)
Stone
博客等级 码龄21年 1715粉丝 158原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值