C# | Winform编程控件之数字输入框控件(numericUpDown)

C#中numericUpDown控件详细使用方法 阅读详情
AI摘要

本文详细介绍了数字输入框控件的功能与使用方法,包括如何通过设置不同属性来控制其行为,例如最大值、最小值及数值变化等,并提供了实现按住拖动调整数值的具体代码示例。

数字输入框控件是用于输入数字和调节数字的一个控件,该控件中的数字储存为decimal类型,但是数字必须是整数而不能是小数。

控件在工具箱中的样式如下:


控件拖拽到窗口后的样式如下:


常用属性:

Value属性:控制数字输入框的数字的值(可用控件的向上或者向下符号对数字进行调节也可以自己输入)。

Maxmum属性:控制数字输入框的最大值(当输入的值大于最大值或者调节到大于最大值数字输入框则显示的是最大值,超过最大值也只显示最大值)。

Minimum属性:控制数字输入框的最小值(可以为负数)。

Increment属性:控制点击一次向上或者向下小按钮数字输入框值的增减大小。

UpDownAlign属性:控制数字调节小按钮是在控件的左边还是右边,有两个值:Left和Right。

对应的属性如下:



实现按住不放和按住拖拽增减数值的功能:

代码如下:(可自行提取里面有用的部分)

需要用到的参数定义如下:

        bool isMouseDown_PosX = false;  //鼠标是否按下
        float posX_X = 0;
        float posX_Y = 0;
        float posX_lastValue = 0;
相关的事件响应函数如下:
         //键盘按下时调用
        private void numericUpDown_posX_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)  //回车键
            {
                ChangeWorldCoordinate();
            }
        }

        //鼠标按下时调用
        private void numericUpDown_posX_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.X > numericUpDown_posX.Size.Width - 15)
            {
                if (e.Button == MouseButtons.Right) //鼠标右键
                {
                    ChangeWorldCoordinate(true);
                    return;
                }

                if (e.Button == MouseButtons.Left) //鼠标左键
                {
                    if (ModifierKeys == Keys.Shift) //按住Shift键时,点击鼠标左键
                    {
                        MessageBox.Show("Mouse And Key!");
                    }
                    isMouseDown_PosX = true;
                    posX_X = e.X;
                    posX_Y = e.Y;
                    ChangeWorldCoordinate();
                }
            }
        }

        //鼠标抬起时调用
        private void numericUpDown_posX_MouseUp(object sender, MouseEventArgs e)
        {
            isMouseDown_PosX = false;
        }

        //鼠标按下移动时调用
        private void numericUpDown_posX_MouseMove(object sender, MouseEventArgs e)
        {
            if (isMouseDown_PosX)
            {
                float deltaX = e.X - posX_X;
                float deltaY = posX_Y - e.Y;
                float delta = 0;
                if (deltaX==0 && deltaY==0)
                {
                    return;
                }

                //右、上方向
                if (deltaX>0 || deltaY>0)
                {
                    delta = (deltaX >= deltaY) ? deltaX : deltaY;
                    if (delta > 0.5)
                    {
                        delta = 0.5f;
                    }
                }
                //左、下方向
                if (deltaX<0 || deltaY<0)
                {
                    delta = (deltaX <= deltaY) ? deltaX : deltaY;
                    if (delta < -0.5)
                    {
                        delta = -0.5f;
                    }
                }

                numericUpDown_posX.Value += (decimal)delta;
                posX_X = e.X;
                posX_Y = e.Y;
                ChangeWorldCoordinate();
            }
        }

        //数值发生改变时调用
        private void numericUpDown_posX_ValueChanged(object sender, EventArgs e)
        {
            if (Math.Abs(numericUpDown_posX.Value - (decimal)posX_lastValue) != numericUpDown_posX.Increment)           
            {
                return;
            }
            if (isMouseDown_PosX)
            {
                posX_lastValue = (float)numericUpDown_posX.Value;
                ChangeWorldCoordinate();
            }
        }

实现按住拖拽功能思路如下:

1:设置一个标记位,在鼠标按下时设为true;

2:在鼠标按下并移动时,判断标记位的状态,如果为true,则根据鼠标前后位置的增量,增减数值;

3:在鼠标抬起时,将标记位设置为false,不再进行移动时的事件响应;

