对.NET资源文件的资料收集

SAP Business Workflow 场景设计,从事件、任务到完整流程编排 摘要:SAP Workflow Scenarios并非简单的流程模板库,而是深度集成在SAP应用中的流程连接点。它通过业务对象状态变化触发事件,驱动任务和工作流执行,并与组织模型协同运作,成为审批、通知等跨部门协同的基础设施。Workflow不替代MM/SD/FI等业务模块功能,而是提供流程集成能力,复用标准事务和业务逻辑。其核心在于事件机制(解耦业务变化与流程响应)和任务桥接(连接流程与业务方法),并通过Clean Core原则实现稳定扩展。新旧技术演进中,理解经典Workflow有助于合理选择复用标准或 阅读详情

 这次在项目中因为国际化的问题,需要对资源文件进行操作,具体方法是先建立一个TXT文件MessageXML_CN.txt,然后在生成对应的资源文件MessageXML.resources,通过两个方法进行对资源文件的访问:

        public static string GetString(string Code)
        {
            CultureInfo ci = new CultureInfo("zh-CN");
            ResourceManager rm = ResourceManager.CreateFileBasedResourceManager("MessageXML", "", null);
            return rm.GetString(Code, ci);
        }

        /// <summary>
        /// Covert {number} to real parameters
        /// </summary>
        /// <param name="sourceString"></param>
        /// <param name="parameters"></param>
        /// <returns>Converted String</returns>
        public static string convertString(string sourceString, string[] parameters)
        {
            for (int i = 0; i < parameters.Length; i++)
            {
                sourceString = sourceString.Replace("{" + i.ToString() + "}", parameters[i]);
            }
            return sourceString;
        }

MessageXML_CN.txt:

BR.XML.0001=XML文件根结点错误;/r/n
BR.XML.0002=<{0}>的<{1}>的<{2}>含有字母和数字以外的字符;/r/n
BR.XML.0003=<{0}>的<{1}>为'{2}'的<{3}>的第{4}个文本行含有字母和数字以外的字符;/r/n
BR.XML.0004=<{0}>为'{1}'的<{2}>的第{3}个文本行含有字母和数字以外的字符;/r/n
BR.XML.0005=<{0}>的第{1}个<{2}>的第{3}个文本行含有字母和数字以外的字符;/r/n
BR.XML.0006=<{0}>为'{1}'的<{2}>含有字母和数字以外的字符;/r/n
BR.XML.0007=<{0}>的第{1}个<{2}>含有字母和数字以外的字符;/r/n
BR.XML.0008=<{0}>的<{1}>文本行数应不大于{2};/r/n
BR.XML.0009=<{0}>的<{1}>的第{2}行文本应不大于{3}字节;/r/n
BR.XML.0010=<{0}>的<{1}>为'{2}'的记录<{3}>的第{4}行文本应不大于{5}字节;/r/n
BR.XML.0011=<{0}>的<{1}>为'{2}'的记录<{3}>文本行数应不大于{4};/r/n
BR.XML.0012=<{0}>的<{1}>字段内容错误;/r/n
BR.XML.0013=<{0}>的<{1}>字段为必填或者字段长度超过标准;/r/n
BR.XML.0014=<{0}>的<{1}>和上传用户名所属公司不符;/r/n
BR.XML.0015=<{0}>的<{1}>字段格式错误;/r/n
BR.XML.0016=<{0}>的<{1}>含有换行符;/r/n
BR.XML.0017=<{0}>第{1}行的<{2}>字段内容错误;/r/n
BR.XML.0018=<{0}>第{1}行的<{2}>字段为必填或者字段长度超过标准;/r/n
BR.XML.0019=<{0}>第{1}行的<{2}>字段格式错误;/r/n
BR.XML.0020=<{0}>缺少<{1}>为'{2}'的节点;/r/n
BR.XML.0021=<{0}>的<{1}>为'{2}'的<{3}>字段内容错误;/r/n
BR.XML.0022=<{0}>的<{1}>为'{2}'的<{3}>字段为必填或者字段长度超过标准;/r/n
BR.XML.0023=<{0}>的<{1}>为'{2}'的<{3}>字段格式错误;/r/n
BR.XML.0024=<{0}>的<{1}>为'{2}'的<{3}>字段应为空;/r/n
BR.XML.0025=<{0}>的<{1}>为'{2}'的<{3}>和<{4}>要成对出现;/r/n
BR.XML.0026=<{0}>的<{1}>的<{2}>字段为必填或者字段长度超过标准;/r/n
BR.XML.0027=<{0}>的<{1}>的<{2}>字段内容错误/r/n
BR.XML.0028=<{0}>只能有一个<{1}>为'{2}'的节点;/r/n

