Python3+Scapy安装使用教程

Scapy的基本操作 Scapy模块的使用Scapy的基本操作Scapy模块中的函数利用Scapy进行端口屏蔽探测 Scapy的基本操作 1.IP()类型数据包 在Scapy中,每一个协议就是一个类。只需要实例化一个协议类,就可以创建一个该协议的数据包。例如,如果要创建一个IP类型的数据包,就可以使用如下命令。 ip = IP() ip.show() 运行结果: IP数据包最重要的属性就是源地址和目的地址,这两个属性可以使用src和dst来设置。 例如,要构造一个发送“192.168.43.1”的IP数据包,可以使用下面 阅读详情

一、说明

之前写DoS程序的时候(见"拒绝服务(DoS)理解、防御与实现"),数据包完全是自己构造的,这其中的难处一是要清楚各层协议的字段、字段长度、字段是数值还是字符、大头还是小头,二是计算校验和。整个过程比较痛苦。

其实构造DoS数据包,我们经常只是想伪造一下源IP等少数字段,而事实上大量时间花在其他大多数不想关心的字段的构造上。

在查找资料过程中发现很多DoS程序直接使用一个“Scapy”的包(开始还以为是Scrapy心想Scrapy什么时候可以用来构造数据包了,后来才注意到少了个“r”)。当时没太在意,现在回头看Scapy确实堪称“神器”,值得记录一番。

本文主要参考官方文档,更多用法也请见:https://scapy.readthedocs.io/en/latest/usage.html

二、安装

直接使用pip安装:

pip install scapy

一些扩展功能安装,可选:

pip install matplotlib pyx cryptography

三、生成数据包

3.1 启动scapy交互shell
切换到Python的Scripts文件夹下,直接使用scapy命令启动(本质是scapy.bat):

scapy

启动界面如下图(由于我没装PyX所以提示不能使用psdump()和pdfdump(),另外还有一些告警,都无关紧要就不处理了):

在这里插入图片描述

3.2 生成数据包
在scapy中,应用层之下的数据包,基本使用协议大写对应的方法就可以直接生成。如:

# 使用Ether()方法生成一个以太网层数据包
eth_packet = Ether()
# 使用IP()方法生成一个网络层数据包
ip_packet = IP()
# 使用TCP()方法生成一个tcp数据包
tcp_packet = TCP()
# 使用UDP()方法生成一个udp数据包
udp_packet = UDP()
# 使用ICMP()方法生成一个udp数据包
icmp_packet = ICMP()

3.3 查看数据包内容
上一小节中生成数据包,如果就长这样的话完全就是一个黑盒,我们需要一些方法来知道数据包(各字段)是什么内容。

哪个协议的数据包查看都是类似的,我们这里以一个tcp数据包为例,查看其他协议的数据包类似操作即可。

# 使用IP()方法生成一个tcp数据包
ip_packet = IP()

# 方法一、使用raw()方法查看
raw(ip_packet)

# 方法二、使用hexdump()查看。类似Wireshark
hexdump(ip_packet)

# 方法三、raw()配合协议类查看。最佳
# 查看该数据包以太网层内容(下层内容不层示,上层内容不解析只以load形式展示)
Ether(raw(ip_packet))
# 查看该数据包网络层内容(下层内容不层示,上层内容不解析只以load形式展示)
IP(raw(ip_packet))

3.4 自定义字段值
上一小节中我们使用raw配合协议方法的方式清楚地看到了数据包中各字段的值,这些值是根据本机信息自动生成的,我们来看如何自定义各字段的值。

定义字段的值有两个种方法,一种是在构造时直接传递参数,另一种是在生成后重新赋值;至于参数名即是上一小节中打出的那些项。

以修改源IP地址和TTL为例,在上一小节中可以看到默认生成的源IP地址叫“src”值为“10.10.6.91”(这是我本机当前的IP地址),TTL叫ttl默认值64。

