验证码的学习与实现

首先编写生成验证码数字以及图片的类RandomNumUtil.java。具体代码如下:

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.imageio.stream.ImageOutputStream;

public class RandomNumUtil {
	/*
	 * ByteArrayInputStream包含一个内部缓冲,存储从流中读取的字节。 
	 */
	private ByteArrayInputStream image;// 图像
	private String str;// 验证码

	private RandomNumUtil() {
		init();// 初始化各属性
	}

	public ByteArrayInputStream getImage() {
		return this.image;
	}

	public String getString() {
		return this.str;
	}

	private void init() {
		// 在内存中创建图象
		int width = 86, height = 21;
		BufferedImage image = new BufferedImage(width, height,
				BufferedImage.TYPE_INT_RGB);
		// 获取图形上下文
		Graphics g = image.getGraphics();
		// 生成随机类
		Random random = new Random();
		// 设定背景色
		g.setColor(getRandColor(200, 250));
		g.fillRect(0, 0, width, height);
		// 设定字体
		g.setFont(new Font("Times New Roman", Font.PLAIN, 18));
		// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
		g.setColor(getRandColor(160, 200));
		for (int i = 0; i < 155; i++) {
			int x = random.nextInt(width);
			int y = random.nextInt(height);
			int xl = random.nextInt(12);
			int yl = random.nextInt(12);
			g.drawLine(x, y, x + xl, y + yl);
		}
		// 取随机产生的认证码(6位数字)
		String sRand = "";
		for (int i = 0; i < 6; i++) {
			String rand = String.valueOf(random.nextInt(10));
			sRand += rand;
			// 将认证码显示到图象中
			g.setColor(new Color(20 + random.nextInt(110), 20 + random
					.nextInt(110), 20 + random.nextInt(110)));
			// 调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
			g.drawString(rand, 13 * i + 6, 16);
		}
		// 赋值验证码
		this.str = sRand;

		// 图象生效
		g.dispose();
		ByteArrayInputStream input = null;
		ByteArrayOutputStream output = new ByteArrayOutputStream();
		try {
			ImageOutputStream imageOut = ImageIO
					.createImageOutputStream(output);
			ImageIO.write(image, "JPEG", imageOut);
			imageOut.close();
			input = new ByteArrayInputStream(output.toByteArray());
		} catch (Exception e) {
			System.out.println("验证码图片产生出现错误:" + e.toString());
		}

		this.image = input;/* 赋值图像 */
	}

	/*
	 * 给定范围获得随机颜色
	 */
	private Color getRandColor(int fc, int bc) {
		Random random = new Random();
		if (fc > 255)
			fc = 255;
		if (bc > 255)
			bc = 255;
		int r = fc + random.nextInt(bc - fc);
		int g = fc + random.nextInt(bc - fc);
		int b = fc + random.nextInt(bc - fc);
		return new Color(r, g, b);
	}
}

 然后,创建具体的控制类RandomAction.java,具体代码如下:

 

import java.io.ByteArrayInputStream;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.softeye.util.RandomNumUtil;

public class RandomAction extends ActionSupport {
	private ByteArrayInputStream inputStream;

	public String execute() throws Exception {
		RandomNumUtil rdnu = new RandomNumUtil();
		this.setInputStream(rdnu.getImage());// 取得带有随机字符串的图片
		ActionContext.getContext().getSession().put("random", rdnu.getString());// 取得随机字符串放入HttpSession
		return SUCCESS;
	}

	public void setInputStream(ByteArrayInputStream inputStream) {
		this.inputStream = inputStream;
	}

	public ByteArrayInputStream getInputStream() {
		return inputStream;
	}
}

 再然后,对struts.xml中RandomAction.进行配置,具体代码如下:

<!-- Random验证码 -->
<action name="rand" class="com.softeye.action.login.RandomAction">   
      <result type="stream">   
           <param name="contentType">image/jpeg</param>   
           <param name="inputName">inputStream</param>   
       </result>
 </action>

 

最后,在注册页面添加验证码功能:
其一:在head标签内添加JavaScript,具体代码如下:

<script type="text/javascript">    
function changeValidateCode(obj) {    
//获取当前的时间作为参数,无具体意义    
var timenow = new Date().getTime();    
//每次请求需要一个不同的参数,否则可能会返回同样的验证码    
//这和浏览器的缓存机制有关系,也可以把页面设置为不缓存,这样就不用这个参数了。    
obj.src="<%=path%>/user/rand.action?d="+timenow;    
}    
</script> 

 其二,在页面相应位置设计验证码,例如:

 <tr>
         <th>
                <span>*</span>验证码:
          </th>
          <td>
                 <input id="" name="rand" value="" type="text" />
          <span><img src="<%=path %>/user/rand.action"  onclick="changeValsidateCode(this)" title="点击图片刷新验证码"/>
            </span>
          </td>
 </tr>

 

