附录三 文件上传和下载

GP-PROPB C-Package03 V7.0.1触摸屏软件.rar 软件介绍: GP-PROPB C-Package03是一款触摸屏幕软件,由于硬件已经停产,所以在官方也不易找得到,这里提供一下,共享给需要的同学使用。安装效果,可以点击上面的图片放大查看。安装序列号:30507530130光盘key:4444-2299-9999 立即下载

项目文件下载:http://dl2.youkuaiyun.com/down4/20070805/05202416228.zip

TODO 2007/08/04-2007/08/05 

完成时间:2007年8月5日

文件上传和下载
 
一些需要注意的地方:
 
在处理到文件上传和下载的时候首先说明一些需要注意的地方。
 
1)  使用HTML默认的功能不能上传目录,这里的默认功能指的是不做额外的开发(例如ActiveX)的情况下。
    所以客户如果跟你说:“我有一个目录需要上传,能不能让我选择目录,然后一下子上传整个目录?”,出于工作量的考虑你最好回绝他,然后使用动态增加的方式来动态的支持多个上传文件,或者更简单的让客户指定所有的上传文件。
 
2)  不能设置文件上传字段的默认值。
    出于安全的考虑,HTML不支持默认的文件上传字段的默认值。例如,在你不知道的情况下,你访问了某个网站的某个页面,结果你的password文件被上传上去了,哈哈,你有危险了。
    所以如果客户跟你说:“我能不能打开画面的时候就设置好上传的文件?”,处于工作量和技术难度的考虑,你最好说:“哦,为了您的安全,还是不要这样子做了”,呵呵,
 
3)文件类型
    每一种文件都有类型,一般情况下扩展明决定了文件的类型。。所有文件类型的列表可以从这个目录中找到,相信可以为你提供参考:
TOMCAT_HOME/conf/web.xml   
…
<mime-mapping>
        <extension>bin</extension>
        <mime-type>application/octet-stream</mime-type>
</mime-mapping>
<mime-mapping>
        <extension>gif</extension>
        <mime-type>image/gif</mime-type>
</mime-mapping>
…
4) 下载文件时本页面内部打开,还是弹出另存对话框?
文件下载的时候可以在本页面打开,和可以弹出另存对话框。选择条件是设置文件下载的:contentDisposition,inline表示当前页面打开,attachment表示弹出另存对话框。
例如:
contentDisposition=inline;filename="image.jpg"              当前画面打开
contentDisposition=attachment;filename="image.jpg"          打开另存对话框
 
5)文件上传需要使用method="post" 和 enctype="multipart/form-data"类型的form
 
使用Struts2 上传文件:
Struts文件上传需要使用File Upload Filter。Filter Upload Filter使用一些默认的规则:
Form中的<s:file name="image"></s:file>标签对应着Action类中的三个属性分别是:上传文件(java.io.File类型),文件名(java.lang.String类型),文件类型(java.lang.String类型,例如:image/jpeg)。命名规约为:
文件:名字与<s:file>标签中的name属性一致,这里为:image
文件名:文件 + FileName,这里为:imageFileName
文件类型:文件 + ContentType,这里为:imageContentType
 
所以针对上述<s:file name="image"></s:file>表示啊的上传文件的JSP和Action类被别为:
 
imageUpload.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="s" uri="/struts-tags" %>
 
<html>
<head><title>Image Upload</title></head>
<body>
    <h1> Image Upload Page </h1>
 
    <s:form action="imageUpload" method="post" enctype="multipart/form-data">
        <s:file name="image"></s:file>
        <s:submit></s:submit>
 
    </s:form>
</body>
</html>
 
ImageUploadAction.java:
package com.jpleasure;
 
import com.opensymphony.xwork2.ActionSupport;
 
import java.io.File;
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
 
public class ImageUploadAction extends ActionSupport {
 
    private File image;
    private String imageFileName;
    private String imageContentType;
 
    public File getImage() {
        return image;
    }
 
    public void setImage(File image) {
        this.image = image;
    }
 
    public String getImageFileName() {
        return imageFileName;
    }
 
    public void setImageFileName(String imageFileName) {
        this.imageFileName = imageFileName;
    }
 
    public String getImageContentType() {
        return imageContentType;
    }
 
    public void setImageContentType(String imageContentType) {
        this.imageContentType = imageContentType;
    }
 
 
    public String execute() {
 
        if (image != null) {
            System.out.println("file name is:" + this.imageFileName);
            System.out.println("file content type is:" + this.imageContentType);
            System.out.println("file length is:" + this.image.length());
         }
        return SUCCESS;
    }
}
 
