利用前台程序控制行转列数据的输出,可能从效率和扩展性上更好.一个例子

基于PLC的电梯控制系统设计与仿真(开题报告) 摘要:本研究设计基于PLC的三层电梯控制系统,采用西门子S7-1200或三菱FX3U系列PLC,通过模块化编程实现电梯开关门、楼层显示、定向控制等功能。研究分析国内外PLC电梯控制技术现状,重点设计硬件选型、I/O配置及电气接线,开发控制程序并进行仿真验证。该系统具有可靠性高、维护方便等优势,能有效提升电梯运行安全性和效率,为智能建筑电梯控制提供实用解决方案。研究采用系统分析、电气设计、文献查阅及软件编程等方法,最终形成完整的PLC电梯控制系统设计方案。 阅读详情

采用   sql2k   +   .net2005   +   xslt完成.

效率情况分析:
若表中数据量比较大,   而统计出的结果数据比较少,那么效果比较好.
因为,数据库得出统计数据,   在少量的数据下由xslt完成格式输出工作.

当然,xslt完成的输出,特别是输出岗位数据这一步分,还是比较占web服务器资源的.   如果想省掉,那也很简单,   还是一句话,直接把数据以xml格式输出,用js来完成table的布局,让它去占访客的ie资源吧.

 

create TABLE pm(id varchar(20),name varchar(20),DeptName varchar(20),DeptID varchar(20),DeptSequence int,tnum int,Extension varchar(20))
go
insert into pm(id,name,DeptName,DeptID,DeptSequence,tnum,Extension)values(1, '张三', '1部',1,10,1,'123')
insert into pm(id,name,DeptName,DeptID,DeptSequence,tnum,Extension)values(2, '李四', '1部',1,10,2,'456')
insert into pm(id,name,DeptName,DeptID,DeptSequence,tnum,Extension)values(3, '王五', '2部',2,20,1,'321')
go
create TABLE RI(id varchar(20),perid varchar(20),StateName varchar(20),partid varchar(20),RegisterDate datetime)
go
insert into RI(id,perid,StateName,partid,RegisterDate)values(1, 1, '面试通过',1,getdate())
insert into RI(id,perid,StateName,partid,RegisterDate)values( 2, 1, '面试不通过',3,getdate())
insert into RI(id,perid,StateName,partid,RegisterDate)values( 3, 2, '很黄很暴力',4,getdate())
insert into RI(id,perid,StateName,partid,RegisterDate)values( 4, 3, '面试不通过',4,getdate())
insert into RI(id,perid,StateName,partid,RegisterDate)values( 5, 1, '放弃',1,getdate())
insert into RI(id,perid,StateName,partid,RegisterDate)values( 6, 2, '面试不通过',5,getdate())
insert into RI(id,perid,StateName,partid,RegisterDate)values( 7, 3, '面试通过',6,getdate())
insert into RI(id,perid,StateName,partid,RegisterDate)values( 8, 1, '好',7,getdate())
go

create TABLE part(id varchar(20),name varchar(20))
go
insert into part(id,name)values( 1, '文员')
insert into part(id,name)values( 2, '法师')
insert into part(id,name)values( 3, '牧师')
insert into part(id,name)values( 4, '盗贼')
insert into part(id,name)values( 5, '骑士')
insert into part(id,name)values( 6, '萨满')
insert into part(id,name)values( 7, '战士')
insert into part(id,name)values( 8, '德鲁伊')
insert into part(id,name)values( 9, '猎人')
insert into part(id,name)values( 10, '术士')
go




alter proc getDemoData
AS
begin
select a.DeptName,a.DeptSequence,a.Name,a.tnum,a.Extension,a.id perid,
        
sum(case statename when '面试通过' then 1 else 0 end) passNum,
        
count(*) viewNum
    
from pm a
inner join ri b
    
on a.id=b.perid
    
group by a.DeptName,a.DeptSequence,a.Name,a.tnum,a.Extension,a.id 
    
for xml raw



select c.name name,isnull(b.perid,0) perid,isnull(count(b.perid),0) perNum
    
from part c
left join ri b
    
on b.partid=c.id
    
group by b.perid,c.name
    
for xml raw
end
go


go
--drop table pm,ri,part
--
go

 

demoXsltReport.aspx.cs

 

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.Xml.Xsl;
using System.Text;
using System.Data.SqlClient;

public partial class demoXsltReport : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        Response.Write(TransForm(buildXML(), 
"demoTransformData.xsl"));
    }


    
private string getConnStr()
    
