MS SQL Server 的安全配置

【数据库SQL】SQL SERVER安全管理 1、服务器身份认证 共三种,还有一种是混合认证模式,这些是在安装的时候进行设置的。 2、数据库认证 以数据库用户为依据,来决定访问用户的操作权限。 3、服务器身份验证模式的更改 单击确定即可,然后出现下面界面 这个时候两种验证方式都可了。 4、创建具有特定权限的系统用户 然后点击确定,即可用新创建的用户进行登录了!! 5、w... 阅读详情
SQL Server 2000的安全配置在进行SQL Server 2000数据库的安全配置之前,首先你必须对操作系统进行安全配置,保证你的操作系统处于安全状态。然后对你要使用的操作数据库软件(程序)进行必要的安全审核,比如对ASP、PHP等脚本,这是很多基于数据库的WEB应用常出现的安全隐患,对于脚本主要是一个过滤问题,需要过滤一些类似 , ‘ ; @ / 等字符,防止破坏者构造恶意的SQL语句。接着,安装SQL Server2000后请打上现在的最新补丁(MS SQL 2005 B1版已经有下载的了,但这不影响有关安全配置方面的内容) SP3a。

    1、使用安全的密码策略

SQL Server 2000的安全配置在进行SQL Server 2000数据库的安全配置之前,首先你必须对操作系统进行安全配置,保证你的操作系统处于安全状态。然后对你要使用的操作数据库软件(程序)进行必要的安全审核,比如对ASP、PHP等脚本,这是很多基于数据库的WEB应用常出现的安全隐患,对于脚本主要是一个过滤问题,需要过滤一些类似 , ‘ ; @ / 等字符,防止破坏者构造恶意的SQL语句。接着,安装SQL Server2000后请打上现在的最新补丁(MS SQL 2005 B1版已经有下载的了,但这不影响有关安全配置方面的内容) SP3a。

    1、使用安全的密码策略

  我们把密码策略摆在所有安全配置的第一步,请注意,很多数据库帐号的密码过于简单,这跟系统密码过于简单是一个道理。对于sa更应该注意,同时不要让sa帐号的密码写于应用程序或者脚本中。健壮的密码是安全的第一步!SQL Server2000安装的时候,如果是使用混合模式,那么就需要输入sa的密码,除非你确认必须使用空密码。这比以前的版本有所改进。同时养成定期修改密码的好习惯。数据库管理员应该定期查看是否有不符合密码要求的帐号。

    比如使用下面的SQL语句:

    Use master

    Select name,Password from syslogins where password is null

  2、使用安全的帐号策略

  由于SQL Server不能更改sa用户名称,也不能删除这个超级用户,所以,我们必须对这个帐号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa帐号,只有当没有其它方法登录到 SQL Server 实例(例如,当其它系统管理员不可用或忘记了密码)时才使用 sa。建议数据库管理员新建立个拥有与sa一样权限的超级用户来管理数据库。安全的帐号策略还包括不要让管理员权限的帐号泛滥。

  SQL Server的认证模式有Windows身份认证和混合身份认证两种。如果数据库管理员不希望操作系统管理员来通过操作系统登陆来接触数据库的话,可以在帐号管理中把系统帐号“BUILTIN/Administrators”删除。不过这样做的结果是一旦sa帐号忘记密码的话,就没有办法来恢复了。很多主机使用数据库应用只是用来做查询、修改等简单功能的,请根据实际需要分配帐号,并赋予仅仅能够满足应用要求和需要的权限。比如,只要查询功能的,那么就使用一个简单的public帐号能够select就可以了。

  3、加强数据库日志的记录

  审核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,这样在数据库系统和操作系统日志里面,就详细记录了所有帐号的登录事件。请定期查看SQL Server日志检查是否有可疑的登录事件发生,或者使用DOS命令。findstr /C:"登录" d:/Microsoft SQL Server/MSSQL/LOG/*.*

  4、管理扩展存储过程

  对存储过程进行大手术,并且对帐号调用扩展存储过程的权限要慎重。其实在多数应用中根本用不到多少系统的存储过程,而SQL Server的这么多系统存储过程只是用来适应广大用户需求的,所以请删除不必要的存储过程,因为有些系统的存储过程能很容易地被人利用起来提升权限或进行破坏。如果你不需要扩展存储过程xp_cmdshell请把它去掉。使用这个SQL语句:

  use master

  sp_dropextendedproc 'xp_cmdshell'

  xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果你需要这个存储过程,请用这个语句也可以恢复过来。

  sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'

  如果你不需要请丢弃OLE自动存储过程(会造成管理器中的某些特征不能使用),

  这些过程包括如下:

  Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty

  Sp_OAMethod Sp_OASetProperty Sp_OAStop

  去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码来,如下:

  Xp_regaddmultistring Xp_regdeletekey Xp_regdelete value

  Xp_regenum values Xp_regread Xp_regremovemultistring

  Xp_regwrite

  还有一些其他的扩展存储过程,你也最好检查检查。在处理存储过程的时候,请确认一下,避免造成对数据库或应用程序的伤害。

  5、使用协议加密

  SQL Server 2000使用的Tabular Data Stream协议来进行网络数据交换,如果不加密的话,所有的网络传输都是明文的,包括密码、数据库内容等等,这是一个很大的安全威胁。能被人在网络中截获到他们需要的东西,包括数据库帐号和密码。所以,在条件容许情况下,最好使用SSL来加密协议,当然,你需要一个证书来支持。

  6、不要让人随便探测到你的TCP/IP端口

  默认情况下,SQL Server使用1433端口监听,很多人都说SQL Server配置的时候要把这个端口改变,这样别人就不能很容易地知道使用的什么端口了。可惜,通过微软未公开的1434端口的UDP探测可以很容易知道SQL Server使用的什么TCP/IP端口了。不过微软还是考虑到了这个问题,毕竟公开而且开放的端口会引起不必要的麻烦。在实例属性中选择TCP/IP协议的属性。选择隐藏 SQL Server 实例。如果隐藏了 SQL Server 实例,则将禁止对试图枚举网络上现有的 SQL Server 实例的客户端所发出的广播作出响应。这样,别人就不能用1434来探测你的TCP/IP端口了(除非用Port Scan)。

  7、修改TCP/IP使用的端口

  请在上一步配置的基础上,更改原默认的1433端口。在实例属性中选择网络配置中的TCP/IP协议的属性,将TCP/IP使用的默认端口变为其他端口.

  9、拒绝来自1434端口的探测

  由于1434端口探测没有限制,能够被别人探测到一些数据库信息,而且还可能遭到DOS攻击让数据库服务器的CPU负荷增大,所以对Windows 2000操作系统来说,在IPSec过滤拒绝掉1434端口的UDP通讯,可以尽可能地隐藏你的SQL Server。

  10、对网络连接进行IP限制

  SQL Server 2000数据库系统本身没有提供网络连接的安全解决办法,但是Windows 2000提供了这样的安全机制。使用操作系统自己的IPSec可以实现IP数据包的安全性。请对IP连接进行限制,只保证自己的IP能够访问,也拒绝其他IP进行的端口连接,把来自网络上的安全威胁进行有效的控制。关于IPSec的使用请参看: http://www.microsoft.com/china/technet/security/ipsecloc.asp

  上面主要介绍的一些SQL Server的安全配置,经过以上的配置,可以让SQL Server本身具备足够的安全防范能力。当然,更主要的还是要加强内部的安全控制和管理员的安全培训,而且安全性问题是一个长期的解决过程,还需要以后进行更多的安全维护。
SQLServer审计功能配置 SQL Server审计功能(Audit)是SQL Server 2008之后才有的功能,审计(Audit)用于追踪和记录SQL Server实例,或者单个数据库中发生的事件(Event),审计运作的机制是通过捕获事件(Event),把事件包含的信息写入到事件日志(Event Log)或审计文件(Audit File)中,为review提供最真实详细的数据。Audit都需要创建一个实例级的“SQL Server审核”,然后可以创建从属于它“服务器审核规范”和“数据库审核规范”。 阅读详情

相关推荐

使用freetds库连接MS SQL SERVER

  1       概述在linux下连接MSSQL是一件很痛苦的事,因为微软同志没有提供任何接口给开发人员,还好,MSSQL是从Sybase衍生出来的,FreeTDS是一个数据库底层的驱动程序,用freetds的库进行开发是一件很方便的事。freetds可以连接sybase和ms sql server数据库。2       安装,配置,测试官方网站:http://www.free

百事乐 3548

SQL Server 审计功能-记录所有的操作记录

SQL Server 审计-记录所有的操作记录说到审计这个话题,相信作为一个企业管理员都知道,比如一般作为一个AD管理员的话,一般都会通过Policy开启审计功能,记录一些自定义的事务日志。对于SQL Server来说,审计也是一样的,SQL Server审计对象收集单个实例的服务器或数据库级的动作和行为监控组。 审计是在SQL Server实例级。 可以有多个审计/ SQL...

weixin_33757911的博客 2080

MS SQL Server 实战 统计与汇总重复记录

如图可以看出,统计汇总结果清晰的反映出了重复记录的情况,即 count(title)>1 的 ct 字段值,值大于1 的表示该题目出现的个数。另外命令结果增加了4个行,包括单选题统计共 248 题,多选题统计共 113 题,判断题统计共 293 题,总数统计共 654 题。主要是通过 case when 语句对 title 字段进行判断 ,为NULL值的表示汇总行,则进行 isnull(etype,‘总数’)+‘统计情况:’ 的字符串拼接,etype字段为 NULL 值的表示总数的统计行。

m0_74824661的博客 773

SQL Server 审计 第一篇:介绍(Audit)

SQL Server 审计系列: SQL Server 审计 第一篇:介绍(Audit) SQL Server 审计 第二篇: 创建审计 SQL Server 审计 第三篇:查看审计数据 审计(Audit)用于追踪和记录SQL Server实例,或者单个数据库中发生的事件(Event),审计运作的机制是通过捕获事件(Event),把事件包含的信息写入到事件日志(Event Log)或审计文件...

悦光阴的博客 3430

Druid连接Ms SQL Server报地址端口被占用错误

今天部署项目遇到一个大坑,调试了一天,最后终于解决。项目开发框架:spring boot应用服务器环境:windows server 2012数据库环境:MS SQL server 2014 端口:1444连接池:druid症状:连接数据库报地址端口冲突com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to

小李专栏 2634

MSSQL SERVER安全加固配置步骤

MSSQL SERVER安全加固配置步骤。 各种安全设置, 图片和文字,每一步详细说明。微软数据库专家撰写。

SQL Server角色权限分配

在企业中的数据库,常常拥有专门的服务器在存储,给予不同的数据库管理员以操作不同的数据库及数据表等操作,并对各个表有增\删\改\查等操作,下面来讲讲权限的分配问题: 1\以管理员方式登录进入数据库,点“安全性”——右击“登录名”——“新建登录名”; 2\进入“常规”项:输入“登录名”——选择“SQL Server身份验证”——输入密码——选择“默认数据库”——语言可选“Simplified Ch

仲权的专栏 3344

sql server 2000安装与配置

sql server 2000安装与配置 详细讲解过程

从IIS到SQL Server数据库安全

 来源: 风闪网络学院从codered到nimda等,一大堆蠕虫把原来需要人工利用的漏洞都变成了程序自动利用了,大家还想去手工操作这些IIS漏洞么?让我们调整重心,去看看服务器常用的数据库吧。 一般网站都是基于数据库的,特别是ASP、PHP、JSP这样的用数据库来动态显示的网站。很多网站可能多注意的是操作系统的漏洞,但是对数据库和这些脚本的安全总是忽略,也没有太多注意。 从最比较普遍的

| 活著已是悲劇 ㄖ 生存亦是惡意 | 941

《Swin-Unet: 类Unet的纯Transformer架构用于医学图像分割》学习笔记

近年来,卷积神经网络(CNN)在医学图像分析领域取得了重要进展。尤其是基于U形架构和跳跃连接的深度神经网络广泛应用于各种医学图像任务。然而,尽管CNN表现优异,但由于卷积操作的局部性,其难以很好地学习全局和长距离语义信息的交互。在本文中,我们提出了Swin-Unet,一种用于医学图像分割的类Unet纯Transformer模型。被切分为Token的图像块输入到基于Transformer的U形编码器-解码器架构中,通过跳跃连接实现局部和全局语义特征的学习。

学无止境。 5549

【AI Infra】【RLHF框架】VeRL中WorkerGroup与Ray资源调度的协同机制剖析

本文深入剖析了VeRL框架中WorkerGroup与Ray资源调度的协同机制。通过解析Ray Placement Group的资源抽象和VeRL的RayResourcePool封装,详细阐述了WorkerGroup如何与底层资源精确绑定,并实现RLHF训练中异构、多阶段任务的灵活资源分配与动态调整,为大规模分布式强化学习训练提供了高效解决方案。

weixin_29204205的博客 391

针对MS SQL SERVER的安全防御方案 | From: hoky.org

针对MS SQL SERVER的安全防御方案我将整个防御方案分为两个部分:防御MS SQL SERVER服务本身的漏洞解决方案、防止SQL注入脚本攻击的解决方案。1)防御MS SQL SERVER服务本身的漏洞解决方案①使用网络防火墙过滤非本地对MS SQL SERVER的服务请求。最简单的方法就是在MS SQL SERVER本地主机上安全如天网之类的个人防火墙,添加下面的规则群:规则一:允许本机

空虚浪子心的blog 743

机器人开发路线

通过这个路线图,你可以在6个月内完成从原型到试产的全流程。建议初期采用敏捷开发模式,每两周迭代一个核心功能模块。在硬件集成遇到瓶颈时,推荐参考。

woody218的博客 745

SQL Server2000数据库的安全配置

SQL Server 2000的安全配置   数据库是电子商务、金融以及ERP系统的基础,通常都保存着重要的商业伙伴和客户信息。大多数企业、组织以及政府部门的电子数据都保存在各种数据库中,他们用这些数据库保存一些个人资料,比如员工薪水、个人资料等等。数据库服务器还掌握着敏感的金融数据。包括交易记录、商业事务和帐号数据,战略上的或者专业的信息,比如专利和工程数据,甚至市场计划等等应该保护起来防止竞争

Rocky的专栏 1465

Windows下Anaconda换清华镜像源最全指南(含常见问题解决)

本文提供了一份详尽的Windows系统下Anaconda配置清华镜像源的完整指南。针对网络下载缓慢的痛点,文章详细对比了命令行添加与直接编辑配置文件两种主流方法,并重点解决了配置过程中常见的文件缺失、安装失败、环境求解缓慢等疑难问题,帮助用户一劳永逸地提升包管理效率。

brandy的博客 337

MPC-CBF 控制原理详解

假设系统满足如下离散时间动力学模型xt1fxtutxt∈Xut∈Uxt1​fxt​ut​xt​∈Xut​∈Uxtx_txt​:状态变量,定义域为可行状态集X⊆RnX⊆Rnutu_tut​:控制输入,定义域为控制约束集U⊆RmU⊆Rm系统需满足安全约束,由如下控制障碍函数(CBF)hX→RhX→RCx∈X∣hx≥0C:=x∈X∣hx≥。

m0_54691290的博客 1184

MS SQL Server 实战 排查多列之间的值是否重复

在日常的应用中,排查列重复记录是经常遇到的一个问题,但某些需求下,需要我们排查一组列之间是否有重复值的情况。比如我们有一组题库数据,主要包括题目和选项字段(如单选选择项或多选选择项),一个合理的数据存储应该保证这些选项列之间不应该出现重复项目数据,比如选项A不应该和选项B的值重复,选项B不应该和选项C的值重复,以此穷举类推,以保证这些选项之间不会出现重复的值。本文将介绍如何利用group by 、having 语句来实现这一需求。

初九之潜龙勿用 3831

CAD图纸智能搜索三大突破:图纸秒搜技术、相似度匹配与AI语义搜索

CAD图纸作为核心资产,长期面临管理难题:传统全文检索需逐张打开图纸人工查找,效率低下;相似图纸匹配依赖人工比对,误差率高;非专业人员难以通过模糊描述精准定位图纸。针对这些问题,唯杰地图推出三项智能解决方案:一是基于现代化索引引擎的​​全文搜索​​,支持秒级检索图纸内的文字、图层、块名称等,并可多条件组合查询;二是​​相似度搜索​​,通过SIFT算法和深度学习提取几何特征与拓扑结构,实现高精度匹配;三是​​AI语义搜索​​,利用大模型解析自然语言指令(如“查找半径为10的红色圆”),直接定位目标图形。

vjmap的博客 1870

怎样将DataGrip连接到MS SQL Server?

DataGrip支持几乎所有主流的关系数据库产品,如DB2、Derby、H2、MySQL、Oracle、PostgreSQL、SQL Server、Sqllite及Sybase等,并且提供了简单易用的界面,允许您以不同模式执行查询,在本篇文章中,我们介绍的是将DataGrip连接到MS SQL Server的方法。 JetBrAIns DataGrip教程 DataGrip可以涵盖SQL开发人...

weixin_30699235的博客 1952

避开这5个坑!用MATLAB做核密度估计时90%人会犯的错误

本文详细解析了使用MATLAB进行核密度估计时常见的5个高频错误,包括三维数据可视化、带宽参数优化、大数据量处理、核函数选择及版本兼容性问题。特别针对核密度估计中的关键参数带宽(bandwidth)提供了数据驱动的优化策略,帮助用户提升分析精度与效率。

jenkins8butler的博客 277

Open3D (C++)球旋转算法(BPA)三维建模

球旋转算法用于点云三维建模的C++代码实现。

点云侠的博客 1771

MS SQL Server数据库原理

MS SQL Server数据库原理 一、 数据库基本概念 数据库系统(DBS):采用数据库技术的计算机系统,由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)和软件平台(软件)五部分构成的运行实体。 数据库管理系统:位于用户与操作之间的一层数据管理软件。 关系数据库:支持关系模型的数据库。关系模型有数据结构(二维表)、关系操作集合(关系代数、关系演算、二者结合特点...

qq_43707810的博客 3522

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

STLG_02_01_MS SQL - SQL和MS SQL Server概要

MS SQL Server和SQL概要介绍

cdlislxjt的博客 1245

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

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

PHP5.4 如何连接MS Sql Server

安装好xampp后,如果你的php需要访问ms sqlserver数据库,就需要这个步骤,否则会出错: Fatal error: Call to undefined function sqlsrv_connect() in D:\appServ windows系统下,PHP5.3以上的版本已经不支持mssql扩展,所以如果你需要和sql server通信需要到htt

爱飞的蒲公英 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: 快快丢掉ASP遗留的各大类陈旧习惯
下一篇: MSN Messenger 不能登录的解决方案"0x81000370错误"
freexploit
博客等级 码龄22年 315粉丝 778原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值