nnUNet实战一使用预训练nnUNet模型进行推理

nnU-Net到底怎么使用,好不好用,我们看一个实战例子 本次实战项目为使用预训练nnU-Net模型进行推理 数据集: 医学分割十项全能的前列腺数据集(Prostate) 本系列还有 1 论文解读- nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation(附实现教程) 2 nnU-Net 如何安装–傻瓜式安装教程 这是该系列第3篇✍️✍️✍️ 文章目录 1 安装nnU-Net2 下载 Prostate dataset3 数据集格式转换3.1 nnU-Net支持的数据格式3.2 转换数据 4 下载与训练模型5 获取预训练模型信息6 预测7 集成模型推理 1 安装nnU-Net 确保已经安装nnU-Net。确保设置所有相关路径, 具体操作见nnU-Net 如何安装–傻瓜式安装教程 2 下载 Prostate dataset 下载链接 tips: 文件不是很大(< 250MB), 使用vpn应该可以下载下来。下载不下来,联系我,我发给你。 3 数据集格式转换 十项全能的数据都是 4D nii格式。这与nnU-Net不兼容。将前列腺数据集转换为正确的格式。 3.1 nnU-Net支持的数据格式 这一个知识点很重要,很重要。也是你使用nnU-Net唯一需要做的事情。 nnU-Net的所有数据集都存放在nnUNet_raw_data_base/nnUNet_raw_data 文件夹(nnUNet_raw_data_base安装nnU-Net时指定了该文件夹的地址!)。 比如,我的nnUNet_raw_data_base文件夹在/home/.../.../nnunet_file/ 每个数据集都存储为单独的“Task”。统一命名为( “Task”“ID”_“任务名称”), “ID”是三位数的整, 任务名称(您可以自由选择. 比如 Task005_Prostate以’Prostate’作为任务名称任务ID为5。像这样存储在nnUNet_raw_data_base / nnUNet_raw_data文件夹中: 在每一个Task文件夹里,又包含以下文件夹。 imagesTr: 训练图像。imagesTs(可选): 测试图像labelTr: 训练集标签。dataset.

vue3相关知识总结——创建项目

项目创建 1、通过vite创建 方式一: 通过方式一创建,我们可以看到如下图,首先需要我们先选择框架,比如React,Vue等等,这里以Vue为例。 npm create vite@latest # or yarn create vite 通过上面方式创建的项目我们可以看到,只是vite+vue的一个最简单的配置,没有UI库,没有vue-router,也没有vuex,如果我们在开发项目,这些东西都是必不可少,这就需要我们手动去安装。 方式二: 通过附加的命令行选项直接指定项目名称和你想要使用的模板。例如,要构建一个 Vite + Vue 项目; # npm 6.x npm create vite@latest my-vue-app --template vue # npm 7+, extra double-dash is needed: npm create vite@latest my-vue-app -- --template vue # yarn yarn create vite my-vue-app --template vue # pnpm pnpm create vite my-vue-app --template vue 通过以上两种方式创建的项目,都是一个最基础的配置,需要用的路由,UI库,状态管理等包都需要我们手动下载,配置。 2、通过vue-cli创建 1)全局安装最新的vue-cli,如果不是最新,可以通过以下命令更新 安装 npm install -g @vue/cli # OR yarn global add @vue/cli 更新 npm update -g @vue/cli # 或者 yarn global upgrade --latest @vue/cli 2) 创建项目

PostgreSql常用操作命令

文章目录 前言一、登录PostgreSql1.查看PostgreSql的ip和端口号2.登录psql数据库3.查看数据库表4.退出psql5.查看表字段 前言 记录PostgreSql常用操作命令。 一、登录PostgreSql 1.查看PostgreSql的ip和端口号 2.登录psql数据库 psql -h {{ip}} -p {{port}} -U {{user}} 3.查看数据库表 \dt 4.退出psql q 5.查看表字段 \d {{tablename}}

jsp-layui.tip使用笔记

1.实现效果 2.代码实现 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>layui.tip使用</title> <link rel="stylesheet" href="https://www.layuicdn.com/layui-v2.8.0-rc.9/css/layui.css"> </head> <style type="text/css"> .layui-bg-blue { background-color: #ffffff!important; color: #2a82e4!important; } .layui-bg-gray { background-color: #f5f5f5!important; } </style> <body> <a name="xmzy"></a> <div class="content" style="width:1420px;height: 1000px;background-color: #f2f2f4"> <div class="text" style="width:97%;height: 1800px;margin-left: 20px;margin-bottom:13px;border-radius: 5px; background-color:#ffffff;"> <div style="padding:20px" > <blockquote class="layui-elem-quote" >信息</blockquote> <table class="layui-table"> <colgroup> <col width="50"> <col width="250"> <col> </colgroup> <tbody> <tr> <td style="background-color:#f2f2f2;" >项目单位</td> <td > <a href="

jsp-选中展示动画上划线

1.实现效果 2.代码实现 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>采购公告布局</title> <link rel="stylesheet" href="https://www.layuicdn.com/layui-v2.8.0-rc.9/css/layui.css"> </head> <style type="text/css"> .center-to-head{ position:relative; width: 60px; padding: 15px; float: left; border-top:1.2px solid #e8e8e8; border-right:1.2px solid #e8e8e8; border-bottom:1.2px solid #e8e8e8; } .center-to-head::after{ left:0; content:''; display:block; /*开始时候下划线的宽度为100%*/ width:100%; height:3px; position:absolute; top:0px; background:#ff8d1a; transition:all 0.3s ease-in-out; /*通过transform的缩放scale来让初始时x轴为0*/ transform: scale3d(0,0,0); /*将坐标原点移到元素的中间,以原点为中心进行缩放*/ transform-origin:50% 0; } .center-to-head:hover::after{ /*鼠标经过时还原到正常比例*/ transform:scale3d(1,1,1); } </style> <body> <div id="text-title" class="text-title" style="width: 100%;height: 50px;"

java读取html文件

1.引入依赖 <!-- 读取html --> <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.8.3</version> </dependency> 2.代码 public static void main(String[] args) { String filePath="E:\\123.html"; String htmlStr = toHtmlString(new File(filePath)); } /** * 读取本地html文件里的html代码 * @return */ public static String toHtmlString(File file) { // 获取HTML文件流 StringBuffer htmlSb = new StringBuffer(); try { BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(file), "UTF-8")); while (br.ready()) { htmlSb.append(br.readLine()); } br.close(); // 删除临时文件 //file.delete(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.

ingress实现同一域名加不同上下文实现两个服务的代理

fes.test.com访问fes-pc服务 fes.test.com/mobile访问fes-web服务 准备工作:先准备两个前端,用nginx镜像发布 fes-pc.yaml apiVersion: v1 kind: ConfigMap metadata: name: nginx-cm namespace: dev data: app.conf: | server { listen 80; server_name fes.test.com; location / { root /opt/application/fes-pc/; index index.html index.htm; } } --- apiVersion: apps/v1 kind: Deployment metadata: name: fes-pc namespace: dev spec: replicas: 1 selector: matchLabels: app: fes-pc template: metadata: labels: app: fes-pc spec: containers: - name: nginx image: mynginx:1.17.1 imagePullPolicy: IfNotPresent ports: - containerPort: 80 volumeMounts: - mountPath: /opt/application/fes-pc/ name: fes-pc-app - mountPath: /etc/nginx/conf.

小凯的疑惑

P3951 [NOIP2017 提高组] 小凯的疑惑 / [蓝桥杯 2013 省] 买不到的数目 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)题意是给你a和b,让你构造一个na+mb不能凑出的最大的数 分析: 我看到一个大佬Mzwuzad的证明十分巧妙,这里直接贴一下

SINet阅读笔记

目录 前言1. 搜索模块(SM)1.1 整体结构1.2 RF组件 2. 识别模块(IM)3. 损失函数 前言 SINet来自于CVPR2020的一篇文章,在伪装目标语义分割任务中取得了SOTA的效果。截至2023年3月,其改进版本SINet-V2仍然在CAMO数据集上保持SOTA的效果。 受到自然界中捕食者狩猎过程的启发,SINet框架包括两个主要的模块: 搜索模块(SM):负责搜索伪装物体(寻找猎物)识别模块(IM):用于精确探测伪装物体(识别目标动物) 网络结构如下所示: 1. 搜索模块(SM) 1.1 整体结构 搜索模块整体结构如下图所示。主要由ResNet50的backbone和RF(Receptive Fields)组成。其中,对ResNet50进行了简单修改。 具体来说,对于 I ∈ R W × H × 3 I \in \mathbb R^{W \times H \times 3} I∈RW×H×3的输入图像,利用ResNet50提取一组4个不同维度的特征 { X k } k = 0 4 \lbrace X_k \rbrace ^4_{k=0} {Xk​}k=04​。为了保留更多的信息,将步距修改为 stride=1 ,这样第二层输出特征图和第一层保持了相同大小的尺寸。每层特征图的尺寸大小可以表示为 { [ H k , H k ] , k = 4 , 4 , 8 , 16 , 32 } \lbrace [\frac{H}{k}, \frac{H}{k}], k=4,4,8,16,32 \rbrace {[kH​,kH​],k=4,4,8,16,32}。

Linux GDB 调试详解

文章目录 一、GDB 调试器介绍二、GDB 准备工作GDB 在线安装生成调试信息 三、GDB 命令启动、退出、查看代码设置断点调试命令 一、GDB 调试器介绍 为什么需要 GDB 调试器? 我们需要写代码,然后使用 GCC 进行编译,接着就需要调试代码是否符合我们的预期。要知道,哪怕是开发经验再丰富的程序员,编写的程序也避免不了出错。 程序中的错误主要分为 2 类,分别为语法错误和逻辑错误: 程序中的语法错误几乎都可以由编译器诊断出来,很容易就能发现并解决;逻辑错误指的是代码思路或者设计上的缺陷,程序出现逻辑错误的症状是:代码能够编译通过,没有语法错误,但是运行结果不对。对于这类错误,只能靠我们自己去发现和纠正。 也就是说,程序中出现的语法错误可以借助编译器解决;但逻辑错误则只能靠自己解决。实际场景中解决逻辑错误最高效的方法,就是借助调试工具对程序进行调试。 所谓调试(Debug),就是让代码一步一步慢慢执行,跟踪程序的运行过程。也就是说,通过调试程序,我们可以监控程序执行的每一个细节,包括变量的值、函数的调用过程、内存中数据、线程的调度等,从而发现隐藏的错误或者低效的代码。 那什么是 GDB 调试器呢? GDB(GNU Debugger)是 GNU 工具集中的调试器,该程序是一个交互式工具,工作在字符模式。除 GDB 外,linux下比较有名的调试器还有 xxgdb,ddd,kgdb,ups,目前 GDB 已经是 Linux 平台下最常用的一款程序调试器。 一般来说,GDB主要帮忙你完成下面四个方面的功能: 启动程序,可以按照你的自定义的要求随心所欲的运行程序。可让被调试的程序在你所指定的调置的断点处停住(断点可以是条件表达式)。当程序被停住时,可以检查此时你的程序中所发生的事。动态的改变你程序的执行环境:可以改变程序,将一个 BUG 产生的影响修正从而测试其他 BUG。 二、GDB 准备工作 GDB 在线安装 GDB 的安装有很多种方法,这里采用最简单的在线安装方法: sudo apt-get update # 更新安装资源 sudo apt install gdb # 安装 GDB gdb --version # 查看 GDB 版本,查看 GDB 是否安装成功 生成调试信息 从上面关于 GDB 的介绍可以了解到,GDB 的主要功能就是监控程序的执行流程。这也就意味着,只有当源程序文件编译为可执行文件并执行时,GDB 才会派上用场。

搭建SFTP服务安全共享文件,实现在外远程访问「内网穿透」

文章目录 1.前言2.本地SFTP服务器搭建2.1.SFTP软件的下载和安装2.2.配置SFTP站点2.3.Cpolar下载和安装 3.SFTP服务器的发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的网络发达,个人电脑容量快速上升,想要保存的数据资料也越来越多。在平时,我们会将很多数据资料都会存在个人电脑上,甚至发展出专门的数据存储设备(NAS设备)。毕竟手机容量小,存太多东西会卡顿。但为了满足我们随时随地查阅这些数据资料的要求,又需要能随时安全的连入个人电脑和存储设备,这时SFTP服务就能大显身手。今天,笔者就为大家详细介绍,如何使用Cpolar内网穿透的FTP协议,搭建自己的SFTP服务器,能够随时随地安全的调取查阅本地电脑上的数据资料吧。 2.本地SFTP服务器搭建 本质上来说,SFTP是一项传输协议,而为了执行这项传输协议,就需要相应的SFTP软件来执行,当硬件设备加上SFTP软件,就组成了执行SFTP协议的服务器。但通常这种服务器只能在局域网内提供服务,想要让这个服务器能被公共互联网上的设备访问到(可以是移动网的手机,也可能是安放在其他地方的电脑),就需要使用cpolar的内网穿透服务。 2.1.SFTP软件的下载和安装 要搭建SFTP服务器,相关软件必不可少,这里我们采用FreeSSHd这款软件执行FTP协议,为了保证软件的干净,我们还是在其官网下载。官网下载地址为http://www.freesshd.com/?ctt=download,而下载的软件,则是FreeFTPd。 FreeFTPd软件下载完成后,直接双击就可以进行安装。安装过程也没啥可说的,一路next即可。 FreeFTPd安装完成后,可以在开始菜单中找到FreeFTPd软件的快捷方式,需要注意的是,我们需要右键点击软件,在出现的菜单中选择以管理员身份运行该软件,才能让所做的配置生效,一般用户身份运行就没法保存所做的配置。 打开FreeFTPd软件主界面后,点击左侧的SFTP选项,进入SFTP设置页面,在这个页面右下部,点击Start启动SFTP服务。 SFTP服务启动后,我们可以看到Server status栏位显示为Running,并在Prot:22端口输出。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RdaQG8rq-1679361192516)(null#pic_center)] 启动SFTP服务后,我们先不着急保存退出,而是先建立一个用户。同样点击软件主界面左侧的Users,进入用户添加界面,点击Add按钮,添加一个用户。 添加用户时,自然需要进行一些关于用户的设定,比如用户名、用户密码、发布的磁盘(文件夹)、传输方式之类。这里我们将用户名定为test,共享的磁盘为E盘,传输协议为SFTP。完成这些设置后,就可以点击下方的“Apply”保存设置。 需要注意的是,我们需要将打算用SFTP发布的存储空间(硬盘或文件夹)审定好权限,防止访问这个存储空间时因权限限制而被拒绝。具体方法就是右键点击这个存储空间,选择右键菜单最下方的属性进入设置页面,点击安全选项卡,将Users的完全控制、修改、读取和执行、列出文件夹内容、读取、写入几个权限都勾选并保存。 2.2.配置SFTP站点 完成了FreeSSHd软件的设置,我们还要建立一个SFTP站点,让远程访问的请求有地方可去。这里我们选用FileZilla这款软件。同样的,这款软件也可以在其官网找到下载(https://www.filezilla.cn/)。 在选择对应操作系统的FileZilla客户端下载后,解压后找到filezilla.exe双击进行安装。 FileZilla客户端安装完成后,进入FileZilla客户端主界面,点击左上角的文件按钮,并在弹出的菜单中选择第一项站点管理器。 在站点管理器页面,我们点击新站点,并对这个新站点进行设置,设置内容主要为 协议(在下拉菜单中选择SFTP) 主机(FileZilla服务器和FreeFTPd在同一台电脑上,因此输入本机地址127.0.0.1) 用户名即密码(即FreeFTPd上我们设置的用户名和密码) 完成这几项设置后,就可以点击下方的连接进行连接测试。 出于安全和权限考虑,软件会进行几项权限询问,我们选择同意即可。 接着就能看到,本地用于SFTP传输的磁盘(文件夹)已经成功连接,这也算是对FreeFTPd的运行进行了测试,说明在局域网内已经可以正常用FreeFTPd执行SFTP协议连接。 2.3.Cpolar下载和安装 cpolar官网:https://www.cpolar.com/ 接下来,我们就要安装SFTP服务器公共互联网发布的最后一个重要组件,也就是安装cpolar软件。Cpolar的安装十分简单,我们同样访问cpolar的官网,在官网找到下载按钮,找到适用操作系统的版本进行下载。 Cpolar下载完成后,将下载的压缩包解压,并双击解压后的.msi文件进入安装程序,接下来一路Next即可。 需要说明的是,cpolar主要通过使用者的用户名来建立该用户专属的数据隧道,因此我们需要在官网上注册,以便之后创建对应的数据隧道。 3.SFTP服务器的发布 在各项准备工作都完成后(安装FreeFTPd服务器,设置FileZilla站点,并本地连接FreeFTPd进行测试,安装并注册Cpolar),就可以正式进入FreeFTPd的公共互联网发布工作。 由于SFTP协议应用于文件传输,会对带宽有一定要求,同时对连接稳定性也有要求(即能够随时随地访问到),因此建议将cpolar升级到专业版及以上,以便能创建具备一定带宽和长期稳定存续的数据隧道(免费版cpolar每隔24小时会重置内网穿透数据隧道地址)。 3.1.Cpolar云端设置 想要建立稳定的内网穿透数据隧道,我们需要先登录cpolar的官网,点击官网主界面左侧的预留按钮,进入数据隧道预留设置页面。 在“预留”页面,我们找到保留的TCP隧道,并在此栏位对SFTP数据隧道进行几项简单设置。 在保留的TCP隧道栏位,我们需要设置的项目只有两项,分别是地区(即服务器所在位置,就近选择即可)和描述(即这条TCP隧道的备注,只要能方便自己区分就行)。 完成这两项设置后,就可以点击栏位右侧的“保留”按钮,将这条空白数据隧道保留下来,并生成一个公共互联网地址,稍后我们在进行cpolar客户端设置时,会用到这个地址,因此可以先将其复制下来。 当我们不打算使用这条数据隧道时,也可以点击右侧的x将这条数据隧道删除。 3.2.Cpolar本地设置 回到安装了FreeFTPd服务器的电脑(当然我们也在这台电脑上安装了cpolar客户端),打开cpolar的客户端(可以在开始菜单中点击cpolar的快捷方式,也可以在浏览器中输入localhost:9200),用自己的账号密码登录后,点击cpolar主界面左侧隧道管理项下的创建隧道按钮,进入本地内网穿透数据隧道的设置页面。 当然,为了创建这条数据隧道,我们也需要对这条内网穿透数据隧道的特性进行设置,具体为: 隧道名称:可直接看做数据隧道的备注,为方便区分,我们仍将这条数据隧道的名称设为SFTP连接;协议:即数据隧道的传输协议,如网页、数据传输、设备互联等,这里选择TCP协议;本地地址:这里需要填入软件(或内网设备)的端口号,由于FreeFTPd的默认输出端口号为22,因此此处填入22;端口类型:即这条数据隧道的类型,是否为长期存续的隧道。 由于我们在cpolar云端设置了保留隧道,因此可以选择固定TCP端口(固定TCP端口要将cpolar升级至专业版及以上);若只是临时使用,则选择随机临时TCP端口; 预留的TCP地址:在选择了“固定TCP端口”后就会出现该栏位,这里我们将cpolar云端生成的地址粘贴进来; 完成这几项设置后,就可以点击页面下方的创建按钮,生成一条完整的SFTP数据隧道 完成本地数据隧道的设置后cpolar客户端会自动转入隧道管理项下的隧道列表页面。在这个页面,我们能对这条数据隧道进行管理,如启动、暂停、删除这条数据隧道;也能看到这条数据隧道的运行情况(是否处于运行状态);还能通过“编辑”按钮对这条数据隧道的各项信息进行修改。 而这条数据隧道的入口(即公共互联网地址),则可以在装填项下的在线隧道列表页面找到。 在完成cpolar云端及客户端的数据隧道设置后,我们就能回到FileZilla软件,使用cpolar创建的数据隧道进行访问测试。 由于此时我们已经完成了对本地FreeFTPd的穿透和发布,因此已经可以在其他电脑的FileZilla软件上,设置新的SFTP传输站点,进行FreeFTPd远程访问。 4.公网访问测试 与前面的FileZilla的设置一样,我们先打开FileZilla客户端,并新建一个站点。为方便区分,笔者将这个站点命名为“Cpolar访问测试”,并将cpolar生成的公共互联网地址填入主机栏位;而端口栏位,则应该填入cpolar生成地址最后的几位数字;剩下的用户名和密码,则应填入FreeFTPd设定的用户名和密码。 设置完成后,点击页面下方的连接按钮,就可以连入局域网内的FreeFTPd服务器,对电脑上分享的文件资料进行操作。 5.结语 到这里,我们就成功完成了本地电脑的SFTP服务器设置,并让本地电脑上的资料文件,以SFTP协议进行传输,实现了随时随地调取、操作和访问本地电脑上文件资料的目的。当然,使用FileZilla进行远程访问只是为了方便演示,只要FreeFTPd服务器和cpolar数据隧道设置正确,我们也可以使用其他SFTP客户端软件访问本地电脑。

端口扫描(X-scan)

计算机通过各个端口与其他设备交换信息,每一个打开的端口都是一个潜在的通信通道,同时也意味着是一个可入侵的通道。对目标计算机进行端口扫描,就能得到许多有用的信息。端口扫描可以通过手工进行扫描,也可以用端口扫描器进行扫描。 扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器可以不留痕迹的发现远程服务器的各种TCP端口的分配及提供的服务和它们的软件版本,可以直观了解到存在的安全问题。X-scan就是一个很常用的扫描器,通过选用远程TCP/IP不同的端口服务,并记录目标的回答,可以搜集到很多关于目标主机的有用信息。X-scan采用多线程方式对指定IP地址段(或单机)进行安全漏洞检测,支持插件功能。扫描内容包括:远程服务类型、操作系统类型及版本,各种弱口令漏洞、后门、应用服务漏洞、网络设备漏洞、拒绝服务漏洞等二十几个大类。 X-scan软件 X-scan软件界面: 标题栏下方为菜单栏,菜单栏下方为一些常用的命令按钮,包括大部分菜单栏中的内容。命令按钮从左到右依次为:扫描参数、开始扫描、暂停扫描、结束扫描、检测报告、使用说明、在线升级、退出。 X-scan设置方法: X-scan基本设置: 点击【扫描参数】按钮,或选择【设置】->【扫描参数】打开扫描参数对话框,在这里设置X-scan的扫描参数,包括:检测范围、全局设置、插件设置。 检测范围: 指定IP范围:此处设置X-scan的扫描范围,在【指定IP范围】处填写指定的IP或IP段,可以通过点击右边的【示例】按钮查看有效的IP方式和无效的IP方式。 地址薄:在此选择IP地址,在X-scan中提供了地址薄功能,可自行添加IP地址到地址薄中,包括名称、IP和描述。 从文件获取主机列表:从指定的文本文件中读取IP地址,注意:文件格式应为纯文本,每一行可包含独立IP或域名,也可包含以“-”和“,”分隔的IP范围。 全局设置: 此模块主要用于设置全局性的扫描选项,分为:扫描模块、并发扫描、扫描报告、其它设置。 扫描模块: 选择本次扫描需要加载的插件。如果想知道某一插件的具体信息可以选择该插件,在右边会显示对该插件的详细描述,包括版本、作者和描述。可根据需要选择相应的插件。 扫描过程: 并发扫描 并发扫描:设置并发扫描的主机和并发线程数,也可以单独为每个主机的各个插件设置最大线程数。 最大并发主机数量:可以同时检测的主机数量,每扫描一个主机将会启动一个Check Host进程,默认值为10。 最大并发线程数量:扫描过程中最多可以启动和扫描线程数量,默认值为100。 各插件最大并发线程数量:用于指定每个模块所用的最大并发线程数,可以通过鼠标定位修改 扫描报告 扫描结束后生成的报告文件名,保存在log目录下。扫描报告目前支持TXT、HTML和XML三种格式。 其他设置: 跳过没有响应的主机:若目标主机不响应ICMP ECHO及TCP SYN报文,X-scan将跳过对该主机的检测。 无条件扫描:如标题所述 跳过没有检测到开放端口的主机:若在用户指定的TCP端口范围内没有发现开放端口,将跳过对该主机的后续检测。 使用NMAP判断远程操作系统:X-scan使用SNMP、NETBIOS和NMAP综合判断远程操作系统类型,若NMAP频繁出错,可关闭该选项。 显示详细信息:主要用于调试,平时不推荐使用该选项 插件设置: 该模块包含针对各个插件的单独设置,如“端口扫描”插件的端口范围设置、各个弱口令插件的用户名/密码字典设置等。 待检测端口:扫描时检测的端口,可添加或删除。 检测方式:分为TCP和SYN两种方式。TCP方式即TCP的connect()扫描,与目标主机建立完整的一次TCP连接,完成了TCP三次握手的全过程。SYN为TCP的“半开放”扫描,并不与目标主机建立连接。 根据响应识别服务:选中后会根据扫描的端口结果返回相应的服务名,具体的对照在下面“预设知名服务端口”中,可自己添加或删除。 SNMP相关设置:设置SNMP检测的信息。 NETBIOS相关设置:选择检测NETBIOS的信息。 漏洞检测脚本设置:可以选择相关的漏洞检测脚本,漏洞脚本以NSL为后缀名。 CGI相关设置:设置CGI扫描的相关选项。 字典文件设置:在此设置扫描相关密码时对应的字典文件,可自己更改。 在扫描参数左侧的最下方有两个按钮:【载入】和【另存】,【载入】用于载入相关的配置文件,【另存】用于将现在设定的配置文件保存。 使用X-scan对主机进行综合扫描: 扫描参数设置完毕后,就可以进行扫描了,点击开始按钮或点击【文件】->【开始扫描】进行扫描。开始扫描时,X-scan都会先加载漏洞脚本,然后开始扫描。 根据设置,点击扫描,扫描完成后会显示HTML格式的扫描结果。 扫描信息: 在X-scan的主界面上有三个选项卡,分别是:普通信息、漏洞信息、错误信息。 普通信息:显示X-scan的扫描信息。 漏洞信息:显示取得的漏洞信息。 错误信息:如果扫描过程中出现错误,会在这个选项卡显示。 扫描报告: 当你完成或终止扫描,会出现扫描报告。 端口扫描的原理是什么? 端口扫描的基本原理就是依次与每一个可能存在的主机尝试建立连接。如果对方有回复就说明这个主机存在且端口开放。 常用的端口扫描技术有哪些? TCP connect() 扫描; TCP SYN扫描; TCP FIN 扫描; IP段扫描; TCP 反向 ident扫描;

【微信小程序】-- 案例 - 自定义 tabBar(四十六)

💌 所属专栏:【微信小程序开发教程】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘 文章目录 前言一、自定义 tabBar1、案例效果2、实现步骤3、渲染 tabBar 上的数字徽标4、实现tabBar 页面切换效果5、修改 tabBar 选中项文本的颜色值 总结 前言 大家好,又见面了,我是夜阑的狗🐶,本文是专栏【微信小程序开发教程】专栏的第46篇文章; 今天开始学习微信小程序的第28天💖💖💖,开启新的征程,记录最美好的时刻🎉,每天进步一点点。 专栏地址:【微信小程序开发教程】, 此专栏是我是夜阑的狗微信小程序开发过程的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。 如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。 一、自定义 tabBar 前面已经介绍了分包-独立分包 & 分包预下载,通过栗子学习了如何设置独立分包以及分包预下载。接下来就来根据前面学的知识,在案例 - 自定义 tabBar上进行实践。话不多说,让我们原文再续,书接上回吧。 1、案例效果 首先来看一下页面演示效果,页面中有下方标签栏是自定义 tabBar。自定义 tabBar 可以让开发者更加灵活地设置 tabBar 样式,以满足更多个性化的场景。 在此案例中,用到的主要知识点如下: 自定义组件Vant 组件库MobX 数据共享组件样式隔离组件数据监听器组件的 behaviorsVant 样式覆盖 2、实现步骤 首先来实现 tabBar 标签栏,自定义 tabBar 可分为 3 大步骤,分别是: Step 1、配置信息 在 app.json 中的 tabBar 项指定 custom 字段,同时其余 tabBar 相关配置也补充完整。所有 tab 页的 json 里需声明 usingComponents 项,也可以在 app.

神经网络中的注意力机制与外部记忆

神经网络中的注意力机制与外部记忆 文章目录 神经网络中的注意力机制与外部记忆什么是注意力神经网络中的注意力机制注意力机制的实现注意力机制模型简易理解注意力分布注意力机制的软硬模式自注意力模型关于记忆记忆增强网络端到端记忆网络神经图灵机神经动力学的联想记忆Hopfield 网络能量函数联想记忆存储容量Python实现 什么是注意力 注意力是一种人类不可或缺的复杂认知功能,指人可以在关注一些信息的同时忽略另一些信息的选择能力。 注意力一般分为两种: 自上而下的有意识的注意力,称为聚焦式注意力(Focus Attention)。聚焦式注意力也常称为选择性注意力(Selective Attention)。聚焦式注意力是指有预定目的、依赖任务的,主动有意识地聚焦于某一对象的注意力。自下而上的无意识的注意力,称为基于显著性的注意力(SaliencyBased Attention)。基于显著性的注意力是由外界刺激驱动的注意,不需要主动干预,也和任务无关。 **鸡尾酒会效应:**当一个人在吵闹的鸡尾酒会上和朋友聊天时,尽管周围噪音干扰很多,他还是可以听到朋友的谈话内容,而忽略其他人的声音(聚焦式注意力)。同时, 如果背景声中有重要的词( 比如他的名字),他会马上注意到( 显著性注意力)。 神经网络中的注意力机制 神经网络中的注意力机制与人类处理事情时常说的“注意力”意思类似,即着重关注一些列信息中的部分信息,并对这部分信息进行处理分析。 在神经网络中使用注意力机制,可以达到更好的拟合效果。 注意力机制可以使神经网络忽略不重要的特征向量,而重点计算有用的特征向量。在抛弃无用特征向量对拟合结果干扰的同时,又提升了运算速度。 定位感兴趣的信息,排除不感兴趣的信息。 在计算能力有限的情况下,注意力机制(Attention Mechanism)作为一种资源分配方案,将有限的计算资源用来处理更重要的信息,是解决信息超载问题的主要手段。 注意力机制的实现 神经网络中的注意力机制主要是通过注意力分数来实现的,注意力分数是一个0~1的值,在注意力机制的作用下所有的分数和为1。加权和为1 每个注意力分数代表当前项被分配的注意力权重。 注意力分数常由神经网络的权重参数在模型的训练中学习得到的,并最终使用SoftMax函数进行计算。这种注意力机制可以使用在任何神经网络模型中。 注意力机制可以作用在RNN模型中的每个序列上,令RNN模型对序列中的单个样本给予不同的关注度。 Predictingacontinuous-valuedassociatedwithanobject0.40.010.40.060.020.010.1 注意力机制也可以应用在模型输出的特征向量中。 举一个例子,说明注意力在翻译任务中是如何工作的。假设我们有一句话“你今天过得怎么样”,我们想将其翻译成法语版本“ Comment se passe ta journée ”。网络的注意力组件将为输出句子中的每个单词做的是映射输入句子中重要且相关的单词,并为这些单词分配更高的权重,从而提高输出预测的准确性。 在翻译的每一步都为输入词分配权重。 虽然注意力机制在计算机视觉等深度学习的其他领域也有应用,但其主要突破和成功来自于在自然语言处理(NLP)任务中的应用。引入注意力机制是为了解决机器翻译中的长序列问题,这也是大多数其他 NLP 任务的问题。 注意力机制模型简易理解 注意力机制模型的原理可以简单描述为:将具体的任务看做由**query, key, value三个“角色”**来完成(分别用Q、K、V代替)。其中,Q代表要查询的任务,**K,V表示一一对应的键值对,任务目的就是使用Q在K中国找到对应的V值。**原理公式: D v = A t t e n t i o n ( Q t , K , V ) = S o f t m a x ( ( Q t , K s ) d k ) v s = ∑ s = 1 n 1 z e x p ( ( Q t , K s ) d k ) V s D_v = Attention(Q_t,K,V)=Softmax(\frac{(Q_t,K_s)}{\sqrt[]{d_k} } )v_s=\sum_{s=1}^{n}\frac{1}{z}exp(\frac{(Q_t,K_s)}{\sqrt[]{d_k} } )V_s Dv​=Attention(Qt​,K,V)=Softmax(dk​ ​(Qt​,Ks​)​)vs​=s=1∑n​z1​exp(dk​ ​(Qt​,Ks​)​)Vs​

电力系统网架规划MATLAB程序分享

资源地址: 电力系统网架规划MATLAB程序_网架规划matlab程序-电子商务文档类资源-CSDN文库 网架数据展示: 完整程序: close all; clear all; clc; warning off; % 去除警告 tic; % tic用来保存当前时间,而后使用toc来记录程序完成时间 %% 基本参数 T=12; % 典型日 8-19h % 8-19h 负荷各时段负荷总量 total_P_LOAD=[828,1001,1105,1105,994,1105,1105,1049,1012,810,699,626]; % 8-19h 光伏各时段出力标幺(by)值 by_P_PVG_timeline=[0.29,0.03,0.51,0.55,0.47,0.46,0.55,0.64,0.22,0.20,0.38,0.03]; Node=23; % 节点 Line=34; % 线路 o1 = 1.1198; % 负荷功率因数角 0.9 o2 = 1.2532; % DG功率因素角 0.95 % 网损成本 Line_closs=0.6; % 最大弃(abandon,a)光率 a_max_PVG=0.05; % 单位弃光成本 ca_PVG=0.6; % 主网(zw)购电分时单价 zw_buy1_TR=[0.6 0.57 0.45 0.43 0.43 0.58 0.65 0.67 0.68 0.64 0.

Html5新增了什么

介绍 HTML5 是下一代的 HTML, 将成为 HTML、XHTML 以及 HTML DOM 的新标准。 起步 HTML5 是 W3C 与 WHATWG 合作的结果。 为 HTML5 建立的一些规则: 新特性应该基于 HTML、CSS、DOM 以及 JavaScript。 减少对外部插件的需求(比如 Flash) 更优秀的错误处理 更多取代脚本的标记 HTML5 应该独立于设备 开发进程应对公众透明 浏览器支持 最新版本的 Chrome、Firefox、Safari以及 Opera 支持某些 HTML5 特性。Internet Explorer 9 将支持某些 HTML5 特性。国内的 遨游浏览器(Maxthon),以及基于IE或Chromium(Chrome的工程版或称实验版)所推出的360浏览器、搜狗浏览器、QQ浏览器、猎豹 浏览器等国产浏览器同样具备支持HTML5的能力。 新特性 HTML5 中新增的一些有趣的新特性: 1、语义化标签 header footer nav aside section meau template article audio video canvas 等 2、webStorage 储存机制 sessionStorage 和 localStorage webStorage: 使用HTML5可以在本地存储用户的浏览数据。早些时候,本地存储使用的是 cookie。但是Web 存储需要更加的安全与快速,这些数据不会被保存在服务器上,但是这些数据只用于用户请求网站数据上。它也可以存储大量的数据,而不影响网站的性能。数据以 键/值 对存在, web网页的数据只允许该网页访问使用。

pycharm debug 报错找不到目录

在debug时候遇到了debug报错,提示找不到目录。 解决方法: 1,右上角找到debug配置 2,找到对应Py文件的working directory配置,这里检查下配的对不对,如果显示的是其他文件夹。修改下这个配置。重新debug,正常了。

华为OD机试考押题卷,题解用C语言完成,收藏必看系列

华为OD机考大纲 华为 OD 机试题清单(机试题库还在逐日更新)其它语言版本 华为 OD 机试题清单(机试题库还在逐日更新) 直接在本页使用 Ctrl+F,输入题目名称就可以进行检索。 华为 OD 机试 - 剩余可用字符集 or @分割可用字符集(C 语言解题)【独家】华为 OD 机试 - 货币单位换算(C 语言解题)【独家】华为 OD 机试 - 最优调度策略(C 语言解题)【独家】华为 OD 机试 - 找数字(C 语言解题)【独家】华为 OD 机试 - 分苹果(C 语言解题)【独家】华为 OD 机试 - 洞穴探险 or 最远探测距离(C 语言解题)【独家】华为 OD 机试 - 数组组成的最小数字(C 语言解题)【独家】华为 OD 机试 - VLAN 资源池(C 语言解题)【独家】华为 OD 机试 - 特异性双端队列(C 语言解题)【独家】华为 OD 机试 - 单词接龙(C 语言解题)【独家】【独家】华为 OD 机试 - 斗地主(C 语言解题)华为 OD 机试 - 最小叶子节点(C 语言解题)【独家】华为 OD 机试 - TLV [Tag Length Value] 编码(C 语言解题)【独家】华为 OD 机试 - 找出同班小朋友(C 语言解题)【独家】华为 OD 机试 - 火星文计算(C 语言解题)【独家】华为 OD 机试 - 简易压缩算法(C 语言解题)【独家】华为 OD 机试 - 删除最少字符(C 语言解题)【独家】华为 OD 机试 - 叠放书籍(C 语言解题)【独家】华为 OD 机试 - 最左侧冗余覆盖子串(C 语言解题)【独家】华为 OD 机试 - 网上商城优惠活动(C 语言解题)【独家】华为 OD 机试 - 通信误码(C 语言解题)【独家】华为 OD 机试 - 最优资源分配(C 语言解题)【独家】华为 OD 机试 - 快递货车(C 语言解题)【独家】华为 OD 机试 - 连续子串(C 语言解题)【独家】华为 OD 机试 - 寻找连续区间(C 语言解题)【独家】华为 OD 机试 - 端口合并(C 语言解题)【独家】华为 OD 机试 - 招聘(C 语言解题)【独家】华为 OD 机试 - 身高排序(C 语言解题)【独家】华为 OD 机试 - 相对开音节(C 语言解题)【独家】华为 OD 机试 - 最近的点(C 语言解题)【独家】华为 OD 机试 - 对称美学(C 语言解题)【独家】华为 OD 机试 - 寻找路径 or 数组二叉树(C 语言解题)【独家】华为 OD 机试 - 不等式(C 语言解题)【独家】华为 OD 机试 - IPv4 地址转换成整数(C 语言解题)【独家】华为 OD 机试 - 水仙花数(C 语言解题)【独家】华为 OD 机试 - GPU 调度(C 语言解题)【独家】华为 OD 机试 - 单词倒序(C 语言解题)【独家】华为 OD 机试 - 路灯照明(C 语言解题)【独家】华为 OD 机试 - 热点网络统计(C 语言解题)【独家】华为 OD 机试 - 五键键盘(C 语言解题)【独家】华为 OD 机试 - 字符匹配(C 语言解题)【独家】华为 OD 机试 - 好朋友(C 语言解题)【独家】华为 OD 机试 - 获得完美走位(C 语言解题)【独家】华为 OD 机试 - 九宫格按键输入(C 语言解题)【独家】华为 OD 机试 - 新员工座位安排系统(C 语言解题)【独家】华为 OD 机试 - 统计匹配的二元组个数(C 语言解题)【独家】华为 OD 机试 - 卡片组成的最大数字(C 语言解题)【独家】华为 OD 机试 - 内存池(C 语言解题)【独家】华为 OD 机试 - 能力组队(C 语言解题)【独家】华为 OD 机试 - 旋转骰子(C 语言解题)【独家】华为 OD 机试 - 自动曝光(C 语言解题)【独家】华为 OD 机试 - 玩牌高手(C 语言解题)【独家】华为 OD 机试 - 跳格子(C 语言解题)【独家】【独家】华为 OD 机试 - 运动会(C 语言解题)【独家】华为 OD 机试 - 最长的元音字符串(C 语言解题)【独家】华为 OD 机试 - 投篮大赛(C 语言解题)【独家】华为 OD 机试 - 乱序整数序列两数之和绝对值最小(C 语言解题)【独家】华为 OD 机试 - 最长连续交替方波信号(C 语言解题)【独家】华为 OD 机试 - 需要广播的服务器数量(C 语言解题)【独家】华为 OD 机试 - 最差产品奖(C 语言解题)【独家】华为 OD 机试 - 最少数量线段覆盖(C 语言解题)【独家】华为 OD 机试 - 整数对最小和(C 语言解题)【独家】华为 OD 机试 - 有效子字符串(C 语言解题)【独家】华为 OD 机试 - 翻转单词顺序(C 语言解题)【独家】华为 OD 机试 - 找出通过车辆最多颜色(C 语言解题)【独家】华为 OD 机试 - 合并数组(C 语言解题)【独家】华为 OD 机试 - 和最大子矩阵(C 语言解题)【独家】华为 OD 机试 - 数列还原(C 语言解题)【独家】华为 OD 机试 - 高效的任务规划(C 语言解题)【独家】华为 OD 机试 - 病菌感染(C 语言解题)【独家】华为 OD 机试 - 吃火锅(C 语言解题)【独家】华为 OD 机试 - 航天器(C 语言解题)【独家】华为 OD 机试 - 数字的排列(C 语言解题)【独家】华为 OD 机试 - 重组字符串(C 语言解题)【独家】华为 OD 机试 - 选座位(C 语言解题)【独家】华为 OD 机试 - 最多获得的短信条数(C 语言解题)【独家】华为 OD 机试 - 去重求和(C 语言解题)【独家】华为 OD 机试 - 求解连续数列(C 语言解题)【独家】华为 OD 机试 - 流水线(C 语言解题)【独家】华为 OD 机试 - 英文输入法(C 语言解题)【独家】华为 OD 机试 - 停车场最大距离(C 语言解题)【独家】华为 OD 机试 - 关联子串(C 语言解题)【独家】华为 OD 机试 - 分积木(C 语言解题)【独家】华为 OD 机试 - 最多提取子串数目(C 语言解题)【独家】华为 OD 机试 - 机器人活动区域(C 语言解题)【独家】华为 OD 机试 - 商人买卖(C 语言解题)【独家】华为 OD 机试 - 统计差异值大于相似值二元组个数(C 语言解题)【独家】华为 OD 机试 - 勾股数(C 语言解题)【独家】华为 OD 机试 - 相同字符连续出现的最大次数(C 语言解题)【独家】华为 OD 机试 - 时间格式化(C 语言解题)【独家】华为 OD 机试 - 构成的正方形数量(C 语言解题)【独家】华为 OD 机试 - RSA 加密算法(C 语言解题)【独家】华为 OD 机试 - 分糖果(C 语言解题)【独家】华为 OD 机试 - 快递业务站(C 语言解题)【独家】华为 OD 机试 - 开心消消乐(C 语言解题)【独家】华为 OD 机试 - 环中最长子串(C 语言解题)【独家】华为 OD 机试 - 绘图机器(C 语言解题)【独家】华为 OD 机试 - 最大报酬(C 语言解题)【独家】华为 OD 机试 - 非严格递增连续数字序列(C 语言解题)【独家】华为 OD 机试 - 滑动窗口(C 语言解题)【独家】华为 OD 机试 - 最少停车数(C 语言解题)【独家】华为 OD 机试 - 不含 101 的数(C 语言解题)【独家】华为 OD 机试 - 数组的中心位置(C 语言解题)【独家】华为 OD 机试 - 最快检测效率-核酸(C 语言解题)【独家】华为 OD 机试 - 报数(C 语言解题)【独家】华为 OD 机试 - 找出重复代码(C 语言解题)【独家】华为 OD 机试 - 星际篮球争霸赛(C 语言解题)【独家】华为 OD 机试 - 第 k 长子串(C 语言解题)【独家】华为 OD 机试 - 单词反转 2(C 语言解题)【独家】华为 OD 机试 - 小朋友排队(C 语言解题)【独家】华为 OD 机试 - 斗地主 2(C 语言解题)【独家】华为 OD 机试 - 预订酒店(C 语言解题)【独家】华为 OD 机试 - 基站维修工程师(C 语言解题)【独家】华为 OD 机试 - 聚餐地点(C 语言解题)【独家】华为 OD 机试 - 拼接 URL(C 语言解题)【独家】华为 OD 机试 C 语言解题 - 任务调度 or 单核 CPU 任务调度【独家】华为 OD 机试 C 语言解题 - 敏感字段加密【独家】华为 OD 机试 C 语言解题 - 新工号系统【独家】华为 OD 机试 C 语言解题 - 最长连续子串【独家】华为 OD 机试 C 语言解题 - 猴子爬山【独家】华为 OD 机试 C 语言解题 - 磁盘容量【独家】华为 OD 机试 C 语言解题 - 水仙花数 2【独家】华为 OD 机试 C 语言解题 - 交换字符【独家】华为 OD 机试 C 语言解题 - 数据分类【独家】华为 OD 机试 C 语言解题 - 乘积最大值【独家】华为 OD 机试 C 语言解题 - 去除多余空格【独家】华为 OD 机试 C 语言解题 - 日志采集系统【独家】华为 OD 机试 C 语言解题 - 整理扑克牌【独家】华为 OD 机试 C 语言解题 - 最长合法表达式【独家】华为 OD 机试 C 语言解题 - 最低位排序【独家】华为 OD 机试 C 语言解题 - 找字符【独家】华为 OD 机试 C 语言解题 - 匿名信【独家】华为 OD 机试提供 C 语言题解 - 最大相连男生数【独家】华为 OD 机试提供 C 语言题解 - 字母消消乐【独家】华为 OD 机试提供 C 语言题解 - 字符串加密【独家】华为 OD 机试提供 C 语言题解 - 子序列长度【独家】华为 OD 机试提供 C 语言题解 - 众数和中位数【独家 C】华为 OD 机试提供 C 语言题解 - 最小施肥机能效【独家 C】华为 OD 机试提供 C 语言题解 - 优秀学员统计【独家】华为 OD 机试提供 C 语言题解 - 数字加减游戏【独家】华为 OD 机试提供 C 语言题解 - 分奖金【独家】华为 OD 机试提供 C 语言题解 - 求字符串中所有整数的最小和【独家】华为 OD 机试提供 C 语言题解 - 求最大数字【独家】华为 OD 机试提供 C 语言题解 - 新学校选址【独家】华为 OD 机试提供 C 语言题解 - 挑选字符串【独家】华为 OD 机试提供 C 语言题解 - 字母计数【独家】华为 OD 机试提供 C 语言题解 - 单词反转【独家】华为 OD 机试提供 C 语言题解 - 获取最大软件版本号【独家】华为 OD 机试提供 C 语言题解 - 括号检查【独家】华为 OD 机试提供 C 语言题解 - N 进制减法【独家】华为 OD 机试提供 C 语言题解 - 任务混部【独家】华为 OD 机试提供 C 语言题解 - 出租车计费【独家】华为 OD 机试提供 C 语言题解 - 考古学家【独家】华为 OD 机试提供 C 语言题解 - 箱子之形摆放【独家】华为 OD 机试提供 C 语言题解 - 最短耗时【独家】华为 OD 机试提供 C 语言题解 - 人数最多的站点【独家】华为 OD 机试提供 C 语言题解 - 第 N 个排列【独家】华为 OD 机试提供 C 语言题解 - 开放日活动【独家】华为 OD 机试提供 C 语言题解 - 租车骑绿岛【独家】华为 OD 机试提供 C 语言题解 - 相同数字的积木游戏 1【独家】华为 OD 机试提供 C 语言题解 - 最多等和不相交连续子序列【独家】华为 OD 机试提供 C 语言题解 - 最短木板长度【独家】华为 OD 机试提供 C 语言题解 - 数组合并【独家】华为 OD 机试提供 C 语言题解 - 计算网络信号【独家】华为 OD 机试提供 C 语言题解 - 事件推送华为 OD 机试【独家】提供 C 语言题解 - 最小传递延迟华为 OD 机试【独家】提供 C 语言题解 - 数组排序华为 OD 机试【独家】提供 C 语言题解 - 入栈出栈华为 OD 机试【独家】提供 C 语言题解 - 压缩报文还原华为 OD 机试【独家】提供 C 语言题解 - 最大排列【独家提供】华为 OD 机试 C 语言题解 - 简易内存池 2华为 OD 机试【独家】提供 C 语言题解 - 火星文计算 2 其它语言版本 本目录为华为 od 机试 JS 题解目录,其它版本清单如下

VLAN与二层交换机

目录 一:VLAN 1.VLAN的概念及优势 2.VLAN的种类 3.VLAN的范围 4.VLAN的配置 5.VLAN跨交换机通信过程 6.IEEE 802.1q帧格式 7. IEEE 802.1q工作原理 二:华为交换机 1.access的配置 2.TRUNK 作用 3.TRUNK的配置 一:VLAN 1.VLAN的概念及优势 VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN分割广播域:物理分割和逻辑分割。VLAN的优势:控制广播,增强网络安全性,简化网络管理。只能在交换机使用。 2.VLAN的种类 静态VLAN:基于端口划分静态VLAN,在实际工作中应用最多。动态VLAN:基于MAC地址划分动态VLAN。 3.VLAN的范围 VLAN的ID范围:0-4095 一共4096个VLAN ID,其中0和4095为系统保留,可以的ID范围:1-4094,1为默认VLAN ID。 4.VLAN的配置 添加vlan [SW1]vlan 10 [SW1-vlan10] q 批量添加vlan [SW1]vlan batch 20 30 40 删除:[SW1] undo vlan 10 5.VLAN跨交换机通信过程 交换机给往其他交换机的数据帧打上VLAN标识 在以太网上实现中继,由两种封装类型:ISL(Cisco私有标准),IEEE 802.1q。 6.IEEE 802.1q帧格式 IEEE 802.1q的帧格式(4字节): 2字节标识协议标识符(TPID)包含一个0x8100 的固定值,这个特定的TPID值指明了该帧带有IEEE 802.1q的标识信息。 2字节标识控制信息(TCI)包含了以下3个元素: 3位的用户优先级(Priority):IEEE 802.1q不使用该字段。 1位的规范格式标识符(CFI):CFI 常用以太网和令牌环网。在以太网中,CFI 的值通常设置为 0. 12位VLAN标识符(VLAN ID):该字段唯一标识了帧所属的VLAN。VLAN ID 可以唯一的标识4096个VLAN,但VLAN 0和 VLAN 4095是被保留的。

Android系统启动流程

文章目录 总结1.rc脚本语法规则2.init进程启动init_first_stageinit_second_stage 3.ServiceManager启动4.Zygote进程启动5.Launcher启动 总结 android系统是基于linux的,启动大致分为如下几个阶段 BootRom 启动电源以及系统启动。当电源按下时,引导芯片代码从预定义的地方(固化在ROM中)开始执行。加载引导程序BootLoader到RAM,然后执行。引导程序Bootloader 引导程序BootLoader是在android操作系统开始运行前的一个小程序,他的主要作用是把系统OS拉起来并运行。Linux kernel启动 当内核启动时,设置缓存、被保护存储器、计划列表、加载驱动。当内核完成系统设置时,它首先在系统文件中寻找init.rc文件,并启动init进程。init进程启动 初始化和启动属性服务,并且启动Zygote进程。Zygote进程启动 创建Java虚拟机并为Java虚拟机注册JNI方法,创建服务器端Socket,启动SystemServer进程。systemserver进程启动 启动Binder线程池和SystemServiceManager,并且启动各种系统服务。Launcher进程启动 被SystemServer进程启动的AMS会启动Launcher,Launcher启动后会将已安装应用的快捷图标显示到界面上 下面基于aosp11-13进行分析,因为多次阅读和使用的源码不一样,可能出现的代码并不是同一个Android版本代码 ‍ 1.rc脚本语法规则 源码中提供了一个官方文档(aosp\system\core\init\README.md)来说明rc脚本使用规则。rc脚本由Actions、Commands、Services、Options、Improts组成。 这部分内容可以参考《深入理解Android内核设计思想(第2版)》—第七章 Android启动过程 Actions:当达到某个触发条件时,执行命令,即响应某事件的过程 Actions take the form of: on <trigger> [&& <trigger>]* // 触发条件 <command> // 执行命令 <command> <command> Commands:命令将在所属事件发生时被一个个地执行,rc脚本中定义了许多命令,如 boot:init程序启动后触发的第一个事件 class_start <serviceclass>:启动服务 class_stop <serviceclass>:停止服务 ...... Services:可执行程序 Services take the form of: service <name> <pathname> [ <argument> ]* <option> <option> ... // name:服务名称 // pathname:服务路径 // argument:启动服务传递的参数 // option:对服务的约束项 Options:服务修饰符,影响init进程运行服务的方式和时间。即上面的 critical:表明这是对设备至关重要的一个服务。如果它在指定的时间内退出超过四次,则设备将重启进入恢复模式 onrestart:重启服务 Imports:引入其他rc配置文件,语法格式为import <path>​