{
        
return ConfigurationManager.AppSettings["connstr"];
    }


    
private XmlDocument buildXML()
    
{
        StringBuilder sb 
= new StringBuilder();
        sb.Append(
"<?xml version="1.0" encoding="utf-8"?>");
        sb.Append(
"<root>");

        SqlConnection cn 
= new SqlConnection(getConnStr());
        cn.Open();
        SqlCommand cmd 
= new SqlCommand("getDemoData", cn);
        cmd.CommandType 
= CommandType.StoredProcedure;

        SqlDataReader dr 
= cmd.ExecuteReader();
        
if (dr.Read())
        
{
            sb.Append(
" <DeptData>" + dr[0].ToString() + "</DeptData>");
        }


        dr.NextResult();

        
if (dr.Read())
        
{
            sb.Append(
" <PertData>" + dr[0].ToString() + "</PertData>");
        }

        dr.Close();
        cn.Close();
        cn.Dispose();

        sb.Append(
"</root>");

        XmlDocument xd 
= new XmlDocument();
        xd.LoadXml(sb.ToString());
        
return xd;

    }


    
public string TransForm(XmlDocument xd, string xslURL)
    
{
        XslTransform xsl 
= new XslTransform();
        xsl.Load(Server.MapPath(xslURL));
        System.IO.MemoryStream t 
= new System.IO.MemoryStream();
        xsl.Transform(xd, 
null, t, null);
        
return System.Text.UTF8Encoding.UTF8.GetString(t.ToArray());
    }

}

dataTransform.xsl

 

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
  
<xsl:key name="pert_group" match="//PertData/row[@perid!=0]" use="@name" />
  
<xsl:variable name="pertNum" select="count(//PertData/row[@perid!=0 and count(.|key('pert_group',./@name)[1])=1])"/>
  
<xsl:template match="/">
    
<html xmlns="http://www.w3.org/1999/xhtml">
      
<head>
        
<title>demo</title>
      
</head>


      
<body>
        
<table border="1">
          
<!--制作表头-->
          
<tr>
            
<td>DeptName</td>
            
<td>DeptSequence</td>
            
<td>PersonName</td>
            
<td>tNum</td>
            
<td>Extension</td>
            
<td>perid</td>
            
<td>PassNum</td>
            
<td>viewNum</td>
            
<!--
            <xsl:for-each select="//PertData/row[@perid!=0]">
              <td>
                <xsl:value-of select="@name"/>
              </td>
            </xsl:for-each>
            
-->
            
<xsl:call-template name="getPertNameList"/>
          
</tr>
          
<!--输出数据-->
          
<xsl:for-each select="//DeptData/row">
            
<tr>
              
<td>
                
<xsl:value-of select="@DeptName"/>
              
</td>
              
<td>
                
<xsl:value-of select="@DeptSequence"/>
              
</td>
              
<td>
                
<xsl:value-of select="@Name"/>
              
</td>
              
<td>
                
<xsl:value-of select="@tnum"/>
              
</td>
              
<td>
                
<xsl:value-of select="@Extension" disable-output-escaping="yes"/>
              
</td>
              
<td>
                
<xsl:value-of select="@perid"/>
              
</td>
              
<td>
                
<xsl:value-of select="@passNum"/>
              
</td>
              
<td>
                
<xsl:value-of select="@viewNum"/>
              
</td>

              
<xsl:call-template name="getPertNumForDept">
                
<xsl:with-param name="perid" select="@perid"/>
              
</xsl:call-template>

            
</tr>
          
</xsl:for-each>
        
</table>
      
</body>
    
</html>
  
</xsl:template>



  
<xsl:template name="getPertNumForDept">
    
<xsl:param name="perid"/>
    
<xsl:for-each select="//PertData/row[@perid!=0 and count(.|key('pert_group',./@name)[1])=1]">
      
<xsl:sort data-type="text" select="@name"/>
      
<td>
        
<xsl:choose>
          
<xsl:when test="@perid=$perid">
            
<xsl:value-of select="@perNum"/>
          
</xsl:when>
          
<xsl:otherwise>0</xsl:otherwise>
        
</xsl:choose>
      
</td>
    
</xsl:for-each>
    
  
</xsl:template>

  
<xsl:template name="getPertNameList">
    
<xsl:for-each select="//PertData/row[@perid!=0 and count(.|key('pert_group',./@name)[1])=1]">
      
<xsl:sort data-type="text" select="@name"/>
      
<td>
        
<xsl:value-of select="./@name"/>
      
</td>
    
</xsl:for-each>
  
</xsl:template>

