C#使用NPOI操作Word表格

NPOI导出word,NPOI导出word表格,NPOI复制table表格 XWPFDocument中XWPFTable NPOI导出word,NPOI导出word表格,NPOI复制table表格 XWPFDocument中XWPFTable 使用NPOI可以对Word中的文本做替换,当遇到表格时,单个表格也可以循环遍历替换,但是如果需要根据数据源的条数,动态生成多个表格时,该怎么办?这里提供一种方案, ①先获取到word文档XWPFDocument myDoc ②再获取到word原本的表格模板myDoc.Tables[tableIndex] ③复制表格模板,有多少条源数据,复制多少个表格 ④遍历源数据,一条数据替换并生成一 阅读详情

添加所有NPOI动态库。NPOI、NPOI.OOXML、NPOI.OpenXml4Net、NPOI.OpenXmlFormats、ICSharpCode.SharpZipLib。

1、读取Word表格生成字符串

XWPFDocument docx = new XWPFDocument(stream);
var list = new List<XWPFTableCell>();
string result = "";
foreach (var row in docx.Tables[0].Rows)
{
    foreach (var cell in row.GetTableCells())
    {
        if (!list.Contains(cell))
        {
            list.Add(cell);
            result += cell.GetText() + "#";
        }
    }
    result += "\n";
}

2、读取Word表格生成XML

public XmlDocument GetTable(string wordFile)
{
    using (FileStream stream = File.OpenRead(wordFile))
    {
        XWPFDocument docx = new XWPFDocument(stream);
        var list = new List<XWPFTableCell>();
        var xml = new XmlDocument();
        var node = xml.CreateNode(XmlNodeType.XmlDeclaration, "", "");
        xml.AppendChild(node);
        var root = xml.CreateNode(XmlNodeType.Element, "Root", "");
        xml.AppendChild(root);
        var title = xml.CreateNode(XmlNodeType.Element, "Title", "");
        var year = xml.CreateNode(XmlNodeType.Element, "Year", "");
        var type = xml.CreateNode(XmlNodeType.Element, "Type", "");
        var text = xml.CreateNode(XmlNodeType.Element, "Text", "");
        root.AppendChild(title);
        title.AppendChild(year);
        title.AppendChild(type);
        title.AppendChild(text);
        var header = xml.CreateNode(XmlNodeType.Element, "Header", "");
        var totalOrder = xml.CreateNode(XmlNodeType.Element, "TotalOrder", "");
        var secondOrder = xml.CreateNode(XmlNodeType.Element, "SecondOrder", "");
        var date = xml.CreateNode(XmlNodeType.Element, "Date", "");
        var companyName = xml.CreateNode(XmlNodeType.Element, "CompanyName", "");
        var scope = xml.CreateNode(XmlNodeType.Element, "Scope", "");
        var whyUse = xml.CreateNode(XmlNodeType.Element, "WhyUse", "");
        var linkMan = xml.CreateNode(XmlNodeType.Element, "LinkMan", "");
        var phoneNum = xml.CreateNode(XmlNodeType.Element, "PhoneNum", "");
        var address = xml.CreateNode(XmlNodeType.Element, "Address", "");
        header.AppendChild(totalOrder);
        header.AppendChild(secondOrder);
        header.AppendChild(date);
        header.AppendChild(companyName);
        header.AppendChild(scope);
        header.AppendChild(whyUse);
        header.AppendChild(linkMan);
        header.AppendChild(phoneNum);
        header.AppendChild(address);
        root.AppendChild(header);
        var body = xml.CreateNode(XmlNodeType.Element, "Body", "");
        root.AppendChild(body);
        foreach (var table in docx.Tables)
        {
            #region
                for (int i = 0; i < table.Rows.Count; i++)
                {
                    var row = table.Rows[i];
                    for (int j = 0; j < row.GetTableCells().Count; j++)
                    {
                        var cell = row.GetCell(j);
                        if (!list.Contains(cell))
                        {
                            list.Add(cell);
                            if (i == 0)
                            {
                                var titleText = cell.GetText().Split(' ');
                                year.InnerText = titleText[0];
                                type.InnerText = titleText[1];
                                text.InnerText = titleText[2];
                            }
                            else if (i == 1)
                            {
                                switch (j)
                                {
                                    case 0:
                                        totalOrder.InnerText = cell.GetText();
                                        break;
                                    case 1:
                                        secondOrder.InnerText = cell.GetText();
                                        break;
                                    case 2:
                                        date.InnerText = cell.GetText();
                                        break;
                                    case 3:
                                        companyName.InnerText = cell.GetText();
                                        break;
                                    case 4:
                                        scope.InnerText = cell.GetText();
                                        break;
                                    case 5:
                                        whyUse.InnerText = cell.GetText();
                                        break;
                                    case 6:
                                        linkMan.InnerText = cell.GetText();
                                        break;
                                    case 7:
                                        phoneNum.InnerText = cell.GetText();
                                        break;
                                    case 8:
                                        address.InnerText = cell.GetText();
                                        break;
                                    default:
                                        break;
                                }
                            }
                            else
                            {
                                switch (j)
                                {
                                    case 0:
                                        var totalOrder1 = xml.CreateNode(XmlNodeType.Element, "TotalOrder", "");
                                        totalOrder1.InnerText = cell.GetText();
                                        body.AppendChild(totalOrder1);
                                        break;
                                    case 1:
                                        var secondOrder1 = xml.CreateNode(XmlNodeType.Element, "SecondOrder", "");
                                        secondOrder1.InnerText = cell.GetText();
                                        body.AppendChild(secondOrder1);
                                        break;
                                    case 2:
                                        var date1 = xml.CreateNode(XmlNodeType.Element, "Date", "");
                                        date1.InnerText = cell.GetText();
                                        body.AppendChild(date1);
                                        break;
                                    case 3:
                                        var companyName1 = xml.CreateNode(XmlNodeType.Element, "CompanyName", "");
                                        companyName1.InnerText = cell.GetText();
                                        body.AppendChild(companyName1);
                                        break;
                                    case 4:
                                        var scope1 = xml.CreateNode(XmlNodeType.Element, "Scope", "");
                                        scope1.InnerText = cell.GetText();
                                        body.AppendChild(scope1);
                                        break;
                                    case 5:
                                        var whyUse1 = xml.CreateNode(XmlNodeType.Element, "WhyUse", "");
                                        whyUse1.InnerText = cell.GetText();
                                        body.AppendChild(whyUse1);
                                        break;
                                    case 6:
                                        var linkMan1 = xml.CreateNode(XmlNodeType.Element, "LinkMan", "");
                                        linkMan1.InnerText = cell.GetText();
                                        body.AppendChild(linkMan1);
                                        break;
                                    case 7:
                                        var phoneNum1 = xml.CreateNode(XmlNodeType.Element, "PhoneNum", "");
                                        phoneNum1.InnerText = cell.GetText();
                                        body.AppendChild(phoneNum1);
                                        break;
                                    case 8:
                                        var address1 = xml.CreateNode(XmlNodeType.Element, "Address", "");
                                        address1.InnerText = cell.GetText();
                                        body.AppendChild(address1);
                                        break;
                                    default:
                                        break;
                                }
                            }
                        }
                    }
                }
            #endregion            
        }
        return xml;
    }
}
C#、NPOI生成Word文档(模板) 敲代码要养成好习惯,项目需要集成word导出,学习接触了npoi,因为做的时候网上文档资源不是很多,也比较杂乱,所以查了查,整理了整理,做个记录,也顺便把NPOI操作Word文档的一些基本套路分享给有需要的朋友。 本篇包括生成Word对word文本的操作,表格的操作,以及图片的操作,都为生成word基础的一些操作。 以下只是我的个人理解所得,大家有什么更好的想法欢迎补充。 VS2017、右... 阅读详情