这个控件没有“  private void numericUpDown_posX_MouseMove(object sender, MouseEventArgs e)”这个时间,需要手动进行绑定,绑定方式如下:

 this.numericUpDown_posX.MouseMove += new System.Windows.Forms.MouseEventHandler(this.numericUpDown_posX_MouseMove);

C#工具箱中的ComboBox、RadioButton、NumericUpDown控件知识总结 NumericUpDown,又称为数字选择控件,是一个显示和输入数值的控件,控件提供了一对上下箭头,用户单击.上下箭头可选择数值,也可以直接输入一个数值。Text 用来设置或返回单选按钮控件内显示的文本,该属性也可以包含访问键,即前面带有“&”符号的字母,这样用户就可以通过同时按Alt键和访问健来选中控件。Sorted 指定是否对组合框列表中的项进行排序,如果值为 True,则排序, 如果值为 False,则不排序。Name 这个属性是每个控件都有的属性,即属性的命名。 阅读详情

相关推荐

WinForm开发(15)——numericUpDown控件

一、numericUpDown控件 numericUpDown控件是由system.windows.froms.Numericupdown类提供的,主要作用是将一个数按一定的值进行增加或减少。它主要有四个常用属性: Increment每次单击按钮时增加或者减少的量 Maximum 最大值 Minimum 最小值...

qq_34573534的博客 2760

winform 自定义数值(数字)输入框

最近写winform程序,发现自带的TextBox没发设置输入类型,这就有点痛苦了,查找了网上,没看到比较符合需求的;该输入框可实现不同类型数值输入,包括整数,小数(可设置保留位数),还可以限制输入的最大最小值。"当指定输入数值类型为小数时保留小数点位数""指定控件数值输入的最小值""指定控件数值输入的最大值""指定控件数值输入类型"

每天进步一点就够了 3535

C# WinForm数字键盘控件:轻量嵌入、无焦点干扰的工业级实现

数字键盘是人机交互中基础而关键的输入组件,其核心原理在于绕过系统焦点管理,通过事件代理与输入缓冲机制实现对TextBox、NumericUpDown等控件的安全文本注入。技术价值体现在零学习成本、高操作密度与低误触率,尤其适用于工控HMI、医疗终端、自助服务机等受限UI空间场景。本文聚焦C# WinForm平台下的轻量级虚拟数字键盘实现,深入解析无焦点干扰设计、光标位置保持、小数点智能防重及高DPI/暗色模式适配等工程细节,为传统桌面应用提供开箱即用的可嵌入式数字输入解决方案。

weixin_30431445的博客 311

C#使用NumericUpDown控件

首先,在工具箱中找到NumericUpDown控件将其绘制在页面上。然后,在这里看到带有上下切换按钮的NumericUpDown控件。我们赶紧来看看,C#如何使用NumericUpDown控件。此时,即可对Increment属性设置增值变量。然后,我们还能进行是否自动增值的属性进行设置。后,我们还能将其十进制的显示方式转为十六进制。不会使用的话还能在这里进行属性的查看。...

weixin_41883890的博客 2538

C#输入数量自动生成输入框、输入框只输入数字

1.输入数量自动生成输入框 //孔位距离 private void createTbx(int num) { //型号Type TextBox TextBoxT = new TextBox(); TextBoxT.Text = ""; TextBoxT.Size = new Size(150, 21); TextBoxT.Margin = new Syst

sam的博客 1150

【愚公系列】2023年10月 Winform控件专题 numericUpDown控件详解

Winform控件是Windows Forms中的用户界面元素,它们可以用于创建Windows应用程序的各种视觉和交互组件,例如按钮、标签、文本框、下拉列表框、复选框、单选框、进度条等。开发人员可以使用Winform控件来构建用户界面并响应用户的操作行为,从而创建功能强大的桌面应用程序。InterceptArrowKeys属性是NumericUpDown控件的一个布尔属性,如果设置为true,则可以用方向键键入数字值,而不是仅仅使用上下箭头按钮。

愚公智库 2万+

C#|Winform编程控件之数字输入框控件(numericUpDown)

数字输入框控件是用于输入数字和调节数字的一个控件,该控件中的数字储存为decimal类型,但是数字必须是整数而不能是小数。 常用属性: Value属性:控制数字输入框的数字的值(可用控件的向上或者向下符号对数字进行调节也可以自己输入)。 Maxmum属性:控制数字输入框的最大值(当输入的值大于最大值或者调节到大于最大值数字输入框则显示的是最大值,超过最大值也只显示最大值)。 Min

孤行者程序之路的博客 1万+