Struts.xml配置文件:
<action name="imageUpload" class="com.jpleasure.ImageUploadAction">
            <result>/success.jsp</result>
</action>
 
这样当我们选中上传文件,提交的时候:文件内容会以File类型的方式放在image声明的变量中。文件的名字将会被放在imageFileName命名的变量中,文件的类型被放在imageContentType命名的变量中。
 
文件下载:
文件下载需要使用一个特殊的Result,stream类型的Result。Stream类型的Result主要用来处理文件下载操作。
处理原理为:所有的下载文件都是将一个二进制的流写入到HttpResponse中去。在Action类中定义一个InputSream类型的二进制流,在Result返回给用户的时候返回给用户。
 
扩展上述的代码,将上传来的文件直接下载给用户:
ImageUploadAction中需要追加一个InputSream类型的对象,并且指向上传的文件,代码如下,红色部分表示变化:
package com.jpleasure;
 
import com.opensymphony.xwork2.ActionSupport;
 
import java.io.File;
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
 
public class ImageUploadAction extends ActionSupport {
 
    private File image;
    private String imageFileName;
    private String imageContentType;
 
    private InputStream imageInputStream = null;
 
 
    public InputStream getImageInputStream() {
        return imageInputStream;
    }
 
    public void setImageInputStream(InputStream imageInputStream) {
        this.imageInputStream = imageInputStream;
    }
 
    public File getImage() {
        return image;
    }
 
    public void setImage(File image) {
        this.image = image;
    }
 
    public String getImageFileName() {
        return imageFileName;
    }
 
    public void setImageFileName(String imageFileName) {
        this.imageFileName = imageFileName;
    }
 
    public String getImageContentType() {
        return imageContentType;
    }
 
    public void setImageContentType(String imageContentType) {
        this.imageContentType = imageContentType;
    }
 
 
    public String execute() {
 
        if (image != null) {
            System.out.println("file name is:" + this.imageFileName);
            System.out.println("file content type is:" + this.imageContentType);
            System.out.println("file length is:" + this.image.length());
 
            try {
                this.imageInputStream = new FileInputStream (image);
            } catch (FileNotFoundException e) {
               e.printStackTrace();          
 }
 
        }
 
        return SUCCESS;
    }
}
配置文件为,红色为变化部分:
<action name="imageUpload" class="com.jpleasure.ImageUploadAction">
            <result name="success" type="stream">
              <param name="contentType">image/pjpeg</param>
              <param name="inputName">imageInputStream</param>
              <param name="contentDisposition">attachment;filename="image.jpg"</param>
              <param name="bufferSize">1024</param>
            </result>
</action>
ContentType表示下载文件的类型。
InputName表示Action类中用来下载文件的字段的名字。
ContentDisposition用来控制文件下载的一些信息,包括是否打开另存对话框,下载文件名等。
BufferSize表示文件下载时使用的缓冲区的大小。
 
实际项目开发的考虑:
控制上传文件的类型和最大允许上传文件的size
使用File Upload Intercepter的参数可盈控制上传文件的类型和最大允许上传文件的size。例如:
<struts>
    <package name="myPackage" extends="struts-default">
 
        <interceptor-ref name="fileUpload">
            <param name="maximumSize">2MB</param>
            <param name="allowedTypes">text/html,image/jpeg</param>
        </interceptor-ref>
 
        <interceptor-ref name="basicStack"/>
 
        <action name="imageUpload" class="com.jpleasure.ImageUploadAction">
            <result name="success" type="stream">
                <param name="contentType">image/pjpeg</param>
                <param name="inputName">imageInputStream</param>
                <param name="contentDisposition">
attachment;filename="image.jpg"
</param>
                <param name="bufferSize">1024</param>
            </result>
        </action>
    </package>
</struts>
 
上述表示允许上传jpeg和html类型的文件,且最大文件上传size为2MB
 
显示错误信息:
可以使用如下key表示的message来显示文件上传出错的提示信息:

消息Key
说明
struts.messages.error.uploading
文件无法正常上传时的公共错误
struts.messages.error.file.too.large
文件大小超过最大允许size时的错误提示
struts.messages.error.content.type.not.allowed
文件类型不在上传文件允许类型中的错误提示

 
 
数学建模(含技巧,注意事项) 数学建模重要指导,WORD操作,注意事项,一般步骤,如何写好答卷,简单数学建模题 立即下载

相关推荐

Tapestry 5 電子書

最新Tapestry 5 電子書

Tapestry实现文件上传与下载