相关推荐

C#将所需要的数据写入Word模板中

此文章所写的接口中出现的例子 //我们根据前端所传的ID为条件,执行SQL 查找数据,写入Word中 public ReturnResponse WordFile(string UserInfoID) { ReturnResponse _R = new ReturnResponse(); Base_LogEntity _L = new Base_LogEntity(); #endregion ...

XT412的博客 1648

NPOI 在word中插入 表格 包括 合并单元格

在使用NPOI操作制作word数据模板时,需要在word中插入表格,包括合并单元格的方式 图例: 1,没有合并单元的方式创建表格,这种方式是提前创建好所需要的表格,然后再往里面填数 XWPFDocument doc= new XWPFDocument(); //创建表格-提前创建好表格后填数 XWPFTable tableContent = doc.CreateTable(4, 5);...

等夏天 1万+

C# 读去Word文档(NPOI)

NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。读取指定表格数据返回DataTable。获取Word文档所有Sheet表格。

SJ15630070060的博客 1579

C# NPOI 在Word进行表格操作 生成表格 特定位置插入表格 合并表格 替换文字 插入图片

NPOI大多使用在Excel的导出上,Word导出比较少,鉴于工作需要搜罗了一下各帖子,完整用Word导出了多个复杂表格,现在根据最近的工作做一下总结。

qq_53628302的博客 1989

C#使用NPOI进行Excel和Word文件处理(二)

