wicket国际化

Wicket学习笔记(1):入门篇 最近因为项目需要学习wicket框架,而这个框架的学习资料好像也不是很多,到处找相关的资料来进行学习。另外这个框架因为出现的也比较早,现在使用的人并不是很多,自己学习一下,也就做一些记载。 使用工具 开发工具:eclipse 服务器:Tomcat8 ... 阅读详情

    wicket国际化看来是极其的简单。

    因为每个webpage类下都必须存放与webpage类同名的一份html做为视图发送给客户端,wicket的所谓国际化,只需要将这份html复制一份,改名为 webpage类名 + _国家代码 即可。
    如在TestPage包下有TestPage.java类,在此包下必定有一份名为TestPage的html。如果包下有且只有这份TestPage.html的文件,那么无论你设置什么语言环境,wicket项目都只会默认发送这仅有的一份html给客户端。但如果将TestPage.html复制多份,分别改名为TestPage_zh_CN.html、TestPage_zh_TW.html、TestPage_en_US.html、TestPage_en_GB.html,这样分别得到中国简体、繁体(反对中国大陆、台湾的说法)、美国英语、英国英语国际化页面。
    对比一下struts、jsf等通用框架通过properties资源文件来定义国际化,wicket更像N年前VB、asp大行其道时的国际化制作方法,有多少语言就有多少份项目文件,最后造成总项目文件体积超大 .... 只不过wicket只是视图层需要这样,而其他的则不需要这么大费力气。
    而把V层国际化作这样处理,wicket考虑的得到的好处是可以充分将视图在不同的语言环境中得到不同的设计风格,确实如此,有些时候2个汉字与同意的一长串英文字母可以把视图页面切换得支离破碎,让美工MM头疼得可以,这也许也是种解决办法吧。

    国际化项目目录结构:

 

 

    当然以上最简单的wicket国际化,wicket也可使用properties文件,对国际化使用资源键值对,像struts一样操作。

    如在页面中想实现   用户名: (输入框)  ,“用户名”可能需要国际化,一个页面可以复制不同页面,但如页面复杂以后复制页面就不是一个好的选择了,页面文件增多给项目带来的首当其冲就是维护困难。因此最后还是要回到properties文件来做文章。

    一、在Page包下新建与页面文件同名的properties文件,但不同语言得用不同的区域命名,跟上面的html文件命名同理。新建4个properties文件:TestPage_en_GB.properties  TestPage_en_US.properties  TestPage_zh_CN.properties  TestPage_zh_TW.properties;

在英文页面加入:

testmessage = This is a testpage

username=user name:
usermail=user mail:

简体中文:

testmessage = /u8fd9/u662f/u4e2a/u6d4b/u8bd5/u9875

username=/u7528/u6237/u540d/u79f0/u4e3a/uff1a
usermail=/u7528/u6237/u90ae/u7bb1/u4e3a/uff1a

繁体中文:

testmessage = /u9019/u662f/u500b/u6e2c/u8a66/u9801

username=/u7528/u6236/u540d/u7a31/u70ba/uff1a
usermail=/u7528/u6236/u90f5/u7bb1/u70ba/uff1a

 

以上简体、繁体是用native2ascii命令用utf8编码了的。

随后可删除除开 TestPage.html  后的其他语言html页面,然后将TestPage.html改为:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3.   <head>
  4.     <title>testpage.html</title>
  5.     
  6.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  7.     <meta http-equiv="description" content="this is my page">
  8.     <meta http-equiv="content-type" content="text/html; charset=GB2312">
  9.     
  10.     <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
  11.   </head>
  12.   
  13.   <body bgcolor="blue">
  14.   <body bgcolor="red">
  15.     Hello
  16.     <wicket:message key="testmessage"></wicket:message>
  17.     <form action="#" wicket:id ="myform" method="post">
  18.         <select wicket:id="selectlanguage">
  19.         </select>
  20.         <input type="submit" wicket:id="btn_sub" />
  21.     </form>
  22.     
  23.     <span wicket:id="uname"></span>
  24.     <span wicket:id="umail"></span>
  25.   </body>
  26. </html>

在html中,可以看到一个新的wicket标签,<wicket:message> ,wicket在解析html中的wicket标注时,遇到message标签会自动调用当前包下与页面同名的,与当前浏览器语言向对应的properties文件,在文件中查找与message标签中写明的与key值相对应的value值,并反应到message在html中的位置上。如果当前包下没有与页面同名的properties文件,wicket会查找全局资源文件Application.properties文件。

另外,如wicket:id="uname" 这个标记要实现国际化,可以使用StringResourceModel来实现。