。。。

后来我在网络上找到一些相关的资料,以作参考:

==========================================================================

一、资源文件


资源文件顾名思义就是存放资源的文件。资源文件在java/j2me/code/' target='_blank'>程序设计中有着自身独特的优势,他独立于源程序,这样资源文件就可以被多个程序使用。同时在程序设计的时候,有时出于安全或者其他方面因素的考虑,把重要东西存放在资源文件中,也可以达到保密、安全的效果。那么Visual C#所使用的资源文件中到底存放哪些东西呢?在用Visual C#创建资源文件大致可以存放三种类型的数据资源,分别是字节数组、各种对象和字符串。本文将结合一个程序例子来具体说明用Visual C#是如何创建资源文件的。



二、创建资源文件所用的类


在.Net FrameWork SDK中的一个名字叫System.Resources名称空间,在此名称空间中为应用程序提供了许多创建、存储和使用资源文件的类和接口。其中有一个类叫ResourceWriter,Visual C#就是通过调用这个类来实现创建、存储资源文件的。



三、创建资源文件的方法


首先要继承一个ResourceWriter类,然后调用ResourceWriter类的一个方法Generate ( ),就可以产生一个资源文件了。具体语句如下:


ResourceWriter rw = new ResourceWriter ( "My.resources" ) ;


rw.Generate ( ) ;


此时在磁盘的中就会产生一个名称为"My.resources"的资源文件,但此时的资源文件没有任何内容,下面我们就来看看如何往资源文件中添加资源。



四、往资源文件中添加资源的方法
在ResourceWriter类中提供了一个AddResource ( )方法,这个方法的作用就是往资源文件中添加资源的。在Visual C#中对不同的资源有着不同的加入方式。


(1).加入字节数组,语法格式为:


public void AddResource ( string , byte [ ] ) ;


注释:其中string是在使用资源文件的时候,此字节数组在程序中的的唯一标识符


(2).加入对象,语法格式为:


public void AddResource ( string , object );


注释:其中string是在使用资源文件的时候,此对象在程序中的唯一标识符。如:
Image image1 = Image.FromFile ("abc1.jpg") ;


Image image2 = Image.FromFile ( "abc2.jpg" ) ;


rw.AddResource ( "abc1" , image1 ) ;


rw.AddResource ( "abc2" , image2 ) ;


(3).加入字符串,具体语法如下:


public void AddResource ( string1 , string2) ;


注释:其中string1是在使用资源文件的时候,此字符串在程序中的唯一标识符在本文的程序中,是如此使用的:


rw.AddResource ( "MyStr" , "从资源文件中读取字符串!" );


至此我们已经创建了一个资源文件,并且在资源文件中加入了若干个资源,当然在这之后,还应该注意,保存此资源文件,并关闭资源文件,具体如下:


rw.Close ( ) ;



五、示例创建资源文件


在这里创建一个什么样的工程好呢?有些朋友可能会用.net创建一个“控制台应用程序”,其实没必要,直接用记事本创建一个CS文件就可以了,假如名称为:CreatResources.cs。编译命令:csc CreatResources.cs;运行:CreatResources。这时会产生一个叫做My.resources的资源文件。先放到这里,等下再用。


using System ;


using System.Drawing ;


using System.Resources ;



class CreatResource


{


public static void Main ( )


{


ResourceWriter rw = new ResourceWriter ( "My.resources" ) ;



Image image1 = Image.FromFile ("abc1.jpg") ;


Image image2 = Image.FromFile ( "abc2.jpg" ) ;



rw.AddResource ( "abc1" , image1 ) ;


rw.AddResource ( "abc2" , image2 ) ;



Icon ic = new Icon("CDDRIVE.ICO");


rw.AddResource( "abc3",ic);


rw.AddResource( "abc4","这是从资源文件中读出的字符");



rw.Generate ( ) ;


rw.Close ( ) ;


}


}



六、将生成的资源文件添加测试工程中的方法
创建一个“Windows应用程序”测试工程,将My.resources资源文件添加到该工程中,步骤如下:


1,在资源管理器里选中文件


2,按住鼠标左键,拖到工程文件上,松开鼠标左键。


3,在拖放的文件上点鼠标右键,选“属性”


4,在生成操作里选择“嵌入的资源”。



七、如何在程序中管理资源文件中的资源


在.Net FrameWork SDK这提供了一个关于资源文件创建和使用的名称空间--System.Resources。在这个名称空间中有一个Class为ResourceManager,这个Class的主要作用就是管理并使用资源文件。Visual C#是通过这个类来管理并使用嵌入程序中的资源文件中的资源。下列代码就是定义一个ResourceManager类来管理嵌入程序资源文件中的资源:


ResourceManager rm = new ResourceManager ( " Res.My " , Assembly.GetExecutingAssembly ( ) ) ;


注意:ResourceManager rm = new ResourceManager ( " Res.My " , Assembly.GetExecutingAssembly ( ) ) ;语句中,构造函数的第一个参数Res.My 由两部分构成,Res表示测试工程的命名空间,My表示资源文件名My.resources的根名称,即点号有前部分My。



八、如何在程序中使用资源文件中的资源


在上一篇文章中,我们已经了解到在创建资源文件的时候,使用了AddResource ( )方法来加入资源,他的语法中的第一个参数是用户可以定义的字符串,这个字符串就是资源在资源文件的唯一标识,在程序设计中,就是通过这个唯一标识符来使用某个资源的。那么如何在程序中通过这个标识符来得到所需资源?这就要使用到ResourceManager类中的GetObject()和GetString()方法。这二个方法作用是获得指定的资源。下面是这二个方法的语法:


object GetSting(String)


object GetObject(String)


其中的"String"就是资源在资源文件中的那个唯一标识符。细心的读者可能已经注意到,这二个方法的返回值都是一个Object类型的变量,也就是一个参考类型的变量,而在程序中的字符串或者图象等,是一个实值类型变量。这就需要进行转换,而这种转换就是上面所说的装箱和出箱。下列代码是从资源文件中提取字符串、图象和图标资源:


提取字符串资源:


String s = ( ( String ) rm.GetString ( "MyStr" ) ) ;


提取图标资源:


Icon icoDemo = ( ( Icon ) rm.GetObject ( "demo.ico" ) ) ;


提取图象资源:


Image a = ( ( Image ) ( rm.GetObject ( "ok-off.png" ) ) ) ;





九、测试工程源代码
using System;


using System.Drawing;


using System.Collections;


using System.ComponentModel;


using System.Windows.Forms;


using System.Data;


// 加入以下两个命名空间。


using System.Resources;


using System.Reflection;



namespace Res