# 方法一,在构造时直接传递参数
# 给src传值10.10.6.92,ttl传值128;字段为字符的以字符串形式传,字段为数值的以数值形式传
ip_packet = IP(src="10.10.6.92",ttl=128)
# 查看数据包各项值,确认src项是否为10.10.6.92,ttl项是否为128
IP(raw(ip_packet))

# 方法二,在生成后重新赋值
# 给src赋值10.10.6.92,ttl赋值128;字段为字符的以字符串形式赋,字段为数值的以数值形式赋
ip_packet.src = "10.10.6.93"
ip_packet.ttl = 200
# 查看数据包各项值,确认src项是否为10.10.6.93,ttl项是否为200
IP(raw(ip_packet))

在这里插入图片描述

3.5 同时自定义多层协议的字段
在上一小节中我们自定义了源IP地址,但有一个问题:如果此时我想自定义源MAC地址该如何操作呢。想在构造时直接传递参数使用的是IP()又不是Ether();想在生成后重新赋值,上一小节已试验过了src改的是源ip,源mac没法通过src项改。

构造多层协议,构造函数可使用“/”隔开,低层函数在前高层函数在后;最后使用构造函数中的最低层函数即可查看数据包内容。

# 构造一个IP数据包,源mac设置为"00:00:00:00:00:11",源ip设置为"10.10.6.92"
ip_packet = Ether(src="00:00:00:00:00:11")/IP(src="10.10.6.92")
# 当前构造函中最低层为Ether
Ether(raw(ip_packet))

# 定义一个TCP数据包,源mac设置为"00:00:00:00:00:11",源ip设置为"10.10.6.92",源端口设置为1234
tcp_packet = Ether(src="00:00:00:00:00:11")/IP(src="10.10.6.92")/TCP(sport=1234)
# 当前构造函中最低层为Ether
Ether(raw(tcp_packet))

# 定义一个应用层数据包,应用层内容为"GET / HTTP/1.0\r\n\r\n"
app_packet = IP()/TCP()/"GET / HTTP/1.0\r\n\r\n"
# 当前构造函中最低层为IP
IP(raw(app_packet))

在这里插入图片描述

四、发送和接收数据包

4.1 只发送数据包不接收数据包
send()函数允许自定义网络层,sendp()函数允许自定义以太网层。

不管TCP还是UDP都一样直接使用send()等函数即可,scapy会自己选择socket类型,不我们关心。

send(IP(dst="10.10.6.92")/ICMP())

sendp(Ether()/IP(dst="10.10.6.92")/ICMP())

在这里插入图片描述

4.2 发送并接收响应数据包
sr1()函数参许自定义网络层,srp()函数允许自定层数据链路层

rec_packet = sr1(IP(dst="10.10.6.92")/ICMP()/"abcdefg")
rec_packet
# 直接读取某项值
rec_packet.src
# 使用show()方法格式化输出
rec_packet.show()

在这里插入图片描述

4.3 syn扫描
所谓syn扫描就是把Flags字段明确指定为SYN

rec_packet = sr1(IP(dst="10.10.6.92")/TCP(dport=80,flags="S"))
rec_packet.show()

可运行代码如下:

 View Code

在这里插入图片描述

五、在代码中使用

前面我们都是基于交互shell进行了,如果是在文件中该如何使用scapy呢。

交互shell和文件在代码书写上没有区别,唯一的区别就是交互shell导入好了scapy的所有类,而到文件上导入scapy所有类最简单的方式就是:

from scapy.all import *

(实践发现,这种写法在Pycharm中还是会提示“Unresloved reference”但运行是不报错的;实在不行使用“Alt+Enter”键把使用到的类逐个导入即可。)

-END-


读者福利:如果大家对Python感兴趣,这套python学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、Python量化交易等习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

① Python所有方向的学习路线图,清楚各个方向要学什么东西

② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析

③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论

④ 20款主流手游迫解 爬虫手游逆行迫解教程包