看下面java代码

  1. package com.wicket.page;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Locale;
  6. import javax.ejb.Local;
  7. import org.apache.wicket.PageParameters;
  8. import org.apache.wicket.markup.html.WebPage;
  9. import org.apache.wicket.markup.html.basic.Label;
  10. import org.apache.wicket.markup.html.form.Button;
  11. import org.apache.wicket.markup.html.form.DropDownChoice;
  12. import org.apache.wicket.markup.html.form.Form;
  13. import org.apache.wicket.markup.html.form.IChoiceRenderer;
  14. import org.apache.wicket.model.CompoundPropertyModel;
  15. import org.apache.wicket.model.Model;
  16. import org.apache.wicket.model.StringResourceModel;
  17. import com.wicket.model.TestPageValueVO;
  18. public class TestPage extends WebPage {
  19.     
  20.     public TestPage(){      
  21.         TestPageValueVO vo = new TestPageValueVO();
  22.         
  23.         StringResourceModel u_name_model =
  24.             new StringResourceModel("username",new Model());
  25.         this.add(new Label("uname",u_name_model));
  26.         
  27.         StringResourceModel u_mail_model =
  28.             new StringResourceModel("usermail",new Model());
  29.         this.add(new Label("umail",u_mail_model));
  30.         
  31.         final HashMap<String, String> map = new HashMap<String, String>();
  32.         map.put("1", "简体中文");
  33.         map.put("2", "繁體中文");
  34.         map.put("3", "English");
  35.         List list = new ArrayList();
  36.         list.add("1");
  37.         list.add("2");
  38.         list.add("3");
  39.         IChoiceRenderer renderer = new IChoiceRenderer(){
  40.             public Object getDisplayValue(Object object) {
  41.                 return map.get(object);
  42.             }
  43.             public String getIdValue(Object arg0, int arg1) {
  44.                 return arg0.toString();
  45.             }};
  46.         final DropDownChoice drop = new DropDownChoice("selectlanguage",list,renderer);
  47.         Form form = new Form("myform",new CompoundPropertyModel<TestPageValueVO>(vo)){
  48.             protected void onSubmit() {
  49.                 int i = 0;
  50.                 if(drop.getModelObject() != null){
  51.                     System.out.println(drop.getModelObject().toString());
  52.                     i = Integer.parseInt(drop.getModelObject().toString());
  53.                 }
  54.                 Locale locale = null;
  55.                 switch (i) {
  56.                 case 1:
  57.                     locale = new Locale("zh","CN");
  58.                     break;
  59.                 case 2:
  60.                     locale = new Locale("zh","TW");
  61.                     break;
  62.                 case 3:
  63.                     locale = new Locale("en","US");
  64.                     break;
  65.                 default:
  66.                     locale = new Locale("zh","CN");
  67.                     break;
  68.                 }
  69.                 if(locale == null)
  70.                     locale = new Locale("zh","CN");
  71.                 
  72.                 this.getSession().setLocale(locale);
  73.             }
  74.             
  75.         };
  76.         Button button = new Button("btn_sub",new Model<String>("提交语言"));
  77.         form.add(button);
  78.         form.add(drop);
  79.         this.add(form);
  80.     }
  81. }

    这个类中可以发现两句话:

  1. StringResourceModel u_name_model =
  2.             new StringResourceModel("username",new Model());
  3.         this.add(new Label("uname",u_name_model));
  4.         
  5.         StringResourceModel u_mail_model =
  6.             new StringResourceModel("usermail",new Model());
  7.         this.add(new Label("umail",u_mail_model));