NPOI是一个.NET库,用于读取和写入Microsoft Office格式文件,包括Excel (.xls, .xlsx)和Word (.doc, .docx)。NPOI使开发者可以在不依赖于Office组件的情况下操作Office文件,非常适合在服务器端应用中使用。通过NPOI,你可以轻松地在C#中处理Excel和Word文件,无需依赖Office组件。本文提供的示例代码展示了如何读取和写入这些文件的基本操作。你可以根据自己的需求扩展这些示例,以实现更多功能。

MusicScore的博客 1364

C#中NPOI操作Word文档:插入图片与表格实战

在开发自动化报表、合同或工单生成系统时,Office文档的编程式操作一直是工程化中的常见难题。传统方案往往依赖 Word COM 组件,不仅要求服务器安装 Office,还存在跨平台受限、资源释放困难等隐患。作为一款无需 Office 环境即可读写 xlsx、docx 等格式的开源库,NPOI 凭借面向对象的 XWPF 模型,将 Word 的段落、表格、图片抽象为清晰的类层次,大幅降低了文档生成的门槛。开发者无需理解底层 XML,即可像操作普通数据结构一样创建表格、设置样式、插入图片,特别适合批量生成巡检报

weixin_34056162的博客 676

使用NPOI导出复杂Word详解——C#篇

本文需要有一定代码基础才能观看,如有不懂,可以提问。其中包含NPOI生成word,根据word模板填充数据,生成复杂的word 表格以及对word 中段落的样式修改

qq_38544249的博客 8901

使用C#和NPOI库进行Word.docx文件的创建与操作

本文还有配套的精品资源,点击获取 简介:C#是一种广泛用于.NET项目的编程语言,而NPOI库扩展了C#处理Microsoft Office文档的能力,尤其是在Word(.docx)文件的创建和操作方面。本主题深入探讨了使用NPOI库进行Word文档创建和常用操作,如表格创建、图片插入和图表构建等。通过NPOI,开发者可以实现对Word文档自动化处理的需求,适用于数据报告、...

weixin_33608403的博客 3364

npoi word生成HTML,C# 使用NPOI生成Word文档(按照模板)

项目需要集成word导出,做的时候网上文档资源不是很多,也比较杂乱,所以查了查,整理了整理,做个记录,也顺便把NPOI操作Word文档的一些基本操作分享给有需要的朋友。本篇包括生成Word对word文本的操作,表格的操作,以及图片的操作,都为生成word基础的一些操作。以下只是我的个人理解所得,大家有什么更好的想法欢迎补充。VS2017、右键解决方案,管理NuGet程序包,搜索并为项目安装NPOI...

weixin_35615495的博客 1349

C# NPOI生成word插入图片和表格

通过C#调用NPOI组件生成Word文档,在生成Word文档过程中插入表格以及插入图片,使用到了C#,扩展等技术

APS生产排程系统——ERP、MES、APS系统的关联和区别

APS生产排程系统——ERP、MES、APS系统的关联和区别

这里有一只小马吖 2万+

c#使用NPOI,根据word模板修改内容