⑤ 爬虫与反爬虫攻防教程包,含15个大型网站迫解

⑥ 爬虫APP逆向实战教程包,含45项绝密技术详解

⑦ 超300本Python电子好书,从入门到高阶应有尽有

⑧ 华为出品独家Python漫画教程,手机也能学习

⑨ 历年互联网企业Python面试真题,复习时非常方便

在这里插入图片描述

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
在这里插入图片描述

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈

在这里插入图片描述

在这里插入图片描述

资料领取

上述这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以微信扫描下方二维码输入“领取资料” 即可自动领取
或者

【点此链接】领取

scapy基本操作 scapy基本操作 scapy是一款基于Python强大的数据包处理工具。它可以用来发送各类定制的数据包也可以用于数据包解析。 由于毕业论文需要对数据包进行预处理(数据清洗,数据归一化等),使用scapy进行数据处理。 本文是scapy学习过程中使用到的基本操作总结。安装及验证参考官网即可 参考资源: 官网:https://scapy.net/ 官方文档:https://scapy.readthedocs.io/en/latest/index.html 其他: 使用scapy向数据包添加以太网填充 使用S 阅读详情

相关推荐

【Python】构造数据包Scapy——网络扫描、攻击工具

是库(在Python中),独立运行的工具(在Linux中,提供了一个和Python相同的交互式命令行环境)。可以在自己程序中实现对网络数据包的发送、监听、解析,构建能够进行探测、扫描、攻击的网络工具。Scapy是可以直接操作到数据包层次的工具,可以构造符合自己的数据包。在kali中,命令:scapy,可以启动Scapy编程环境。目前很多网络扫描、攻击工具都用了这个库。

weixin_55205599的博客 4415

scapy的使用

本篇文章主要讲解scapy的使用,这是一个用来构造数据包发送的工具,可以构造自己想要的各种数据包,以至于可以实施攻击

没有网络安全就没有国家安全 2564

Centos安装python3与scapy模块

一、CentOS安装Python3centos7自带版本是python2.7如果要用的3.0以上的版本需要手动安装,下载地址:https://www.python.org/ftp/python/1、先查看系统python的位置在哪儿 python2.7默认安装是在 /usr/bin目录中,切换到/usr/bin/ 从下面的图中我们可以看到,python指向的是python2,python2指向的是python2.7,因此我们可以装个python3,然后删除python链接,将python3指向py

悦分享 1116

数据包工具--Scapy基础篇

零、前言 学习过程中用到Scapy这个工具,用了一些小功能之后发现效果挺好的,自由度高,比其他的很多工具的可自定义程度要高太多了,所以写一篇Scapy基础篇分享给各位,希望能对各位有用。

枫零NET的博客,分享一些自己喜欢的技术 1万+

DrissionPage实战:5分钟搞定京东滑块验证码自动登录(附完整轨迹生成代码)

本文详细介绍了如何使用DrissionPage工具实现京东滑块验证码的自动化登录,包括环境配置、滑块缺口识别、拟人化轨迹生成算法及完整登录流程。通过物理运动学模型和智能识别技术,有效提升验证码破解成功率,适用于电商自动化场景。

weixin_29229055的博客 243

CCS安装教程图解说明:可视化步骤快速上手

通过清晰的图解步骤详解CCS安装过程,帮助新手快速掌握环境搭建。结合ccs安装教程与实际操作界面,每一步都直观易懂,大幅降低学习门槛,提升配置效率。

weixin_42611310的博客 961

python3安装scapy_Python3+Scapy安装使用教程