</xsl:stylesheet>

 

 

【信息科学与工程学】【数据中心】 第十九篇 MFU的优化提升方法02 工序编号工序名称工序描述输入输出工具/系统负责人前置工序后置工序标准时间TRN-PRE-001训练任务需求分析分析模型训练的业务需求、性能目标、资源需求业务需求文档、模型目标训练任务规格书需求分析工具、规格模板算法架构师无TRN-PRE-0022-4天TRN-PRE-002数据需求规划确定训练数据规模、质量、格式、来源训练任务规格书数据需求规格书数据规划工具数据工程师TRN-PRE-001TRN-PRE-0031-2天TRN-PRE-003算力资源评估评估训练所需的计算、存储、网络资源模型架构、数据规模资源 阅读详情

相关推荐

49、并行性能分析工具与技术:GASP与Scalasca的探索

本文探讨了GASP接口与Scalasca项目在并行性能分析中的关键技术与应用。GASP通过标准化事件接口将插桩责任转移至编译器/库,提升了数据准确性并降低测量干扰;Scalasca则通过运行时测量汇总和选择性事件跟踪解决了大规模并行程序的可扩展性问题。两者结合实现了高效、灵活的性能诊断,并通过epik等组件集成汇总与跟踪,形成统一的测量系统架构,为并行应用程序的性能优化提供了全面解决方案。

vulkan6gpu的博客 79

sql server列转行怎么提高效率_行转列、列转行

1、行转列所谓行转列,即将一行数据转成多行显示,或者说将多列数据转成一列显示。通常将转化后的列名为某一行中某一列的值,来识别原先对应的数据。具体如下:通常的SQL实现用union来实现,如下。有些数据库有行转列的专用函数,具体可查询相关文档。select id, name ,'Q1' jidu, (select q1 from fruit where id=f.id) xiaoshou from ...

weixin_39716043的博客 832

通达OA自动化备份批处理实践指南

批处理脚本的核心是利用Windows内置的命令解释器CMD.EXE来解释执行。它将用户设置的参数和指定的命令组合起来,形成一个可执行的脚本文件。其主要功能包括但不限于:自动化重复任务,节省人力和时间。执行复杂的操作序列,无需用户手动输入。调用其他程序和脚本,实现功能集成。参数化输入,使得脚本具有更广泛的适用性。robocopy(Robust File Copy,即鲁棒文件复制)是一个Windows命令行工具,用于替换标准的文件复制命令xcopy。

weixin_42153793的博客 830

mysql数据库sql行转列高效率的方式

mysql数据库sql行转列高效率的方式(动态sql)

wanxingahlal的博客 780

nvlddmkm事件ID14报错排查全指南:从找不到描述到显卡驱动崩溃

系统日志中的“无法找到描述”往往让人一头雾水,但这类提示其实隐藏着驱动故障的关键线索。Windows事件查看器通过事件源和ID记录系统异常,其中显卡驱动相关的内核模式驱动组件一旦超时失败,就会触发TDR机制,产生13、14、153等不同事件ID。理解这些ID的含义,比纠结“找不到描述”本身更重要。对于频繁出现的驱动崩溃问题,可以从日志频率和发生场景判断方向,再通过安全模式下彻底清理驱动、关闭冲突软件、检查供电和温度等步骤逐层定位。无论是游戏满载黑屏,还是睡眠唤醒后闪退,掌握NVIDIA驱动日志的解读逻辑,都

weixin_30545945的博客 412

用LTspice仿真CMOS反相器功耗?这份避坑指南能省你3天调试时间

本文详细介绍了如何使用LTspice准确仿真CMOS反相器的功耗,包括动态功耗、短路功耗和静态功耗的测量技巧。通过工程实践指南,帮助电子工程师避开常见陷阱,优化仿真参数设置,提升仿真结果的可靠性,节省调试时间。

w7x8y9z的博客 189

提高工作效率的万能Java行列转换工具类

有时候工作中需要动态生成列标题,那么在数据库层就不是那么好操作了,可以截止java工具类来实现。本工具类是对市面上的工具类进行加工改造,可以通用与各种情况,更加灵活,下面我来演示一下。由于我们需要把相同姓名的人放在一组,所以我们不能查询这么多字段,查询名字如下。使用sql进行行转列并且查询所有字段,结果如下(我这里用的oracle)具体固定列有多少个,是要看本身业务需求,可以灵活变化。那么在我们的固定列就可只写个name即可,如下。java工具类结果如下。用sql查询结果如下。

七一 4012