这表示页面增加的两个Label,他们的显示字体是由StringResourceModel 实例 u_name_model 和 u_mail_model 决定的,而StringResourceModel 会自动将Properties 文件中的数据转换成Model 中的字符串数据。(王磊先生的开发指南提到还支持format,可以将字符串中的变量进行文字替换

 

资料太少 英文很烂的我看官网看得一知半解 等于没看 ....  老火啊。

    建了个群:77040065,有wicket的朋友们 ++

Geoserver Web界面开发 2012 暑假 山西农业大学  左脑 找了很长时间,都没有合适的资料,还是看官方的开发文档吧。今天针对WEB 用户界面这部分做了一下全文翻译: Geoserver   Web用户界面开发 概述: Geoserver 用Wicket框架来实现用户界面部分。Wicket不同于大多数其他JAVA web 框架,它是基于JSP模版实现的。使用Wicket框架,使程序员就像使用Swing编程 阅读详情

相关推荐

Apache Resource Bundles 通常指 Apache 软件基金会项目中用于国际化(i18n)和本地化(l10n)的资源包机制

Apache Resource Bundles 通常指 Apache 软件基金会项目中用于国际化(i18n)和本地化(l10n)的资源包机制,其核心是基于 Java 的 `java.util.ResourceBundle` 类。它允许将用户界面文本(如提示信息、错误消息、标签等)从源代码中分离出来,存储在外部属性文件(`.properties`)或类文件(如 `ListResourceBundle` 子类)中,从而支持多语言切换。

[Blog][Domain] programb.blog.youkuaiyun.com 472

wicket常见问题

抛出的异常:Last cause: Unable to find property: 'detailId' for component: tableForm:dt_searchDetailWindow:content:form:detailId [class=wm s.core.common.component.text.NumTextField]. Locale: null, style: n

HA7419的专栏 780

wicket国际化例子

wicket国际化例子 含有wicket:message StringResourceModel 等读取properties资源文件的代码示例

wicket 详解

1. ListView 其实这个控件是用处最少的,也是最好决定的,如果数据很少,不需要分页,那么就是它了。小数据列表的不二之选,如购物网站上"你最近查看的n本书"。 2. PageableListView 这是Wicket核心包中提供的一个分页控件,如果要分页操作,通常还需要一个PageNavigater。通常情况下,它不能够支持大量的数据列表,因为它...

lishumingwm163com的博客 599

wicket 基础知识培训

wicket 基础知识培训,主要是讲解wicket入门知识,通过和struts比较来进行讲解。

Wicket 8.X开发文档(中文翻译+英文原版)

目录 1.简介 2.如何使用示例代码 3.我为什么要学习Wicket? 3.1。我们都喜欢意大利面:-) ... 3.2。面向组件的框架 - 概述 3.3。面向组件的Web开发框架的优点 3.4。Wicket与其他面向组件的框架相比 威克特说“你好世界!” 4.1。Wicket分发和模块 4.2。Wicket应用程序的配置 4.3。HomePage类 4.4。Wicket链接 4.5。摘要 5. Wicket作为页面布局管理器 5.1。页眉,页脚,左侧菜单,内容等... 5.2。这是继承! 5.3。划分et impera! 5.4。使用wicket标记继承:扩展标记 5.5。摘要 6.保持对HTML的控制 6.1。隐藏或禁用组件 6.2。修改标签属性 6.3。生成标记属性“id” 6.4。使用WebMarkupContainer创建内嵌面板 6.5。使用标记片段 6.6。将标题内容添加到最终页面 6.7。在我们的页面/面板中使用存根标记 6.8。如何仅渲染组件主体 6.9。用wicket隐藏装饰元素:enclosure标签 6.10。使用Border包围现有标记 6.11。摘要 7.组件生命周期 7.1。组件的生命周期阶段 7.2。组件生命周期的钩子方法 7.3。初始化阶段 7.4。渲染阶段 7.5。删除阶段 7.6。独立舞台 7.7。摘要 8.页面版本控制和缓存 8.1。有状态页面与无状态页面 8.2。有状态页面 8.3。无状态页面 8.4。摘要 9.在请求处理的引擎盖下 9.1。类应用和请求处理 9.2。请求和响应类 9.3。请求处理的“主管” - RequestCycle 9.4。会话类 9.5。异常处理 9.6。摘要 10. Wicket链接和URL生成 10.1。PageParameters 10.2。可收藏的链接 10.3。使用标记wicket自动创建可收藏的链接:链接 10.4。外部链接 10.5。无状态链接 10.6。生成结构清晰的URL 10.7。摘要 11. Wicket模型和表格 11.1。什么是模特? 11.2。IModel和Lambda 11.3。模型和JavaBeans 11.4。Wicket形式 11.5。组件DropDownChoice 11.6。模型链 11.7。可拆卸型号 11.8。在组件中使用多个模型 11.9。使用型号! 11.10。摘要 12. Wicket详细说明 12.1。默认表单处理 12.2。表单验证和反馈消息 12.3。输入值转换 12.4。使用JSR 303验证 12.5。使用IFormSubmittingComponent提交表单 12.6。嵌套表格 12.7。多行文字输入 12.8。上传文件 12.9。使用FormComponentPanel创建复杂的表单组件 12.10。无国籍形式 12.11。使用单选按钮和复选框 12.12。使用ListMultipleChoices和Palette选择多个值 12.13。摘要 13.使用中继器显示多个项目 13.1。RepeatingView组件 13.2。ListView组件 13.3。RefreshingView组件 13.4。可分页的中继器 13.5。摘要 14.组件排队 14.1。标记层次结构和代码 14.2。改进了汽车组件 14.3。组件什么时候出列? 14.4。排队的限制 14.5。摘要 15.与Wicket的国际化 15.1。本土化 15.2。Wicket的本地化 15.3。捆绑查找算法 15.4。组件选择的本地化 15.5。国际化和模型 15.6。摘要 16. Wicket的资源管理 16.1。静态与动态资源 16.2。资源参考 16.3。包资源 16.4。向页眉部分添加资源 16.5。上下文相关资源 16.6。资源依赖性 16.7。使用资源包聚合多个资源 16.8。将JavaScript放在页面正文中 16.9。标题贡献者定位 16.10。自定义资源 16.11。安装资源 16.12。Lambda支持 16.13。共享资源 16.14。自定义资源加载 16.15。CssHeaderItem和JavaScriptHeaderItem压缩 16.16。NIO资源 16.17。资源通过模型得出 16.18。摘要 17.与JavaScript集成的示例 17.1。我们想做什么...... 17.2。......以及我们将如何做到这一点 17.3。摘要 18. Wicket高级主题 18.1。通过行为丰富组件 19.使用AJAX 19.1。如何使用AJAX组件和行为 19.2。内置AJAX组件 19.3。内置的AJAX行为 19.4。使用活动指示器 19.5。AJAX请求属性和调用侦听器 19.6。创建自定义AJAX调用侦