{


///


/// Form1 的摘要说明。


///


public class Form1 : System.Windows.Forms.Form


{


private System.Windows.Forms.PictureBox pictureBox1;


private System.Windows.Forms.Button button1;


private System.Windows.Forms.Button button2;


private System.Windows.Forms.Button button3;


private System.Windows.Forms.Label label1;


private System.Windows.Forms.Button button4;


///


/// 必需的设计器变量。


///


private System.ComponentModel.Container components = null;



public Form1()


{


//


// Windows 窗体设计器支持所必需的


//


InitializeComponent();



//


// TODO: 在 InitializeComponent 调用后添加任何构造函数代码


//


}



///


/// 清理所有正在使用的资源。


///


protected override void Dispose( bool disposing )


{


if( disposing )


{


if (components != null)


{


components.Dispose();


}


}


base.Dispose( disposing );


}



#region Windows 窗体设计器生成的代码


///


/// 设计器支持所需的方法 - 不要使用代码编辑器修改


/// 此方法的内容。


///


private void InitializeComponent()


{


this.pictureBox1 = new System.Windows.Forms.PictureBox();


this.button1 = new System.Windows.Forms.Button();


this.button2 = new System.Windows.Forms.Button();


this.button3 = new System.Windows.Forms.Button();


this.label1 = new System.Windows.Forms.Label();


this.button4 = new System.Windows.Forms.Button();


this.SuspendLayout();


//


// pictureBox1


//


this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;


this.pictureBox1.Location = new System.Drawing.Point(8, 8);


this.pictureBox1.Name = "pictureBox1";


this.pictureBox1.Size = new System.Drawing.Size(256, 240);


this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;


this.pictureBox1.TabIndex = 0;


this.pictureBox1.TabStop = false;


//


// button1


//


this.button1.Location = new System.Drawing.Point(280, 8);


this.button1.Name = "button1";


this.button1.Size = new System.Drawing.Size(88, 24);


this.button1.TabIndex = 1;


this.button1.Text = "图像1";


this.button1.Click += new System.EventHandler(this.button1_Click);


//


// button2


//


this.button2.Location = new System.Drawing.Point(280, 48);


this.button2.Name = "button2";


this.button2.Size = new System.Drawing.Size(88, 24);


this.button2.TabIndex = 2;


this.button2.Text = "图像2";


this.button2.Click += new System.EventHandler(this.button2_Click);


//


// button3


//


this.button3.Location = new System.Drawing.Point(280, 128);


this.button3.Name = "button3";


this.button3.Size = new System.Drawing.Size(88, 24);


this.button3.TabIndex = 2;


this.button3.Text = "文字";


this.button3.Click += new System.EventHandler(this.button3_Click);


//


// label1


//


this.label1.Location = new System.Drawing.Point(8, 264);


this.label1.Name = "label1";


this.label1.Size = new System.Drawing.Size(360, 16);


this.label1.TabIndex = 4;


this.label1.Text = "label1";


//


// button4


//


this.button4.Location = new System.Drawing.Point(280, 88);


this.button4.Name = "button4";


this.button4.Size = new System.Drawing.Size(88, 24);


this.button4.TabIndex = 2;


this.button4.Text = "图标";


this.button4.Click += new System.EventHandler(this.button4_Click);


//


// Form1


//


this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);


this.ClientSize = new System.Drawing.Size(376, 285);


this.Controls.Add(this.label1);


this.Controls.Add(this.button2);


this.Controls.Add(this.button1);


this.Controls.Add(this.pictureBox1);


this.Controls.Add(this.button3);


this.Controls.Add(this.button4);


this.Name = "Form1";


this.Text = "Form1";


this.ResumeLayout(false);



}


#endregion



///


/// 应用程序的主入口点。


///


[STAThread]


static void Main()


{


Application.Run(new Form1());


}



private void button1_Click(object sender, System.EventArgs e)


{


System.Resources.ResourceManager rm = new ResourceManager("Res.My",Assembly.GetExecutingAssembly());



this.pictureBox1.Image = (Bitmap)rm.GetObject("abc1");


}



private void button2_Click(object sender, System.EventArgs e)


{


System.Resources.ResourceManager rm = new ResourceManager("Res.My",Assembly.GetExecutingAssembly());


this.pictureBox1.Image = (Bitmap)rm.GetObject("abc2");


}



private void button4_Click(object sender, System.EventArgs e)


{


System.Resources.ResourceManager rm = new ResourceManager("Res.My",Assembly.GetExecutingAssembly());


this.Icon = (Icon)rm.GetObject("abc3");


}



private void button3_Click(object sender, System.EventArgs e)


{


System.Resources.ResourceManager rm = new ResourceManager("Res.My",Assembly.GetExecutingAssembly());


this.label1.Text = rm.GetString("abc4");


}


}


}

嵌入式调光控制库:轻量级软启/渐变/记忆逻辑实现 调光控制是智能照明系统的核心基础功能,涉及亮度调节、人机交互与电气安全多重需求。其底层原理依赖于对相位角或PWM占空比的精确时序控制,并需融合软启动、渐变过渡、状态记忆等工程化逻辑。这类轻量级调光行为逻辑层,不直接操作硬件寄存器,而是以确定性、无动态内存、可配置的方式封装用户意图到目标亮度值(0–100%)的映射过程,显著提升产品鲁棒性与跨平台复用能力。广泛应用于TRIAC交流调光、LED直流PWM驱动及DALI/Matter等智能照明协议网关中,尤其适合资源受限的Cortex-M系列MCU和FreeRTO 阅读详情

相关推荐

PFC中pb模型实战:从胶结参数设置到破坏模拟全流程解析

本文详细解析了PFC软件中平行胶结模型(PB模型)的实战应用全流程。从胶结参数(pb_kn, pb_ks, pb_ten等)的物理意义与精准赋值入手,深入探讨了模型构建、胶结施加以避免初始损伤的技巧,并系统介绍了破坏过程的监测、阈值判定方法以及高级可视化与常见问题诊断。旨在帮助岩土工程与颗粒材料研究者掌握从参数调试到破坏模拟的核心操作,提升数值模拟的准确性与效率。