至此,一个防止批量注册的验证码功能就实现了。 

使用深度学习实现验证码识别系统 首先,我们需要收集大量的验证码样本,并对其进行预处理。预处理步骤包括图像灰度化、大小调整和数据增强。我们还需要将每个验证码图像与其对应的标签进行配对。在本文中,我们将介绍如何使用深度学习技术构建一个验证码识别系统,该系统可以有效地识别出包含数字和英文字母的验证码图像。我们将使用卷积神经网络(CNN)作为我们的模型,因为CNN在图像识别方面表现出色。接下来,我们将使用准备好的数据集对模型进行训练,并评估其性能。最后,我们可以使用训练好的模型来识别新的验证码图像。更多内容联系1436423940。 阅读详情

相关推荐

基于深度学习的验证码识别方法设计与实现

自人工智能兴盛以来,关于深度学习的研究成果如浪花涌现,深度学习在人工智能中的地位也越来越重要。深度学习在对数据进行分类上的优越性能是普通网络无法比拟的,卷积神经网络也因众多研究成果而广受重视,自身也在图像处理领域有着得天独厚的优势。验证码字符的识别分类就是深度学习的一个经典应用。本文在参考众多文献的基础上,深入理解深度学习和卷积网络基本理论,运用这些理论来构建卷积神经网络,解决验证码识别的问题。验证码数据集来源有二:一为通过编写程序生成与常见验证码类似的验证码图像;二是到网站上进行人工采集。

m0_73485263的博客 2320

登陆验证码(Servlet实现)

[align=center][size=x-large][b][color=red]登陆验证码(Servlet实现)[/color][/b][/size][/align] [size=medium][color=red][b]1.前台登陆界面:[/b][/color][/size][code="java"] 实训管理系统 function chan...

mohaiyong的专栏 192

使用Python和机器学习实现验证码识别

收集一定数量的验证码样本作为训练数据,包括不同的字符和背景。对收集到的验证码图片进行预处理,包括灰度化、二值化、去噪等操作,以便后续的特征提取和模型训练。从预处理后的图片中提取特征,例如字符的轮廓、像素分布等特征,以便机器学习模型进行学习和识别。使用机器学习模型对提取的特征进行训练,常用的模型包括支持向量机(SVM)、神经网络等。# 自行实现特征提取算法,例如提取字符的轮廓、像素分布等特征。使用测试集对训练好的模型进行评估,评估模型的准确率和性能。更多内容联系1436423940。# 加载和预处理数据。

rrrrroottttttt的博客 466

验证码的原理、作用及实现

验证码能有效阻止恶意登录与注册, 这里主要是验证码的相关原理及操作实现。所用知识为 javaweb 的 jsp servlet xml 及 java 基础知识。

niaonao 6万+

基于深度学习与Selenium的12306验证码破解及自动化登录爬虫实现

本文详细探讨了如何利用Python结合深度学习技术和Selenium自动化工具破解12306网站的复杂验证码系统,实现自动化登录功能。文章首先分析了12306验证码系统的特点和破解难点,然后介绍了基于卷积神经网络(CNN)的图像识别方法和Selenium的自动化操作技术,最后给出了完整的实现代码和优化方案。本方案不仅适用于12306网站,其技术思路也可应用于其他具有类似验证机制的网站。关键词:Python爬虫;12306;验证码破解;深度学习;Selenium;自动化登录;CNN;图像识别。

2201_76125261的博客 798

Delphi环境下的自学习验证码识别实现

验证码识别技术是当今网络安全领域中不可或缺的一环,尤其是在自动化测试、用户登录验证等方面。Delphi作为一款功能强大的集成开发环境,凭借其简洁高效的编程特性,在验证码识别领域也逐渐展现其独有的优势。本章将简要介绍Delphi在验证码识别中的应用以及其技术特点。在Delphi中实现验证码识别,首先需要掌握图像处理的基本知识,比如图像的加载、预处理、特征提取等。随后,通过模式匹配技术识别验证码中的字符,并通过自学习机制持续优化识别准确率。

weixin_36474001的博客 401

Web开发中的验证码图片的生成-基于Java的实现

    大家在使用Web网站的时候,经常会发现有个验证码需要输入,这是验证码用来做什么事情的呢?其实很简单,验证码图片的作用是让用户通过肉眼来观察图片,把图片中的内容填写到输入框中,在登录的时候,如果验证码内容输入不正确,就算你的登录用户名和密码都正确也不行,这样可以很好的防治有人用程序不停的猜测别人的帐号好密码,因为程序难以从一个图片中提取验证码的内容,从难以使用程序来进行重复猜测,这样只是凭人