开发工具:(转) 1。eclipse3.0 + spindle 2.容器:tomcat 开始: 1,首先,新建一个Tapestry工程文件,命名为upload,在向导里面有三个步骤,我基本是打入工程名就直接按回车了。新建好工程后,你可以看到一个典型的web目录,在 WEB-INF自动生成4个文件: upload.appliaction tapestry的应用程序文件。 Home.html tape...

神#儿童 401

Java语言子集语法、语义分析器

1. 完成对附录一中文法描述的Java源代码的语法分析、语义分析及代码生成。代码生成的目标代码为MASM汇编代码; 2. 词法分析使用实验一完成的词法分析器(即与词法分析器有直接接口); 3. 课程考试前通过网络教室提交(包括源码和可执行文件的压缩文件 4. 通过测试用例的验收;

第四十七讲:tapestry 与 swfupload上传

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33828101的博客 165

MySQL 8.0数据库崩了别慌!手把手教你仅凭一个.ibd文件找回数据(附Go工具包)

本文详细介绍了在MySQL 8.0数据库崩溃后,如何仅凭.ibd文件恢复数据的完整流程。通过使用Go语言工具包和ALTER TABLE技巧,即使没有备份也能实现数据重生。文章包含从环境准备到数据验证的全方位指导,帮助DBA和开发者应对紧急数据恢复场景。

weixin_29235923的博客 419

从零到一:RK3588嵌入式开发中的SDK与MPP集成实战解析

本文详细解析了RK3588嵌入式开发中SDK与MPP(Media Process Platform)的集成实战,涵盖开发环境构建、SDK架构解析、MPP集成关键技术点及常见问题诊断。通过Qt5.12.10交叉编译环境配置和硬件加速优化,帮助开发者高效完成嵌入式视觉项目开发,特别适合边缘计算应用场景。

weixin_29189381的博客 510

Go语言的文件上传和下载:如何实现文件上传和下载功能

1.背景介绍 文件上传和下载是网络应用中非常常见的功能,它们涉及到文件的读取、写入、传输等操作。Go语言作为一种现代编程语言,具有很好的性能和可扩展性,非常适合用于实现这些功能。本文将从以下几个方面进行阐述: 背景介绍 核心概念与联系 核心算法原理和具体操作步骤以及数学模型公式详细讲解 具体最佳实践:代码实例和详细解释说明 实际应用场景 工具和资源推荐 总结:未来发展趋势与挑战 附录:常见问...

AI天才研究院 1792

简化神经元模型6 -- Hindmarsh-Rose Model

简化神经元模型 6 Hindmarsh-Rose Model

weixin_73557167的博客 1426

Go语言实战:文件和IO操作之文件上传和下载

1.背景介绍 1. 背景介绍 在现代互联网应用中,文件上传和下载是非常常见的操作。例如,用户上传头像、上传文件、下载文件等。Go语言作为一种现代的编程语言,具有很好的性能和可扩展性。因此,了解Go语言如何实现文件上传和下载是非常重要的。 本文将从以下几个方面进行阐述: 核心概念与联系 核心算法原理和具体操作步骤 数学模型公式详细讲解 具体最佳实践:代码实例和详细解释说明 实际应用场景 工...

AI天才研究院 1614

基于ESP32的智能无线广播系统开发博客

通过本项目的开发,我们成功地实现了基于ESP32的智能无线广播系统。该系统不仅具备传统广播的功能,还实现了通过Wi-Fi无线传输音频、实时广播和智能控制等多种先进功能。未来,随着技术的进一步发展,我们还可以扩展更多功能,如智能推荐广播内容、支持语音识别和控制等。希望本项目能够为嵌入式开发人员提供一些思路和参考,帮助大家在实际开发中更好地应用ESP32平台,开发出更加智能和实用的无线广播系统。

2201_76125393的博客 423

2026.7.9:2026.7.9最新的Ubuntu26.04安装docker-ce

本文介绍了在Ubuntu 26.04系统上安装Docker CE的完整步骤。首先需要卸载旧版本的Docker组件,然后通过设置官方仓库进行安装。具体步骤包括:更新系统、安装必要依赖、添加Docker GPG密钥、配置稳定版仓库源、安装Docker Engine及containerd。文章还提供了安装特定版本Docker的方法,并说明了如何将用户加入docker组以获取权限,最后设置Docker开机自启。整个过程详细清晰,适合在Ubuntu系统上部署Docker环境的用户参考。

拥抱具身智能,昇腾Ascend C 516

Spring Boot 文件上传下载完整指南:从基础到高级实践

本文详细介绍了Spring Boot中文件上传下载的完整实现方案,从基础的单文件操作到高级的分片上传、安全性考虑和性能优化。基础实现:掌握的基本用法高级功能:实现大文件分片上传和断点续传安全性:严格验证文件类型和内容性能优化:合理配置和存储策略选择错误处理:完善的异常处理和用户反馈在实际项目中,建议根据具体需求选择合适的存储方案,并充分考虑安全性和性能因素。随着业务发展,可以考虑迁移到专业的对象存储服务,以获得更好的可扩展性和可靠性。

爱码少年 00fly.online 的博客 2万+

uni-app - 将 base64 图片编码转为 Blob 本地文件路径(把base64类型的图片,转换成blob二进制文件流)适用于 uni-app / vue.js / JavaScript

uni-app/vue.js/JavaScript将base64转Blob,uniappapp端如何将图片的base64编码转换成File对象或Blob,uni-app/vue.js/JavaScript中拿到base64转blob对象,uniapp图片base64格式转blob格式方法,uniapp上传图片压缩转base64码与base64转图片路径,Base64/Blob/File图片文件转换,url、base64、blob相互转换方法,读取本地文件为Base64并转成B

🏆 前端领域优质创作者 1万+

在应用系统中集成文件上传下载的技术解决方案

1   概述 在SAT5.0系统应用中,文件上传下载的情况越来越多,文件类型与大小也各不相同,客户端也有多种形式(主要是C#),这就需要提出一个SAT5.0的文件上传下载解决方案,在系统内部比较完善地解决这个问题。    根据实际使用经验,在系统应用初期,绝大部分是常见办公文档文件(4M以下),采用Web Service方式即可满足需要。其优势在于一方面能与本公司在SAT5.0中采用的技术框架

mentat的专栏 2256

LLaMA Factory多卡微调的实战教程(持续更新)

本文主要介绍了LLaMA Factory多卡微调的实战教程(持续更新),希望对学习大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 配置环境 2.1 安装虚拟环境 2.2 安装依赖库 2.3 模型选型与下载 2.4 配置多卡环境 3. 运行代码 3.1 构建训练数据 3.2 修改配置文件 3.3 微调 3.3.1 zero3微调 3.3.2 启动API 3.3.3 模型测试

herosunly的博客 25万+

机器人轨迹规划——梯形速度轨迹(超详细)

机器人轨迹 这一系列轨迹教程将主要包括以下内容: 点到点轨迹(P2P) 五次多项式插值轨迹 三次多项式插值轨迹 梯形速度曲线轨迹 双S形速度曲线轨迹 多个自由度轨迹的时间同步 在线轨迹规划 多项式在线轨迹规划 梯形在线轨迹规划 双S形在线轨迹规划 非线性实时轨迹滤波 多点轨迹(Multi-point) 三次样条曲线(cubic spline) 贝赛尔曲线(Bezier Curve) B样条曲线(BSpline) 时间最优轨迹 三次样条时间最优轨迹 任意路径下的时间最优轨迹 时间

出门搔白首,若负平生志 1万+

Struts2中文件file的上传和下载

Struts2文件上传拦截器应用 4.1小节中对所有Struts2缺省定义的拦截器作了介绍。其中有个“fileUpload”拦截器,本节就针对该拦截器在开发中如何实现文件上传下载功能做一个简单说明。在正式说明之前,还需要在Web项目中导入支持文件上传下载和IO输入输出的两个jar包。它们名字为commons-fileupload-1.2.1.jar和commons-io-1.4.jar,这两个包

cpf506497746的专栏 671

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

附录2-客户端向服务端上传文件

如果使用windows系统作为服务端,需要将防火墙关掉,在这里有提到关闭防火墙的方法附录1-服务端向客户端发送文件_Suyuoa的博客-优快云博客 目录 1服务端(接收方)要做的事情 2客户端(上传方)需要做的事情 3上传文件的位置 1服务端(接收方)要做的事情 建一个项目,项目中有如下内容 main.py的内容是这样的 upload.html的内容是这样的 之后运行main.py开启服务 2客户端(上传方)需要做的事情 用浏览器访问我们IP+端...

potato123232的博客 1748

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

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

axios get/post/delete上传下载及springboot后端示例

axios get/post/delete上传下载及springboot后端示例

Myron_007的博客 1043
上一篇: 第七章 (类型转换)Type Convertion
下一篇: 附录四 长时间操作(双击制御和等待画面)
struts2
博客等级 码龄19年 885粉丝 103原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值