【34】C# WinForm入门到精通 ——数字选择器NumericUpDown【属性、方法、事件、实例、源码】

本文详细介绍了WinForm中的NumericUpDown数字选择器控件。该控件允许用户通过上下箭头按钮调整数值,常用于输入数量、年龄等场景。文章从属性(如DecimalPlaces设置小数位、Increment设置增减量)、事件(ValueChanged)和方法(UpButton/DownButton)三个方面展开讲解,并附有完整代码实例演示如何实现数字的增减功能。教程采用循序渐进的方式,图文并茂地展示了控件的各项功能,最后提供了包含源代码的综合实例,帮助开发者快速掌握该控件的使用方法。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 796

C# WinForm中的NumericUpDown控件

讲解了NumericUpDown 控件的基本使用和自己一些实战心得

currytc的博客 1707

WinForm中DataGridView嵌入NumericUpDown的正确实现

DataGridView数字输入控件本质上是编辑器托管机制,而非简单添加控件。其核心原理在于通过EditingControlShowing事件劫持编辑流程,并由自定义控件实现IDataGridViewEditingControl接口以获得官方支持。该方案解决了值同步、焦点管理、滚动适配与数据一致性等关键问题,技术价值在于提供符合WinForm原生规范、可稳定上线的数字微调输入能力。典型应用场景包括设备参数配置表、实验数据采集界面和财务明细录入页等需要高精度数值交互的工业级WinForm系统。本文详解Nume

weixin_33883104的博客 3

基于单片机红外线遥控Proteus仿真电路发射接收

*单片机设计介绍,基于单片机红外线遥控Proteus仿真电路发射接收。

2201_75940997的博客 3942

winform控件之NumericUpDown

一个NumericUpDown控件包含可以通过单击向上或向下按钮的控件是递增或递减的单个数字值。 用户还可以输入一个值,除非ReadOnly属性设置为true。 可以通过设置格式显示数字DecimalPlaces, Hexadecimal,或ThousandsSeparator属性。 若要在控件中显示的十六进制值,设置Hexadecimal属性设置为true。 若要显示千位分隔符在适当时的十进制...

mill_li的博客 4275

Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现

Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现 目录 Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现 一、简单介绍 二、Car Racing 2D (2D赛车) 游戏内容与操作 三、相关说明 四、游戏代码框架 五、知识点 六、游戏效果预览 七、实现步骤 八、工程源码地址 九、延伸扩展 一、简单介绍 Unity 游戏实例开发集合,使用简单易懂的方式,讲解常见游戏的开发实现过程,方便

仙魁XAN 7702

【WinForm详细教程三】WinForm中的NumericUpDown、PictureBox、RichTextBox及三种Timer控件

控件是一个富文本编辑控件,它允许用户输入和编辑文本,并支持丰富的文本格式化选项,如字体、颜色、样式等。控件是一个用于数字输入和显示的控件,通常用于让用户选择数字值。它包括一个文本框,用于显示当前的数值,以及向上和向下的按钮,用户可以点击这些按钮来增加或减少数值。它是一个非常常见的用于显示图形元素的控件,可以用来展示图片、图标、位图等各种图像。是一种基于服务的计时器,用于在指定的时间间隔触发 Elapsed 事件并执行操作。是一个多线程计时器,提供了以指定的时间间隔对线程池线程执行方法的机制。

QHCV的博客 3742

告别单一查询!MultiQueryRetriever在LangChain中的高级用法解析

本文深入解析了LangChain中的MultiQueryRetriever高级用法,该工具通过大语言模型自动生成多样化查询,显著提升文档检索的召回率和准确性。文章详细介绍了其核心机制、高级配置调优策略以及在多语言和专业领域中的实际应用,为开发者提供了优化知识库问答系统的实用方案。

weixin_28730927的博客 271

FPGA+滨淞CCD实战:手把手教你搭建S7031/S10142成像电路(附避坑指南)

本文详细介绍了使用FPGA驱动滨淞CCD传感器(S7031/S10142)构建高精度成像系统的完整实战流程。内容涵盖核心器件选型、系统架构规划、电路板(焦面板与接口板)设计要点、FPGA Verilog逻辑实现,并提供了从电源管理、信号调理到数据采集的详细避坑指南,帮助读者从零搭建稳定可靠的成像电路。

weixin_29271263的博客 227

C# NumericUpDown/RadioButton 数字输入框/单选框