保姆级教程:手把手教你为STM32F407和W25Q128制作Keil MDK的SPI Flash下载算法(FLM文件)

本文提供了一份详细的教程,指导开发者如何为STM32F407和W25Q128制作Keil MDK的SPI Flash下载算法(FLM文件)。从理解下载算法的核心机制到实现FlashPrg.c的核心操作,再到链接脚本与地址映射实战,手把手教你完成定制化SPI Flash下载算法的开发与优化。

weixin_28716769的博客 408

计算机系统的结构是一个复杂而重要的概念,它包括了硬件和软件两大组成部分

它的设计旨在优化这些硬件和软件之间的交互,以提升计算机系统的性能和效率。它根据存储在内存中的程序指令,控制其他硬件组件的工作,如运算器、存储器、输入输出设备等,确保数据按照正确的顺序和方式被处理。:控制器通过程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器等组件实现对整个计算机系统操作的协调和指挥,它可以根据预定程序改变主电路或控制电路,从而实现对计算机各个部件的精准控制。: 硬件组件是计算机系统的基础,了解各硬件部件,如CPU、内存、硬盘等的功能和组织方式,是理解计算机系统结构的起点。

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

多期DID实战指南:从CSDID原理到分组加权策略

本文深入解析多期DID(CSDID方法)在政策评估中的实战应用,从核心思想到分组加权策略全面讲解。通过电商扶贫等案例,详细演示如何正确处理分批实施政策的数据分析,包括分组拆解、子模块DID操作及加权平均选择,帮助研究者规避常见误区,提升政策评估的准确性。

weixin_26833503的博客 524

光猫改桥接后,一根网线搞定IPTV和上网的保姆级教程(附VLAN配置避坑点)

本文详细介绍了光猫改桥接后如何通过单线复用技术实现IPTV和上网功能共存。从VLAN配置原理到具体操作步骤,包括光猫超级管理员权限获取、VLAN绑定设置及路由器IPTV功能配置,提供了全面的保姆级教程。特别针对常见问题如IPTV信号丢失、网速下降等给出了实用解决方案,帮助用户轻松避坑。

weixin_29927965的博客 1755

FanFicFare:如何构建一个支持100+网站的小说下载生态系统?

FanFicFare是一个基于Python开发的跨平台小说下载与电子书制作工具,专门用于从各类小说网站抓取内容并转换为多种电子书格式。该项目采用模块化架构设计,通过适配器模式实现对不同网站的结构化解析,为读者提供统一的离线阅读解决方案。 ## 技术架构解析:插件化适配器系统的实现机制 FanFicFare的核心技术优势在于其高度模块化的适配器系统。项目采用标准的适配器设计模式,为每个支持的网站

gitblog_00608的博客 487

【社区分享】从零开始学习 TinyML,建立 TensorFlow 深度学习模型(技术优化篇)

本文来自社区投稿与征集,作者王玉成,ML&IoT Google Developers Expert,温州大学智能锁具研究院总工程师。 了解更多:https://blog.csdn.net/wfing 经过前面几章的讨论,我们了解了TinyML 的概念,完成了一个最简单的TinyML 的模型并且运行在微控制器上,得出最基本的结果。但是在实际的工程应用中,模型建立之后,也需要再进一步结合许多优化方面的技术,这就是我们接下来想要探讨的。 5. 优化 TinyML 这本书也详细的向我...

tensorflowforum的博客 1万+

【计算机组成原理-83】IO系统演变过程

性能需求的提升:随着处理器和内存速度的提升,IO系统需要更高的带宽和更低的延迟以避免成为系统瓶颈。设备多样化:现代计算机连接了各种各样的外围设备,如显卡、存储设备、网络适配器、输入设备等,IO系统需要支持多种设备类型和通信协议。用户需求变化:从最初的键盘和显示器到如今的高分辨率显示、虚拟现实设备和高速网络,用户对IO系统的需求不断变化。技术进步:总线技术、通信协议和设备接口的不断创新推动了IO系统的演进。

m0_69378371的博客 1098

STM32 AFIO时钟开启时机与复用功能解析

在嵌入式系统开发中,GPIO复用是微控制器外设配置的核心技术之一。通过复用功能,单个物理引脚可以动态切换不同功能模式,如USART通信或普通IO。其实现原理依赖于芯片内部的时钟树架构和寄存器配置机制。AFIO(Alternate Function I/O)模块作为STM32的特色设计,专门处理引脚重映射、外部中断配置等高级功能。正确理解复用功能与AFIO时钟的关系,能显著提升嵌入式开发效率,避免资源浪费。本文以STM32为例,结合引脚重映射和USART配置等典型场景,详解AFIO时钟的实际应用规范与优化实践