Apache Wicket参考手册:Internationalization with Wicket 多语言国际化问题的解决

https://ci.apache.org/projects/wicket/guide/6.x/guide/i18n.html Using UTF-8 for resource bundles Java uses the standard character set ISO 8859-11 to encode text files like properties files. Unfortunat...

阿群的笔记(同步备份自简书) 225

sylar学习系列一

开发环境 Centos7最小系统 gcc 9.1 cmake 环境可能存在的一些问题 可能存在的问题,linux最小系统没有一些常用命令,如果我们处于外网我们可以yum安装,但却遇到以下问题 can not find a valid baseurl for repo: base/7/x86-64 可修改网络配置 vi /etc/sysconfig/network-scripts/ifcfg-ens123 # 不是每个主机都是ens123 把ONBOOT=no,改为ONBOOT=yes 重启网络

wuguinianjing的博客 1018

新版的《Wicket开发指南》发布了

新版的《Wicket开发指南》发布了 更新备忘录 以下是0.7版本的更新内容(因为这个版本更新的内容比较多,所以加了备忘录) 修正了一些文字上的错误 在国际化章节中添加了&lt;wicket:message&gt;的内容 添加了《Wicket标签》章节 添加了《数据转换》章节 Wicket基本结构这一章添加了以下内容 Wicket控件体系 事件驱动 部署程序 为Wicket基本控件章节添加了...

猪笨笨 323

CNN经典论文(一)LeNet

Gradient-Based Learning Applied to Document Recognition(梯度学习在文档识别中的应用) Yann LeCun, Leon Bottou, Yoshua Bengio, and Patrick Haffner 发表时间:December 1998 期刊:Proceedings of the IEEE 影响:世界上第一个卷积神经网络 论文地址:Gradient-Based Learning Applied to Document Recognition

loveling丶的博客 3597

2025年三级等保新规实战:从零开始搭建企业安全防护体系(附完整配置清单)

本文详细解析2025年三级等保新规的核心变化,提供从零开始搭建企业安全防护体系的实战指南。重点介绍动态防护能力、实战化攻防验证和全链路数据保护等关键要求,并附完整配置清单,帮助企业高效合规。

weixin_30836759的博客 468

wicket框架下显示提示窗

在wicket框架下,根据用户的操作弹出提示框,简单的实现办法。

她来听我的,演唱会。 707

第3章 信息技术服务(一)

对 第三章 《信息技术服务》中第一、二、三节 <内涵与外延、原理与组成、服务生命周期>进行总结、归纳

好好学习,天天向上的博客 733

Tapestry 和 Wicket 的比较

   JSF 和 Struts 是开发人员在进行 Web 开发时使用的传统的组件框架。但还有另外一种选择,Tapestry 和 Wicket,它们是面向组件的 Web 框架,其设计目标专门针对 Web 应用程序创建。本文采用 Tapestry 和 Wicket 技术开发了一个简单的应用程序示例,该程序实现了一个 to-do 列表的工作流。 Tapestry 和 Wicket 被宣扬为流行的

halemyan的专栏 928

基于SOEM的伺服电机控制实战:从配置到调试