php55的博客 1074

未能找到任何适合于指定的区域性或非特定区域性的资源

未能找到任何适合于指定的区域性或非特定区域性的资源。请确保在编译时已将“WindowsFormsDemo.UnifiedConfigListControl.resources”正确嵌入或链接到程序集“设备配置助手”,或者确保所有需要的附属程序集都可加载并已进行了完全签名

与其用泪水悔恨昨天,不如用汗水拼搏今天 1824

ADS高级技巧:用DAC控件实现多变量参数扫描(以S参数和阻抗匹配为例)

本文深入解析了ADS软件中DAC控件的高级应用,指导用户如何利用其实现多变量参数扫描。通过构建支持多变量的MDF文件,并将其与原理图变量动态映射,可以高效完成如S参数和阻抗匹配等复杂场景的联合仿真与可视化分析,显著提升射频电路设计的效率和深度。

3a9bq4r8t2y的博客 253

未能找到任何适合于指定的区域性或非特定区域性的资源。请确保在编译时已将“***Form.resources”正确嵌入或链接到程序集“***”。。。

如图所示错误:未能找到任何适合于指定的区域性或非特定区域性的资源。请确保在编译时已将“MonitoringSystem.MainForm.resources”正确嵌入或链接到程序集“MonitoringSystem”,或者确保所有需要的附属程序集都可加载并已进行了完全签名。解决办法:将obj文件夹从项目中排除,如下图所示,不是删除,排除后,文件夹会隐藏,在解决方案管理器的上面点击“显示所有文件”小...

acoolgiser的博客 8440

TI电机驱动应用中MOSFET选型完整指南

深入解析TI电机驱动设计中MOSFET的选型关键,涵盖参数匹配、热性能与开关效率,帮助工程师优化系统性能并提升能效,是掌握MOSFET应用的核心参考。

weixin_42263617的博客 1269

AI辅助编程实战指南:从提示工程到开发环境搭建

大型语言模型(LLM)作为现代人工智能的核心技术,通过自然语言理解和生成能力,正在深刻改变软件开发范式。其原理基于海量代码和文本数据的预训练,能够根据上下文生成符合逻辑的代码片段和解决方案。这一技术的核心价值在于将开发者从繁琐的语法和基础逻辑编写中解放出来,提升开发效率与代码质量。在实际工程应用中,AI辅助编程已广泛应用于日常编码、代码调试、文档生成和系统设计等场景。其中,提示工程(Prompt Engineering)和检索增强生成(RAG)是两项关键技术:前者通过结构化、角色化的指令设计,引导AI生成更

weixin_26775679的博客 620

VS项目报错:未能找到任何适合于指定的区域性或非特定区域性的资源。请确保在编译时已将“***”正确嵌入或链接到程序集“***”的原因和解决方法

如上图,VS2010项目,在为PictureBox控件设置图片时,使用资源文件,报错,确认图片无问题、路径无问题。 经过分析,找到原因: 项目资源文件“WindowsFormsApplication3.Form1.resources”所在的obj文件夹被我包括在项目中,无法正常调用了。 解决办法: 在obj文件夹身上点右键,选择“从项目中排除”,重新编译运行,问题解除。 ...

feelyounger的专栏 6301

从零到一:树莓派上的YOLO目标检测实战指南

本文详细介绍了如何在树莓派上部署和优化YOLO目标检测模型,从硬件选型到系统配置,再到模型转换与推理优化。通过对比不同树莓派型号的性能差异,提供实用的配置方案和代码示例,帮助开发者快速实现高效的边缘计算视觉系统。特别推荐使用ONNX格式进行模型转换,以提升在树莓派上的推理效率。

weixin_29046035的博客 1063

使用 ResourceManager 类检索资源(来自MSDN)

可以使用 ResourceManager 类在运行时检索“嵌入的资源”(即已经编译到应用程序或类库中的资源)。ResourceManager 类的每个实例都与一个程序集关联并且管理对嵌入到该程序集中的资源的检索。 检索资源 创建一个程序集引用,引用包含要访问的资源的程序集。如果尚未加载包含资源的程序集,则必须在此时加载它。 创建 ResourceManager 类的

小朱的专栏 1232

电子设计(1)二极管防电源反接电路