陈宝峰的专栏 6107

基于深度学习的12306图片验证码识别系统设计与实现

这场关于12306验证码的深度拆解,并非要鼓吹自动化攻破,而是揭示一个现实:任何基于静态模式的安全机制,终将面临AI的降维打击。而真正的安全,从来不是靠一道题难住机器,而是构建多层次、动态演进的防御体系。作为开发者,我们要做的不是阻止研究,而是欢迎更多人用技术的眼光审视现有系统——因为只有被充分攻击过的防御,才是真正可信的。下次当你再次面对那个熟悉的九宫格时,不妨一笑:🤖 “我知道你能看懂我,但我也不怕你看懂。这才是人机共存的智慧所在。🔚 文章完。本文共计约。

weixin_32999557的博客 1524

利用深度学习实现验证码识别-1

验证码(CAPTCHA)是网络安全中常用的一种机制,用于区分人类用户和自动化程序。然而,随着人工智能技术的发展,计算机视觉和深度学习算法在识别验证码方面取得了显著进展。本文将介绍如何使用PyTorch框架实现一个深度学习模型来识别简单的数字验证码。

四楼没电梯的专栏 1568

基于机器学习的验证码识别平台设计与实现

鉴于目前并没有找到官方统一的验证码标准库, 并且经过大量调查, 不少网站验证码生 成都基于 Captcha 库, 因此将 Captcha 验证码生成算法(即第三方库)作为理论与实践的数 据标准。由于在制作时考虑到日后神经网络训练所需配置高低的问题, 所以验证码生成的数 据只由数字组成,这能降低开发和训练所带来的高昂成本。 验证码生成不仅需要带有噪点、干扰线、以及形状变化等特点,同时在同一张图片中还 需要具备不同的颜色, 以保证其真实性和难度, 做到能人眼识别的同时也能让机器识别其字 符码,并且尽可能具有标准

学习中 2651

Mann-Kendall检验全解析:从原理到11种变体及Python实现

本文全面解析Mann-Kendall检验,从基础原理到应对自相关、季节性等复杂数据的11种关键变体,如Hamed-Rao修正、季节性MK和趋势自由预白化(TFPW)。详细阐述各方法的适用场景与数学原理,并提供完整的Python实战代码,帮助研究者针对不同数据特性选择最稳健的趋势分析方法。

weixin_29050271的博客 457

Jfinal学习心得之验证码的几种实现方法

原文地址:https://www.hiai.top/archives/251.html 第一种方法: 在xxxControl 控制器下面新建返回验证码的方法: public void captcha() { renderCaptcha(); } 在前台页面中这样调用: <img title="点击刷新" class="captcha" src="/login/c...

拾光博客 1258

别再只看K线了!用Python自制筹码分布图,可视化Winner函数帮你判断支撑压力

本文详细介绍了如何用Python自制筹码分布图,通过数据清洗、算法实现和动态可视化,帮助投资者更准确地判断股票支撑压力位。文章重点讲解了Winner函数的应用,结合筹码分布与交易策略,提升交易决策的精准度。

weixin_42520796的博客 313

Flutter 实现验证码输入框学习

学习flutter代码 实现一个用于输入验证码的自定义组件,它允许用户输入固定长度的验证码,并在输入完成时触发回调。

且听真言 1405

AT32串口打印全攻略:从零搭建到printf重定向(GCC版)

本文详细介绍了在GCC编译环境下为AT32系列MCU实现串口打印与printf重定向的完整方案。针对从Keil MDK迁移到GCC工具链时常见的串口无输出问题,文章从环境搭建、USART配置入手,重点剖析了GCC下printf重定向的核心原理——通过重写_write()函数,并提供了经过验证的代码实现、常见问题排查及性能优化建议。

weixin_29163797的博客 263

【ESP32-IDF】I2S音频协议实战:从PDM麦克风到PCM扬声器的全链路解析

本文深入解析ESP32-S3的I2S音频协议,从PDM麦克风采集到PCM扬声器输出的全链路实现。详细介绍了硬件PDM转PCM、Standard模式配置及混合模式协同工作,提供实战代码与性能优化建议,助力开发者高效完成嵌入式音频项目开发。

pea55的博客 886

【毕业设计】深度学习验证码识别算法研究与实现 - python 机器视觉