本文详细介绍了基于SOEM的伺服电机控制实战,从硬件配置到软件调试的全过程。通过分享PDO映射、状态机控制、性能优化等核心技巧,帮助开发者快速掌握EtherCAT通信与伺服电机控制的关键技术,提升工控系统开发效率。

weixin_29165465的博客 519

基于matlab的心电信号预处理

这是前段时间做的一个课程设计,做的比较简单,没有考虑到太细,只是初步地达到了想要的效果。这次设计主要是对心电信号进行预处理,将其信号中包含的一些干扰滤除或者抑制掉。 一、心电信号 (1)心电信号的特性   人体心电信号是非常微弱的生理低频电信号,通常最大的幅值不超过5mV,信号频率在0.05~100Hz之间。心电信号是通过安装在人体皮肤表面的电极来拾取的。由于电极和皮肤组织之间会发生极化现象

i_weimoli的博客 6万+

Tapestry and Wicket compared

Skip to main content Sign in (or register) English IBM Technical topics Evaluation software Community Events Search developerWorks   developerWorks Java tec...

gyc567的专栏 446

到底什么是指令集?什么是微架构?他们是什么关系?

指令集、处理器架构、芯片厂商、ARM、x86,其间关系还在迷糊吗?一文迅速理清!!

车载系统攻城狮 7811

Tapestry 和 Wicket 的比较,需要快速创建 Web 应用程序?了解一下这两个组件框架。

Tapestry 和 Wicket 被宣扬为流行的基于组件的现代 Web 框架。与 Model 2 架构框架 Struts 或 Spring MVC 不同,Tapestry 和 Wicket 为 Web 开发过程提供了一种全新的方式,即以看待基于 GUI 的独立应用程序相同的方式来考虑 Web 应用程序及其行为和组件交互。典型的基于组件的应用程序表示一个页面集合,它由一套组件组成。而这些组件可

634

【MicroPython编程-ESP32篇:设备驱动】-SHT31温度湿度传感器驱动

SHT31 是 Sensirion 的下一代温湿度传感器。 它建立在一个新的 CMOSens® 传感器芯片之上,该芯片是 Sensirion 新湿度和温度平台的核心。

视觉与物联智能 228

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Tapestry 和 Wicket 的比较,需要快速创建 Web 应用程序?了解一下这两个组件框架。...

Tapestry 和 Wicket 被宣扬为流行的基于组件的现代 Web 框架。与 Model 2 架构框架 Struts 或 Spring MVC 不同,Tapestry 和 Wicket 为 Web 开发过程提供了一种全新的方式,即以看待基于 GUI 的独立应用程序相同的方式来考虑 Web 应用程序及其行为和组件交互。 典型的基于组件的应用程序表示一个页面集合,它由一套组件组成。而这些组件可...

zhangziyangup 158

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

wiket 之初识model-1

wicket同所有的 MVC 框架一样,拥有自己 Model 层,并通过自己的 Model 向控件提供数据,控件可以从 Model 中取得数据,还可以将数据保存到 Model 中。 wicket.model.IModel 这样一个接口作为 Model 层。而将具体模型结构的处理交给控件。如Label 控件只需要从 Model 中取得一个字符串,或者一个能够转成字符串的对象即可,而ListVie...

ffhu2015r的博客 300

SAP B1中文培訓教材_SDK

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

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Apache Wicket 项目推荐

Apache Wicket 项目推荐 项目基础介绍和主要编程语言 Apache Wicket 是一个开源的、基于组件的 Java Web 应用框架。它通过将标记和逻辑分离,使用 POJO 数据模型,并减少对 XML 的依赖,使得开发 Web 应用变得更加简单和愉快。Wicket 的核心理念是提供一个强大的、可重用的组件库,开发者可以使用纯 Java 和 HTML 来构建应用。 项目核心功能 组件...

gitblog_00252的博客 905

比较JSF、Spring MVC、Stripes、Struts 2、Tapestry、Wicket

 本文链接:http://user.qzone.qq.com/2883033/blog/1215658859 比较JSF、Spring MVC、Stripes、Struts 2、Tapestry、Wicket (转)—— 比较JSF、Spring MVC、Stripes、Struts 2、Tapestry、Wicket Java Web层框架——JSF、Spri

Kit_LO的专栏 1677

Wicket SeverAndClientTimeFilter

package wicket.markup.html; import java.util.HashMap; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import wicket.Application

luozhangwen的专栏 977

openmeetings-install分析(六)——ImportInitvalues类分析(4)

2021SC@SDUSC

weixin_45830447的博客 515
上一篇: wicket一些基础控件代码
下一篇: Struts2配置文件Struts2.properties说明
Begin_Game
博客等级 码龄18年 239粉丝 30原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值