- 博客(22)
- 收藏
- 关注
原创 深度学习-深度卷积神经网络AlexNet
由于数据集还是采用之前的Fashion-MNIST数据集,在模型的输入层通道数从原来的3改为1,且最后一层输出长度从原来的1000修改为10。# 这里使用一个11*11的更大窗口来捕捉对象。# 同时,步幅为4,以减少输出的高度和宽度。# 另外,输出通道的数目远大于LeNet# 减小卷积窗口,使用填充为2来使得输入与输出的高和宽一致,且增大输出通道数# 使用三个连续的卷积层和较小的卷积窗口。# 除了最后的卷积层,输出通道的数量进一步增加。# 在前两个卷积层之后,汇聚层不用于减少输入的高度和宽度。
2025-11-06 19:36:40
829
原创 深度学习-卷积神经网络基础
卷积神经网络与多层感知机主要的区别就在于它能够通过卷积操作保留高维张量中特征值之间的位置信息。例如,图像中的一块局部区域如果在多层感知机中会被展平映射到一维张量中相隔较远的多个小段,且区域大小不同多个小段的间隔大小也不一样,如果这块区域包含我们想要的目标也很难被机器学习到。但在卷积神经网络中我们保留了图像的二维结构,采用合适比例将图像中的各个区域进行“浓缩”提取该区域中的特征,这种方式符合人眼识别事物的整体性局部性,也便于机器精准判断每个小区域的特征分布情况。
2025-10-21 20:04:24
740
原创 深度学习-Kaggle实战1(房价预测)
定义一个函数,返回单层的线性模型。该模型训练时采用均方误差损失。return net定义误差评价函数。由于我们更关心相对误差,所以根据以下公式得到函数# 为了在取对数时进一步稳定该值,将小于1的值设置为1定义训练函数。与前面的SGD优化器不同,这里使用了Adam优化器,主要区别在于它具有自适应功能,对初始学习率不那么敏感。注意,这里训练中用的均方误差作为损失,而评估时用的对数均方误差根作为损失,因为前者更关注损失函数的可微性、平滑性、数值稳定性等,而后者更注重评价指标的业务可解释性、与实际问题的相关性等。
2025-10-08 21:21:02
1107
原创 深度学习-数值稳定性、分布偏移
本章包含两个部分,分别解决数值稳定性问题和分布偏移问题。由于书中这两个部分均为理论没有实验,这里就先只进行简单分析,将两部分内容合并编写。
2025-10-06 09:34:41
973
原创 深度学习-避免过拟合(模型选择、权重衰减、暂退法)
过拟合是深度学习中非常常见的问题,即模型高度拟合训练数据而失去了泛化能力,导致其在测试数据上表现不尽人意。过拟合的主要原因来自于模型复杂度过高与训练数据不足,本章将从3个方面讲解如何尽量避免过拟合。
2025-09-22 20:44:07
798
原创 深度学习-多层感知机
在线性模型中我们依次添加了四个模块:nn.Flatten()-展平,nn.Linear(784,256)-全连接层,nn.ReLU()-激活函数,nn.Linear(256,10)-全连接层。然后我们使用了和上一章一样的方法初始化全连接层的参数。nn.ReLU(),其中ReLU激活函数会将所有为负的输入变成0,即修正线性单元ReLUH = relu(X@W1 + b1) # 这里“@”代表矩阵乘法。
2025-09-13 21:17:22
289
原创 深度学习-softmax回归
我们同样使用 nn.Sequential类用来实现的顺序连接模型,首先放入一个展平层nn.Flatten(),将二维灰度图像降维,原来28*28的二维张量就变成长度为784的一维张量。接下来连接一个线性层,由于输入已经在上一层展平,所以线性层的输入长度为784,又由于我们规定结果分为10个类,所以线性层的输出长度为10。在模型初始化时,这里用了方法 model.apply() ,其会递归地遍历model中的每一个模块使其执行传入的方法。
2025-09-07 21:58:41
1056
原创 深度学习-线性回归
nn.Sequential类用来实现简单的顺序连接模型,我们可以向其中传入若干个模块,它们会顺序连接起来构成一个顺序模型。这里只传入了一个线性层nn.Linear(2, 1),即输入长度为2输出长度为1的全连接层。模型net只有这一层,存放在net[0]中。全连接层可以设置的参数有权重weight和偏置bias,这里分别将weight置均值0标准差0.01的正态分布,将bias置为全0。在模型计算时会将每个元素乘上每条边对应的weight,加上每个输出位置对应的bias,最后累加到对应的输出位置。
2025-08-31 02:18:26
864
原创 CTF自学-SSRF(2)
首先还是用十分方便的file协议看源码这里的index.php其实和SSRF第一题内网访问的一样,之前忘记分析了,这里简单解释一下关键代码含义。接下来看flag.php源码,可以看到与第一题内网访问不同的是这次的flag.php不仅对来访的ip进行检查,还会检查POST请求包中的key的值是否正确,而key的正确答案显然就在下面debug注释中嵌入的php代码里,通过http协议访问该文件即可看到php执行结果获取key。
2025-07-17 11:49:38
261
原创 CTF自学-SSRF(1)
SSRF(Server-Side Request Forgery)即服务端请求伪造,应用的场景通常是在已经获取某台服务器的漏洞后,利用这台服务器发送请求获取同一内网环境中其他服务器上的资源(或者本服务器上的其他资源),这些资源通常是在内网环境中开放访问而对外网ip则进行限制。
2025-07-01 19:59:11
453
原创 CTF自学-RCE(3)
题目给的输入位置使用来给终端执行ping命令的,两个终端命令用&&连接为顺序执行且需要前一个命令成功,而用&连接则并发执行,所以为了方便可以让ping命令非法然后用&连接需要执行的命令。又或者用分号隔开,也可以实现多条命令顺序执行。在输入框中输入以下内容查看当前目录下的文件,由于ping -c 4 a命令非法所以会直接执行&后面的命令,比较节省时间,当然填一个合法IP也是可以的。a & ls查看当前目录可以发现一个数字命名的可疑文件。尝试查看发现文件为空,真的为空吗?
2025-05-20 22:24:49
425
原创 CTF自学-RCE(2)
先看源码,可以看到这次是白名单过滤,只允许include由php://开头的文件,我查阅资料后,得知php://是php伪协议的一类写法,包括了php://input和php://filter等协议,本次要使用的是php://input,百度说php://input就是post的原始内容。如图所示,我在URL后面添加GET的内容为file=php://input,但由于php://input内容为空(没有POST任何数据),所以服务器执行了include(php://input)并没有任何效果。
2025-05-18 20:40:39
907
原创 CTF自学-RCE(1)
RCE(remote command/code execute)远程代码/命令执行漏洞,说白了还是和之前的利用方式差不多,就是在网页中找到注入点,这次注入的位置是用来传递部分命令到服务器来执行的一个输入点。与前面的系列大同小异,本质上就是注入的程序不一样,SQL注入是注入数据库服务,XSS是注入客户浏览器程序,文件上传(php)注入网页服务,这次的REC则直接注入服务器的终端,说到底全是注入攻击。
2025-05-18 04:12:45
447
原创 CTF自学-文件上传(3)
即Multipurpose Internet Mail Extensions(多用途互联网邮件扩展)。用于传输不同类型的文件。该题中后端会检查MIME协议中文件类型是否合法。
2024-10-25 23:48:33
541
原创 CTF自学-文件上传(2)
前端验证,即对文件格式的校验由客户端完成。如下图,上传php文件会被阻止:观察网页源码可以找到进行白名单过滤的js脚本:绕开前端验证有两种思路,一种是上传正确格式的文件,在点击提交文件后通过代理修改请求包头部的文件后缀,另一种是在前端获取到上传文件的页面之前先通过代理删除页面中关于文件过滤的代码。我这里采用了第二种思路,通过BurpSuite实现对前端代码的修改。首先开启拦截,拦截到了前端请求页面的数据包。
2024-10-23 21:53:21
545
原创 CTF自学-文件上传(1)
也就是常说的一句话木马,其中$_POST也是php的超全局数组,用于存储客户端通过POST方式提交的内容,后面的'c'是与客户端约定的key,eval()函数则可以将其中的内容当作php代码执行,于是这句话就实现了在客户端通过post方法提交php代码并使服务器执行的功能。前面的@可以屏蔽报错信息。文件上传攻击,其核心就是利用服务端执行php文件的特点,通过向服务器上传一段恶意的php代码并使其执行来达到窃取服务器信息甚至获取服务器权限的目的。提交文件后访问文件路径,可以看到php文件被成功执行。
2024-10-17 22:10:22
614
原创 CTF自学-XSS(2)
本题中页面没有可以输入的地方,观察web源码发现用到了location结点。location主要用于记录当前页面url中的各种信息。如下图,location.search为url中?后面的部分,location.herf为完整url,所以下面的代码即将原url中"jumpto="后面的部分作为新的url实现页面跳转。所以在当前url后加入?jumpto=(注入的内容)即可实现注入,例如在url框后输入?jumpto=https://baidu.com即可在打开页面后跳转到百度。
2024-10-11 10:47:12
2176
原创 CTF自学-XSS(1)
XSS(Cross Site Scripting,防止与CSS混淆)跨站脚本攻击,即向web页面插入恶意脚本代码,与SQL注入相似,不过SQL注入的位置是数据库查询语句,XSS注入的是网页脚本。
2024-09-30 17:57:03
2122
原创 CTF自学-SQL注入(2)
User-Agent顾名思义就是用户代理,用于标明浏览器客户端设备信息。与Cookie类似,也是保存在本地的特殊字符串,在发送请求时会上传至服务端。一些网站为了防止注入攻击可能采用过滤用户输入的方式来保护数据,这里的一个简单例子就是过滤空格的保护方式。cookie是保存在客户端的一段文本,用于在用户访问网站时上传之前保留的用户信息。
2024-09-30 08:41:43
297
原创 CTF自学-SQL注入(1)
为了查询我们想要的信息,必须对数据库中的表结构了如指掌,为此需要通过在查询窗口注入SQL语句来查出数据库名,表名,列名等信息,再进一步定位到我们需要的表数据上。与整数型注入类似,只不过此时我们输入的内容默认为字符型,即在执行查询时输入的值两侧会添加上'或",以单引号'为例,只需在输入框开头添加',结尾添加#(#为注释符),就可以使得单引号闭合,我们注入的查询语句能够被执行。报错注入主要用于不显示查询结果的情况,此时可以另辟蹊径,通过系统返回的报错信息来获取我们想要的数据。
2024-09-27 16:51:03
1786
C++MFC实现的连连看小游戏【免费无需会员】
2025-05-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