目录 1.1 Nud常用属性 1.2 Nud常用事件 1.3 Nud实例 2 RadioButton 2.1 rdo常用属性 2.2 rdo常用事件 2.3 rdo实例 3 参考博客 1.1 Nud常用属性     NumericUpDown是一个数字输入框控件。 (1)DecimalPlaces:获取或设置控件显示小数位数。 (2)Increment:获取或设置递增或递减...

qq_29406323的博客 1479

神经符号AI架构解析:如何通过V&V提升AI系统可信性

在人工智能领域,深度学习模型因其强大的模式识别能力而广泛应用,但其内部决策过程往往如同“黑盒”,难以追溯和解释,这给系统验证与确认带来了巨大挑战。验证与确认是确保复杂软件系统安全、可靠、符合预期的基石,其中验证关注“是否正确地构建了产品”,确认则关注“是否构建了正确的产品”。神经符号人工智能作为一种新兴范式,通过融合符号逻辑的透明推理与深度学习的强大感知,为解决这一难题提供了关键技术路径。它使得AI系统既能从数据中学习复杂模式,又能依据可形式化检验的规则进行逻辑推理,从而在自动驾驶、医疗诊断等高可靠性应用场

weixin_28681379的博客 357

C# WinForm —— 18 NumericUpDown 介绍

数字显示框,通过向上、向下按钮来 增加/减小 显示的数值。

ChanMon的博客 1628

《手把手教你修复过期K8s集群证书:记一次K8s集群起死回生实录》

今天本想打开半年前部署的K8s测试集群跑个Demo,结果`kubectl`直接报错`certificate has expired`!作为一名云原生老司机,我决定把这次'抢救'过程记录下来,手把手带大家解决这个运维常见问题。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 3779

Buck电源设计常见的一些问题(四)MOS管振荡抑制方法(二)

另一方面,开关振铃为远超开关频率的高频振铃,并伴随很高的 dV/dt,会带来传导和辐射的 EMI 问题,可能会使得终端产品不能通过 EMI 标准测试,更严重时甚至会干扰开关电源自身的信号电路或临近的其他功能电路的正常工作。选用二极管反向特性好的器件;该电路可等效成图 3 中 LC 谐振电路,新的 LR和 CR为 Lp1、Lp5,Lp3, Lp4, CD等所有参与振铃的寄生感容的复合值。通常 Snubber 的 Csnub取值在数 nF 以上,在振铃频率 fR(加了 snubber 后)下的阻抗很小。

小幽余生不加糖 2892

C#中只接受数字输入的控件

 1---------------------------------------------------------使用NumericUpDown控件。   当需要获取简单数字输入时,在.NET世界中最直接的方法不是去想办法与TextBox搏斗,而应该换个控件来用——NumericUpDown。这个控件不但能接受来自键盘的数字输入,还有一组上下箭头来步进。它包含了许多可以设置的属性,例如显示

dieindark的专栏 8888

【RH850/U2A】:功能安全

功能安全相关

3130

Winform/C#入门编程之第二部分常用控件(七:数字显示框控件NumericUpDown)

简介: Windows 窗体 NumericUpDown 控件看起来像是一个文本框与一对箭头的组合,用户可以单击箭头来调整值。 该控件显示并设置选择列表中的单个数值。 用户可以通过单击向上和向下按钮、按向上键和向下键或键入一个数字来增大和减小数字。 单击向上键时,值沿最大值方向增加;单击向下键时,位置沿最小值方向移动。 当是纯数字时,可以优先使用此控件,而不是编辑框控...

路过 4326

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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

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

WinForm真入门(17)——NumericUpDown控件详解

NumericUpDown 是 Windows 窗体中用于数值输入的控件,由文本框和上下调节按钮组成

ByteGeek 1023

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

C#基础 之 WinForm控件介绍_winform activecontrol(2),深入讲解网络安全

除了可以使用Windows自带的标准对话框外,用户还可以把自己设计的窗体定义成对话框。使用自定义对话框有以下几个要点。(1)将窗体的FormBorderStyle属性值设置为FixedDialog。(2)根据需要向窗体上添加控件。(3)使用窗体的ShowDialog方法显示窗体,即显示出对话框。

2301_79058515的博客 1006

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

上一篇: Unity Shader - 对Cubemap进行环境映射(世界空间和切线空间下的对比)
下一篇: C# 鼠标光标到达屏幕边缘后从另一边缘出现
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独立游戏开发指南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值