二极管经常用来作电源防反接保护,所需器件少,电路简单。

记得诚 1万+

利用Python实现Springer文献关键词爬虫

🔧 如何分析Springer的搜索结果HTML结构🕷️ 编写高性能异步爬虫抓取论文元数据📊 使用Pandas导出Excel🧠 如何处理作者、摘要、DOI等字段🔄 如何优化爬虫稳定性与可扩展性。

2201_76125261的博客 414

取资源文件中的值 System.Resources.ResourceManager

  /// &lt;summary&gt;        /// 获取提示信息        /// &lt;/summary&gt;        /// &lt;param name="code"&gt;信息代码&lt;/param&gt;        /// &lt;param name="arguments"&gt;格式化参数&lt;/param&gt;     

weixin_34278190的博客 929

从原理到实战:深入解析 Synopsys VCS 仿真快照技术,提升验证效率

VCS Checkpoint 技术摘要 VCS Checkpoint 是 Synopsys VCS 提供的仿真状态快照功能,可将完整的仿真状态(寄存器、存储器、时钟、随机种子等)序列化保存。主要应用场景包括:跳过耗时初始化阶段、覆盖率驱动验证、Debug复现和UVM分阶段验证。核心原理是对仿真内核状态的完整序列化,需注意文件句柄等特殊对象需手动处理。 使用方式: 编译时添加 -checkpoint 选项 运行时通过 $save 系统任务或 +checkpoint 参数保存状态 通过 +restore 参数恢

元直的博客 248

转 Using the "Start Conditions" in Workflow

Using Start Conditions in Workflow By Geethanjali K, Kaavian Systems from link   Go to transaction SWDD and create a new workflow definition. Then choose basic data. Give the abbreviation and c...

ielxzhang的专栏 184

假人有限元模型

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

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Trellis 本地工作流定制指南:如何安全修改 `.trellis/workflow.md` 的阶段、路由与 workflow-state