weixin_42389113的博客 579

【DRAM存储器二十六】DDR4介绍-DDR4 SDRAM的主要技术特性之CA Parity、CRC Write date

详述DDR4的CA奇偶检验和写数据CRC校验功能

highman110的博客 1295

Logo语言的工业物联网

工业物联网是将物联网技术应用于工业生产的一个新兴领域。它通过将各种传感器、设备和系统连接到互联网,实现数据收集、监测和分析。IIoT不仅提高了生产效率,还使得设备的维护变得更加智能和高效。Logo是一种用于教育目的的编程语言,最初在1960年代设计。Logo语言以其简单的语法和图形化界面,特别适合初学者和儿童学习编程。Logo的核心概念是“海龟图形”,用户通过控制“海龟”(一个象征性的小图形)在屏幕上移动,从而学习编程的基本概念。

2501_91173265的博客 468

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

MySqL: 并发量大、数据量大的互联网业务数据库设计军规

一、基础规范 1.1.必须使用InnoDB引擎 解读:支持事务、行级锁,并发性能好、CPU及内存缓存页优化使得资源利用率更高。 1.2.必须使用utf8mb4编码 解读:万国码,无需转码,无乱码风险,节省空间。 1.3.必须为表、字段添加注释 解读:不要给后来者挖坑。 1.4.禁止使用存储过程、触发器、视图、Event 解读: 高并发大数据的互联网业务,架构设计思路是解放数据库CPU,将计算转移...

韩超的博客 (hanchao5272) 926

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

电力系统IEC103规约通信程序:实现电力监控自动化的核心工具

电力系统IEC103规约通信程序:实现电力监控自动化的核心工具 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在当今的电力系统中,实现高效、稳定的通信至关重要。电力系统IEC 103规约通信程序正是为了满足这一需求而设计。它是一种符合国际电工委员会IEC 103规约的通信程序,旨在确保电力系统监控与控制过程中的数据交换准确无误,提高电力系统运行的可靠性与安全性。 项目...

gitblog_06775的博客 306

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

软件工程导论-期末复习(完结)

总结近几年瓜大软件工程课的考试题目,包括单选,填空,简答,应用题等

2301_80097206的博客 1166

首本深入讲解Linux内核观测技术BPF的书上市!

新书速递导读:BPF通过一种软件定义的方式,将内核的行为和数据暴露给用户空间,开发者可以通过在用户空间编写BPF程序,加载到内核空间执行,进而实现对内核行为的灵活管理和控制。在计算机系统...

华章IT官方博客 1617

关于ETL看这篇文章就够了,三分钟让你明白什么是ETL

今天来聊一个技术问题,有关 ETL 的开发。对于做过 商业智能BI 开发的朋友,ETL 并不陌生,只要涉及到数据源的数据抽取、数据的计算和处理过程的开发,都是 ETL。ETL一共有三个阶段,分别是Extraction 抽取,Transformation 转换,Loading 加载。从不同数据源抽取数据 EXTRACTION ,按照一定的数据处理规则对数据进行加工和格式转换 TRASFORMATION,最后处理完成的输出到目标数据表中也有可能是文件等等,这个就是 LOADING。ETL - 派可数据商业智能B

派可数据的博客 3927

IntelliJ IDEA 后缀补全的10个高效用法,让你少写一半代码

本文深入解析IntelliJ IDEA中Postfix Completion(后缀补全)的10个高效用法,涵盖空指针检查、条件分支、集合遍历、调试输出及自定义模板等核心场景。掌握这些技巧能显著减少重复编码,提升Java开发效率,让你将更多精力专注于业务逻辑设计。

tgb3456789的博客 636

Java我的三个月——OOP的乐趣

我发现从JSP学习然后转到Java语言的学习对于我来说是一个很好的过程。有位编程大师说“面向对象技术降低了程序入门的门槛”,这句话我想应该可以放到网络技术中,更改为“JSP技术降低了Java程序入门的门槛”。利用JSP技术,可以用比普通Java代码更少的语句实现“hello world”。JSP技术封装了客户端Java代码和网络应用服务器的连接,加上Servlet技术的后台支持,使得开发人员可以很

草冬的1/3*1/2 人生 1425
上一篇: SQL2005 XML Soap端点创建及.net调用实例
下一篇: sqlserver利用sp_oa系列存储过程调用xml+xsl eval输出运算结果的一个例子。
fcuandy
博客等级 码龄23年 780粉丝 32原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值