一、说明之前写DoS程序的时候(见"拒绝服务(DoS)理解、防御与实现"),数据包完全是自己构造的,这其中的难处一是要清楚各层协议的字段、字段长度、字段是数值还是字符、大头还是小头,二是计算校验和。整个过程比较痛苦。其实构造DoS数据包,我们经常只是想伪造一下源IP等少数字段,而事实上大量时间花在其他大多数不想关心的字段的构造上。在查找资料过程中发现很多DoS程序直接使用一个“Scapy”的包(开...

weixin_39849127的博客 617

【论文阅读1】机理引导的残差学习用于电池全生命周期状态监测 | Nature Communications

本文提出了一种机理引导的残差学习框架,用于提升电池全生命周期内荷电状态(SOC)和健康状态(SOH)的监测精度。该方法融合等效电路模型的先验知识与机器学习,设计了修正模型和补偿模型两种通用框架。实验验证表明,该方法在三种不同类型电池数据集上均表现出色,SOC和SOH估计误差较传统方法降低50%以上,且在未见工况下仍保持良好外推能力。模型具有强鲁棒性,在减少训练数据量和降低采样频率时性能稳定,并兼具物理可解释性。该框架无需离线测试和运行中校准,为电池安全监测提供了有效解决方案。

qq_21843433的博客 613

python scapy教程_Python3+Scapy安装使用教程

一、说明之前写DoS程序的时候(见"拒绝服务(DoS)理解、防御与实现"),数据包完全是自己构造的,这其中的难处一是要清楚各层协议的字段、字段长度、字段是数值还是字符、大头还是小头,二是计算校验和。整个过程比较痛苦。其实构造DoS数据包,我们经常只是想伪造一下源IP等少数字段,而事实上大量时间花在其他大多数不想关心的字段的构造上。在查找资料过程中发现很多DoS程序直接使用一个“Scapy”的包(开...

weixin_39882623的博客 265

微信公众号开发实战:如何高效推送模板消息(附完整代码示例)

本文详细解析了微信公众号开发中模板消息推送的核心流程与实战技巧。文章从OpenID获取、模板申请、Access Token缓存管理到完整PHP代码实现,逐步拆解了高效推送模板消息的关键步骤,并提供了可直接复用的代码示例,帮助开发者快速集成这一提升用户体验的重要功能。

weixin_29009971的博客 792

快速配置ORCAD导出智能PDF原理图

在OrCAD 中导出类似Altium Designer的智能PDF(即交互式PDF);

QingNing3028的博客 3941

python3安装教程-Python3+Scapy安装使用教程

一、说明之前写DoS程序的时候(见"拒绝服务(DoS)理解、防御与实现"),数据包完全是自己构造的,这其中的难处一是要清楚各层协议的字段、字段长度、字段是数值还是字符、大头还是小头,二是计算校验和。整个过程比较痛苦。其实构造DoS数据包,我们经常只是想伪造一下源IP等少数字段,而事实上大量时间花在其他大多数不想关心的字段的构造上。在查找资料过程中发现很多DoS程序直接使用一个“...

weixin_37988176的博客 679

用 SAP-ABAP-1 把 ABAP 代码理解这件事交给 AI:从遗留代码到 ABAP Cloud 的开发加速器

SAP-ABAP-1是SAP推出的首个专用ABAP基础模型,专注于理解和解释ABAP代码,帮助开发者更快迁移和维护遗留系统。它强调ABAP Cloud合规编码实践,通过SAP AI Foundation提供访问,主要能力包括代码解释、业务语义理解和框架约束分析。相比通用模型,它能更好处理ABAP特有的版本差异、权限控制和扩展边界等问题。该模型可集成到多种开发环境中,支持文件化开发体验,并能与SAP Joule等工具协同工作,为ABAP团队提供智能辅助。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3822

python安装使用教程-Python3+Scapy安装使用教程

一、说明之前写DoS程序的时候(见"拒绝服务(DoS)理解、防御与实现"),数据包完全是自己构造的,这其中的难处一是要清楚各层协议的字段、字段长度、字段是数值还是字符、大头还是小头,二是计算校验和。整个过程比较痛苦。其实构造DoS数据包,我们经常只是想伪造一下源IP等少数字段,而事实上大量时间花在其他大多数不想关心的字段的构造上。在查找资料过程中发现很多DoS程序直接使用一个&...

weixin_37988176的博客 634

FPGA实现串口升级及MultiBoot(十)串口升级SPI FLASH实现

采用软核进行串口升级的原因主要有以下几点:1、官方推荐:官方以前也推出了针对逻辑进行升级的程序《XAPP1081_QuickBoot》,但是从今年起(2024年)官方就停止更新相关例程了(详见下面截图),所以采用官方推荐的软核更新;2、简单并具有通用性:针对SPI或者BPI官方都有相关的IP,可应对市场上80%以上的FLASH,并且官方IP通用性极强,只需要修改几个参数就可以对不同厂家的芯片进行升级操作;

OpenFPGA的博客 1995

优秀的 Verilog/FPGA开源项目介绍(二十七)- 小型CPU

介绍在FPGA上实现一个CPU是一个令人兴奋的事情,但是太复杂的CPU实现起来太难,而且不适合去了解计算机的架构,所以今天介绍一些小型的CPU,比如8051、MIPS、MSP430等~关于RISC-V的项目,请查看《优秀的 Verilog/FPGA开源项目介绍(二)-RISC-V》ZipCPUhttp://zipcpu.com/about/zipcpu.html项目介绍Z...

OpenFPGA的博客 2574

python2下载安装scapy教程_Python Scapy(2.3.1)文档学习(二):下载和安装

http://blog.youkuaiyun.com/dj1174232716/article/details/44812287下载和安装下载和安装就不用多说了,需要注意的一点是要用root权限运行Scapy。目前,Scapy有两种不同的版本:Scapy V1.x:它只包含一个文件并只运行在Python2.4版本上,所以他可能更容易安装。此外,你的系统可能已经有一个特别的已经准备好的他的包或者接口,最新的版本...

weixin_39863161的博客 981

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

安装python3和scapy

安装: 安装前需安装python-pip https://msd.misuland.com/pd/3070888491219948678 如果提示epel-release已安装,但python-pip仍然安装失败。 可以尝试: yum remove epel-release 先卸载epel-release,再重新安装。 ...

jiaoyangzheng的博客 809

深度学习工具包 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&#39;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(&#39;DeepLearnToolbox&#39;));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(&#39;state&#39;,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&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,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 = &#39;sigm&#39;;%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, &#39;Too big error&#39;);```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(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;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)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;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, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% 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&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 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, &#39;Too big error&#39;);```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(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % 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, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);%% 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(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

AggressorAssessor 的安装和配置教程

AggressorAssessor 的安装和配置教程 1. 项目的基础介绍和主要的编程语言 AggressorAssessor 是一个开源项目,旨在提供一种自动化评估网络攻击者可能利用的系统弱点的工具。该项目通过分析系统的配置和活动,评估潜在的攻击面,帮助安全研究人员和运维人员发现并修复安全问题。该项目主要使用 Python 编程语言开发,易于扩展和维护。 2. 项目使用的关键技术和框架 Aggr...

gitblog_01191的博客 421

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

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

win10下pycharm(python3.7)安装scapy

scapy无法通过settings直接点一点安装,这样安装完是无法正常使用的,主要安装方法如下: (1)安装好python3.7,我已经安装好 (2)安装Npcap: https://nmap.org/npcap/#download windows 平台安装这个,双击后一路next按照默认设置完成安装 (3)安装scapy 下载scapy源码:https://github.co...

zhangxiao986的博客 2472

kali python3安装scapy库_Linux下安装scapy-python3

Linux下安装scapy-python32018-01-11 17:52:302991wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgztar xvf Python-3.5.0.tgzrm Python-3.5.0.tgzcd Python-3.5.0./configure --prefix=/opt/python3make...

weixin_39903571的博客 1117
上一篇: c++培训班学费一般多少 详细收费标准
下一篇: Python在Web开发中的表现是怎么样的?探讨它的优势与限制
黑客老许
博客等级 码龄8年 6148粉丝 1028原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值