🔥 Hi,大家好,这里是丹成学长的毕设系列文章!🔥 对毕设有任何疑问都可以问学长哦!这两年开始,各个学校对毕设的要求越来越高,难度也越来越大… 毕业设计耗费时间,耗费精力,甚至有些题目即使是专业的老师或者硕士生也需要很长时间,所以一旦发现问题,一定要提前准备,避免到后面措手不及,草草了事。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的新项目是🚩基于机器视觉的12306验证码识别🥇学长这里给一个题目综合评分(每项满分5分)难度系数:4分工作量:4分。

caxiou的博客 1755

一文看懂—Agent多智能体协作

多智能体协作已成为AI应对复杂任务的关键范式,通过模拟人类团队分工,实现专业化、高效化和纠错能力。本文系统阐述了多智能体协作的核心概念(智能体分工、工作流编排、工具使用)、与产品规划的关联(任务拆解、错误处理、组织架构设计),以及典型应用场景(报告生成、客服工单、学习规划)。同时剖析了常见陷阱(循环卡死、信息失真、成本失控)及解决方案,并提供了实用工具模板(角色定义卡、工作流画布、成本仪表盘)。最后通过市场竞品分析和旅行规划两个实战案例,展示了多智能体协作的实际价值。该技术正推动AI从单点智能迈向系统智能,

lee006006的博客 1033

【Python学习】用Python实现验证码识别

这篇主要写的就是识图验证码,识别的是简单的验证码,要想让识别率更高,识别的更加准确就需要花很多的精力去训练自己的字体库。

m0_75067629的博客 3501

⭐⭐⭐全网最详细YOLOv8教程,从环境配置到自己训练,再到数据集的制作,包的各位⭐⭐⭐

问题原因:当你“pip install ultralytics” 时,torch和torchvision会作为它的依赖一起安装了,当执行“pip install torch torchvision torchaudio --index-url。”时,会卸载torch,然后再安装torch+cuda版本,但是不会自动卸载torchvision已有版本,然后再安装torchvision+cuda版本。🎉🎉🎉恭喜各位道友,已经可以训练模型了,现在就是制作自己的数据集,所谓申神通秘境,随心所欲,万物皆可识别也

weixin_74840239的博客 7492

【雕爷学编程】MicroPython手册之 Teensy 4.1 实时时钟 (RTC)

在类的初始化函数中,定义了用于控制I2C总线的i2c对象和RTC模块的I2C地址。接着,使用该引脚初始化了一个Pin对象。它还提供了8个串口,3个SPI端口,3个I2C端口,2个I2S/TDM数字音频端口,3个CAN总线(其中一个支持CAN FD),以及一个SDIO(4位数据)原生SD卡端口12。2、内存:Teensy 4.1配备了1024 KB的RAM(其中512 KB是紧密耦合的),8 MB的Flash(其中64 KB用于恢复和EEPROM模拟),以及两个位置可以选择添加更多的QSPI内存芯片。

雕爷学编程 575

机器学习-基于卷积神经网络验证码的识别(python实现)

机器学习之验证码识别

weixin_53284122的博客 1万+

闲鱼爬虫实战:模拟手机端破解反爬策略,爬取指定商品搜索数据,爬取闲鱼搜索指定商品(需手机端模拟)o 技术点:抓包分析、cookie与token

技术点作用抓取手机 App 请求,分析 API 结构、Header、参数加密情况requestsPython 中最常用的 HTTP 库,用于发送模拟请求Session 对象自动管理 Cookie,保持会话User-Agent & 设备特征模拟手机型号、系统版本,绕过服务端检测闲鱼部分接口存在签名,需要逆向或复用有效 Token多线程/异步提高爬取效率(需节制,避免封 IP)解析 HTML 或 JSON 数据注意:闲鱼的接口加密程度中等偏上,部分接口存在动态签名(如x-signx-mini-wua。

2201_76125261的博客 712

SpringBoot+Shiro学习之“记住我”和“GIF验证码”功能的实现

如题

qq_20954959的博客 2330

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

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

基于深度学习的图形验证码自动识别方法研究与实现

图标型验证码自动识别系统,采用 YOLO 系列进行图标定位,ResNet 或 MobileNet 进行图标分类,序列场景采用 CRNN 配合 CTC Loss 完成时序识别,数据层面采用合成样本和数据增强策略提升泛化能力,对抗样本生成用于鲁棒性测试,目标提升识别准确率和实时性,应对形变、遮挡與噪声干扰。适合的专业包括:计算机科学与技术、数据科学与大数据、人工智能、大数据技术、统计学、信息安全、软件工程、智能科学与技术、微电子科学与工程、计算机视觉 的同学做毕业设计参考,有毕设需求疑问同学可以咨询。

Hai_Lang_IT的博客 1931

visio安装包

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

上一篇: SSH网站分页技术的使用
下一篇: IE浏览器的“自作聪明”
Mr菜
博客等级 码龄15年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值