一:需要引用的主键 1.NPOI 二:主要逻辑如下: try { string fileName = Application.StartupPath + @"\aramexConfig\docx\templateWord.docx";//模板 Dictionary<string, object> aramexShippmentMap = (Dictionary<string, obje..

weixin_41348259的博客 2454

Anthropic三件套重构AI工作流:Claude Code、Design与桌面宠物实战指南

AI协作已从单点工具迈入系统化工作流阶段。理解AI作为‘协作者’而非‘执行器’的本质,是提升工程效率的关键前提;其核心在于对任务调度、自适应推理与人机交互边界的重新定义。Claude Code的xhigh effort机制体现了分层推理的工程智慧,Claude Design以HTML为原生设计语言实现设计-代码一体化,而桌面宠物则将抽象的token消耗具象为可感知的硬件反馈。这些能力共同指向一个趋势:AI工作流正从prompt调参走向契约式委派、从界面割裂走向跨模态统一。本文结合Opus 4.7最新实践,解

a4512138的专栏 484

npoi在单元格里嵌套单元格_C#、NPOI生成Word文档(模板)(转载)

项目需要集成word导出,做的时候网上文档资源不是很多,也比较杂乱,所以查了查,整理了整理,做个记录,也顺便把NPOI操作Word文档的一些基本操作分享给有需要的朋友。本篇包括生成Word对word文本的操作,表格的操作,以及图片的操作,都为生成word基础的一些操作。以下只是我的个人理解所得,大家有什么更好的想法欢迎补充。VS2017、右键解决方案,管理NuGet程序包,搜索并为项目安装NPOI...

weixin_39571404的博客 752

ANSA二次开发在线帮助:ANSA和μETA API文档

  为了方便大家学习ANSA二次开发,我将ANSA和μETA二次开发的官方文档整合到了我的个人网站CAECoder中,大家点击ANSA和μETA API官方帮助文档进行访问即可查看。   本站也将开展对ANSA和μETA API文档的翻译工作,请大家持续关注! ANSA和μETA API文档   ANSA和μETA脚本接口是一个应用程序编程接口(API),允许开发人员访问ANSA和μETA核心功能和数据。   ANSA和μETAAPI是Python编程语言的扩展。 Python Python简.

CAECoder 4320

单节锂电池充电管理芯片应用原理阐述及应用领域

当电池电压超过2.9V时,采用恒流模式对电池充电,充电电流由PROG 管脚和GND之间的电阻RPROG确定。充电电压固定于4.2V,而充电电流可通过一个电阻器进行外部设置当充电电流在达到最终浮充电压之后降至设定值1/10时,WD4054将自动终止充电循环。在待机模式中,WD4054 对 BAT 引脚电压进行监控,只有当 BAT 引脚电压低于再充电阈值电压4.1V时(对应电池容量80%~90%),才会开始新的充电循环,重新对电池进行充电,这就避免了对电池进行不必要的反复充电,有效延长电池的使用寿命。

weixin_41141180的博客 940

使用npoi操作Word

首先要准备一个可读写的Word模板文件(.docx)或者什么都不需要,直接实例化一个XWPFDocument 空对象 FileStream fs = new FileStream(Application.StartupPath + "\\模板.docx", FileMode.OpenOrCreate, FileAccess.ReadWrite);//注意FileMode和FileAccess的...

潘达小新 4604

企业微信群机器人Webhook配置全攻略:从创建到发送消息的完整流程

本文详细解析了企业微信群机器人的Webhook配置全流程,从创建机器人、获取关键Webhook地址,到使用代码发送文本、Markdown等多种消息类型。内容涵盖安全加固、错误处理及与CI/CD等系统集成的实战指南,帮助企业快速构建高效、稳定的内部通知系统。

ik678901的博客 1778

【亲测免费】 C NPOI生成Word插入图片和表格

C# NPOI生成Word插入图片和表格 【下载地址】CNPOI生成Word插入图片和表格 本文档旨在指导开发者如何利用C#语言结合NPOI库来生成Word文档,并在其中插入图片和表格。NPOI是一个强大的.NET库,它允许用户操作Excel、Word等Office文档格式,无需依赖Microsoft Office软件本...

gitblog_09712的博客 1010

C#身份验证黑科技:用量子级加密与多维防御矩阵构建坚不可摧的用户管理系统!

某金融系统因身份验证漏洞导致200万用户数据泄露,量子级防御可将攻击面缩小99.99%。

墨夶的博客 352

【YOLOv8改进-注意力机制】LSKNet(Large Selective Kernel Network ):空间选择注意力

【YOLOv8改进-注意力机制】LSKNet(Large Selective Kernel Network ):空间选择注意力 (论文笔记+引入代码)。LSKNet能够动态调整其大的空间接收场,以更好地模拟遥感场景中各种对象的范围上下文。据我们所知,这是首次在遥感目标检测领域探索大型和选择性核机制。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 2864

C#NPOI导出至Word

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码

weixin_43911700的博客 2204

从0到1:OpenClaw 助力单元测试代码自动化与覆盖率飞升

OpenClaw 的横空出世,宛如一道曙光,照亮了这片黑暗的领域。它作为一款强大的本地 AI 助手,拥有着令人惊叹的能力。OpenClaw 能够深入理解代码的逻辑结构,自动分析代码中的各种功能和潜在的风险点,从而精准地生成高质量的单元测试代码。它就像是一位不知疲倦的测试专家,能够快速、准确地完成那些繁琐的测试编写工作,将开发者从重复劳动中解放出来,让他们能够将更多的精力投入到更具创造性和价值的工作中。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 475

通过NPOI导出Word文档

1 XWPFDocument doc = new XWPFDocument(); 2 XWPFParagraph p0 = doc.CreateParagraph(); 3 p0.Alignment = ParagraphAlignment.LEFT; 4 5 XWPFRun r0 = ...

weixin_30662849的博客 171

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

visio安装包

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

C Winform NPOI操作Word Excel 资源文件介绍

C# Winform NPOI操作Word Excel 资源文件介绍 去发现同类优质开源项目:https://gitcode.com/ 简介 本资源文件包含了一个C# Winform程序,该程序通过使用NPOI库来实现对Word和Excel文件的操作。它能够对Word文档中的段落、表格等元素进行编辑,同时支持对Excel文件的各种操作。 功能特点 Word操作:能够读取和写入Word文档,支持对...

gitblog_06716的博客 270

VB摄像头监控

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

.Net C# 使用NPIOI创建Word文档

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System.Text; using NPOI; us...

weixin_30342827的博客 117

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

上一篇: Python爬虫库Selenium
下一篇: NPOI介绍
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值