> 本文基于 EcoPaste 仓库中随 Trellis 分发的 trellis-meta 技能文档([change-workflow.md](https://link.gitcode.com/i/44d1aa668087ae76262540fad7d7c9f1))编写,并结合仓库内 [local-architecture/workflow.md](https://link.gitcode.com

gitblog_00036的博客 540

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

LangGPT 结构化提示词实战手册:五个开箱即用示例拆解 Role-Profile-Rules-Workflow 范式

本手册以 LangGPT 仓库中 [examples/prompts_en.md](https://link.gitcode.com/i/376b501617808b945c96f8902522580e) 收录的五个英文结构化提示词为蓝本,逐条拆解 FitnessGPT、CAN、DecisionGPT、Programming Interpreter 与 GitHub Copilot 的完整设计,并

gitblog_00639的博客 911

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Lark CLI 多维表格 Workflow steps JSON 完整字段参考(SSOT)实战指南

本指南以 Lark/飞书 CLI 官方仓库 `lark-base` Skill 中的 Workflow steps JSON 单一事实来源(SSOT)文档为主体,系统讲解多维表格自动化流程(Workflow Block)的 `steps` 数据结构:从节点基础结构、类型枚举,到每个触发器/动作/分支/循环的完整 `data` 字段定义,再到跨节点的 `ref` 引用变量协议。读完本文,你将能够独立

gitblog_01185的博客 1071

飞书多维表格 Workflow 实战指南:从 steps JSON 到自动化流程编排(lark-cli 视角)

本文是基于 lark-cli(飞书官方 CLI,仓库 `gh_mirrors/cli414/cli`)中 `lark-base` Skill 的 Workflow 入门指南整理而成的技术实战文章。它以 [skills/lark-base/references/lark-base-workflow.md](https://link.gitcode.com/i/b15eb6698e8e0180aa90

gitblog_01015的博客 454

Apache DolphinScheduler Python API(PyDolphinScheduler)实战指南:用 Workflow-as-Code 定义工作流

PyDolphinScheduler 是 Apache DolphinScheduler 的 Python API,允许开发者用纯 Python 代码声明式地定义工作流(Workflow-as-Code),而非在 UI 上拖拽配置,从而让工作流定义像普通代码一样可版本化、可评审、可复用。本文基于当前仓库 `dolphinscheduler-python/pydolphinscheduler` 模块

gitblog_00714的博客 468

AI workflow与云原生如何重塑前后端开发范式

在现代软件工程中,workflow(工作流)已从传统自动化脚本升级为跨系统协同的智能执行流,其核心驱动力是AI对业务意图的语义解析与云原生提供的声明式运行时底座。AI不再仅用于生成代码片段,而是作为‘协议翻译器’,将自然语言需求映射为可验证、可回滚的K8s CRD操作;云原生则通过Operator、GitOps和Service Mesh,使基础设施能力成为可编程API。这种AI+云原生的深度耦合,正推动前后端开发从‘功能实现’转向‘生命周期设计’,显著提升交付效率与系统可观测性。本文聚焦普通开发者可落地的实

weixin_34414650的博客 310

十分钟出片:OpenMontage 零密钥 AI 视频制作全流程

上次你想剪一条 30 秒科普短片,光装软件、排时间线、注册一堆 API,就耗掉一个下午。OpenMontage 是一套零 API 密钥也能跑通的免费视频制作系统:把它克隆下来交给 AI 编码助手,本文带你走完从一句话到成片的全程。 [![OpenMontage AI 视频制作的多风格成片拼贴](https://raw.gitcode.com/GitHub_Trending/op/OpenMont

gitblog_00712的博客 375

CC Workflow Studio AI 辅助工作流精修(Refinement)聊天功能的调研与技术实现解析

本文以 CC Workflow Studio(VSCode 扩展)中「AI 辅助工作流精修聊天功能」(AI-Assisted Workflow Refinement Chat)的调研文档为骨架,系统梳理该功能从 UI 设计、数据模型、提示词工程到 React 组件架构的完整技术方案。读者将掌握:为什么选择自定义 React 聊天 UI 而非 VSCode 原生 Chat API、如何把会话历史以

gitblog_00924的博客 157

Argo Workflows Java SDK 实战指南:IoArgoprojWorkflowV1alpha1WorkflowStatus 字段详解与底层实现

`IoArgoprojWorkflowV1alpha1WorkflowStatus` 是 Argo Workflows Java 客户端 SDK 中描述工作流整体状态的核心模型类,对应 Kubernetes CRD 中每个 `Workflow` 对象的 `status` 字段。它记录了工作流从创建到结束的完整生命周期信息:当前阶段(Phase)、起止时间、节点执行结果、产物输出、资源消耗、状态卸载

gitblog_00119的博客 299

如何理解 EnvHarness 的 LLM 设计者智能体:详解诊断-变异-测试的自我进化循环

EnvHarness 是一个让"静态"智能体评测环境变得动态可控的开源框架。它的核心是一位 **LLM 设计者智能体(LLM Designer Agent)**,通过"诊断—变异—测试"(Diagnose-Mutate-Test)的自我进化循环,持续读取出题智能体的行为轨迹、找出其弱点、用真实 Python 代码重塑环境、再测试并反复修订,直到环境真正能教会智能体它缺失的能力。这篇文章用尽量少的代

gitblog_00176的博客 201

LangGraph实战:构建有状态、可循环的AI智能体工作流

在AI应用开发中,状态管理和流程控制是构建复杂智能体的核心挑战。传统线性链式结构难以处理分支、循环和状态依赖,导致代码臃肿且难以维护。LangGraph通过有向图模型,将执行过程抽象为节点和边,并引入全局状态对象,为多步决策工作流提供了清晰的可视化编程范式。这一框架尤其适用于需要自主规划、工具调用和策略调整的场景,如客服对话、数据分析流水线等。通过集成监督节点和人工干预机制,LangGraph进一步确保了智能体在关键业务中的可控性与安全性。本文将以**工具调用**和**状态管理**为例,展示如何从零搭建具备

weixin_34327761的博客 406

Astron Agent 社区示例工作流模板使用指南:基于 TEMPLATE 的导入、编写与贡献实战

> 本文面向希望在 Astron Agent 开源仓库中提交或二次开发工作流示例的开发者。通过本文,你将完整掌握 `examples/TEMPLATE` 模板的目录约定、README frontmatter 元数据规范、导出 DSL(`flowMeta`/`flowData`)的文件结构、密钥清理红线,以及从"复制模板 → 填写说明 → 提交 PR"的完整贡献流程;同时结合仓库内的真实示例与后端解

gitblog_00056的博客 185
上一篇: 最近忙死了~~
下一篇: NERO注册码收集
simonllf
博客等级 码龄23年 23粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值