【Deeplabv3+】Ubutu18.04中使用pytorch复现Deeplabv3+第三步)-----CityscapesScripts生成自己的标签
本文是在前面两篇文章的基础上,讲解如何更改训练数据集颜色,需要与前面两篇文章连起来看。
本文用于修改cityscapes数据集的标签颜色与Semankitti数据集的标签一致,对修改后的数据集进行训练。需要下载两个开发工具包和一个数据集,分别是cityscapesScripts-master、semantic-kitti-api-master和cityscapes数据集:
- cityscapesScripts是用于检查、准备和评估 Cityscapes 数据集的脚本。下载路径:
https://github.com/mcordts/cityscapesScripts
- cityscapes数据集需要注册登录才能下载,下载链接:
Login – Cityscapes Dataset

下载完成后,在cityscapesScripts-master中创建一个cityscapes文件夹,将下载好的两个文件分别放入其中,解压出来的说明文件直接删除即可,最终如下图:

- semantic-kitti-api是用于打开、可视化、处理和评估 SemanticKITTI 数据集中的点云和标签结果的帮助程序脚本。下载路径:
https://github.com/PRBonn/semantic-kitti-api
一、制作标签步骤
1.1 更改标签颜色
进入目录cityscapesScripts-master\cityscapesscripts\helpers\labels.py中修改标签颜色与semantic-kitti-api-master\config\semanic-kitti.yaml中一致。注意:semantic-kitti-api-maste中的颜色是BGR颜色,cityscapesScripts中的颜色是RGB颜色,颠倒一下
cityscapesScripts-master\cityscapesscripts\helpers\labels.py标签:

semantic-kitti-api-master\config\semanic-kitti.yaml标签:

修改后的cityscapesScripts-master\cityscapesscripts\helpers\labels.py标签,可以直接拷贝使用:
labels = [# name id trainId category catId hasInstances ignoreInEval colorLabel( 'unlabeled' , 0 , 255 , 'void' , 0 , False , True , ( 0, 0, 0) ),Label( 'ego vehicle' , 1 , 255 , 'void' , 0 , False , True , ( 0, 0, 0) ),Label( 'rectification border' , 2 , 255 , 'void' , 0 , False , True , ( 0, 0, 0) ),Label( 'out of roi' , 3 , 255 , 'void' , 0 , False , True , ( 0, 0, 0) ),Label( 'static' , 4 , 255 , 'void' , 0 , False , True , ( 0, 0, 0) ),Label( 'dynamic' , 5 , 255 , 'void' , 0 , False , True , (111, 74, 0) ),
# Label( 'ground' , 6 , 255 , 'void' , 0 , False , True , ( 81, 0, 81) ),Label( 'ground' , 6 , 255 , 'void' , 0 , False , True , ( 175, 0, 75) ),
# Label( 'road' , 7 , 0 , 'flat' , 1 , False , False , (128, 64,128) ),Label( 'road' , 7 , 0 , 'flat' , 1 , False , False , (255, 0,255) ),
# Label( 'sidewalk' , 8 , 1 , 'flat' , 1 , False , False , (244, 35,232) ),Label( 'sidewalk' , 8 , 1 , 'flat' , 1 , False , False , (75, 0,75) ),
# Label( 'parking' , 9 , 255 , 'flat' , 1 , False , True , (250,170,160) ),Label( 'parking' , 9 , 255 , 'flat' , 1 , False , True , (255,150,255) ),
# Label( 'rail track' , 10 , 255 , 'flat' , 1 , False , True , (230,150,140) ),Label( 'rail track' , 10 , 255 , 'flat' , 1 , False , True , (0,0,255) ),
# Label( 'building' , 11 , 2 , 'construction' , 2 , False , False , ( 70, 70, 70) ),Label( 'building' , 11 , 2 , 'construction' , 2 , False , False , ( 255, 200, 0) ),
# Label( 'wall' , 12 , 3 , 'construction' , 2 , False , False , (102,102,156) ),Label( 'wall' , 12 , 3 , 'construction' , 2 , False , False , (255,150,0) ),
# Label( 'fence' , 13 , 4 , 'construction' , 2 , False , False , (190,153,153) ),Label( 'fence' , 13 , 4 , 'construction' , 2 , False , False , (255,120,50) ),
# Label( 'guard rail' , 14 , 255 , 'construction' , 2 , False , True , (180,165,180) ),Label( 'guard rail' , 14 , 255 , 'construction' , 2 , False , True , (255,150,0) ),
# Label( 'bridge' , 15 , 255 , 'construction' , 2 , False , True , (150,100,100) ),Label( 'bridge' , 15 , 255 , 'construction' , 2 , False , True , (255,150,0) ),
# Label( 'tunnel' , 16 , 255 , 'construction' , 2 , False , True , (150,120, 90) ),Label( 'tunnel' , 16 , 255 , 'construction' , 2 , False , True , (255,150, 0) ),
# Label( 'pole' , 17 , 5 , 'object' , 3 , False , False , (153,153,153) ),Label( 'pole' , 17 , 5 , 'object' , 3 , False , False , (255,240,150) ),
# Label( 'polegroup' , 18 , 255 , 'object' , 3 , False , True , (153,153,153) ),Label( 'polegroup' , 18 , 255 , 'object' , 3 , False , True , (50,255,255) ),
# Label( 'traffic light' , 19 , 6 , 'object' , 3 , False , False , (250,170, 30) ),Label( 'traffic light' , 19 , 6 , 'object' , 3 , False , False , (50,255, 255) ),
# Label( 'traffic sign' , 20 , 7 , 'object' , 3 , False , False , (220,220, 0) ),Label( 'traffic sign' , 20 , 7 , 'object' , 3 , False , False , (255,0, 0) ),
# Label( 'vegetation' , 21 , 8 , 'nature' , 4 , False , False , (107,142, 35) ),Label( 'vegetation' , 21 , 8 , 'nature' , 4 , False , False , (0,175, 0) ),
# Label( 'terrain' , 22 , 9 , 'nature' , 4 , False , False , (152,251,152) ),Label( 'terrain' , 22 , 9 , 'nature' , 4 , False , False , (150,240,80) ),
# Label( 'sky' , 23 , 10 , 'sky' , 5 , False , False , ( 70,130,180) ),Label( 'sky' , 23 , 10 , 'sky' , 5 , False , False , ( 0,0,0) ),
# Label( 'person' , 24 , 11 , 'human' , 6 , True , False , (220, 20, 60) ),Label( 'person' , 24 , 11 , 'human' , 6 , True , False , (255, 30, 30) ),
# Label( 'rider' , 25 , 12 , 'human' , 6 , True , False , (255, 0, 0) ),Label( 'rider' , 25 , 12 , 'human' , 6 , True , False , (255, 40, 200) ),
# Label( 'car' , 26 , 13 , 'vehicle' , 7 , True , False , ( 0, 0,142) ),Label( 'car' , 26 , 13 , 'vehicle' , 7 , True , False , ( 100, 150,245) ),
# Label( 'truck' , 27 , 14 , 'vehicle' , 7 , True , False , ( 0, 0, 70) ),Label( 'truck' , 27 , 14 , 'vehicle' , 7 , True , False , ( 80, 30, 180) ),
# Label( 'bus' , 28 , 15 , 'vehicle' , 7 , True , False , ( 0, 60,100) ),Label( 'bus' , 28 , 15 , 'vehicle' , 7 , True , False , ( 100, 80,250) ),
# Label( 'caravan' , 29 , 255 , 'vehicle' , 7 , True , True , ( 0, 0, 90) ),Label( 'caravan' , 29 , 255 , 'vehicle' , 7 , True , True , ( 0, 0, 255) ),
# Label( 'trailer' , 30 , 255 , 'vehicle' , 7 , True , True , ( 0, 0,110) ),Label( 'trailer' , 30 , 255 , 'vehicle' , 7 , True , True , ( 0, 0,255) ),
# Label( 'train' , 31 , 16 , 'vehicle' , 7 , True , False , ( 0, 80,100) ),Label( 'train' , 31 , 16 , 'vehicle' , 7 , True , False , ( 0, 0,255) ),
# Label( 'motorcycle' , 32 , 17 , 'vehicle' , 7 , True , False , ( 0, 0,230) ),Label( 'motorcycle' , 32 , 17 , 'vehicle' , 7 , True , False , ( 30, 60,150) ),
# Label( 'bicycle' , 33 , 18 , 'vehicle' , 7 , True , False , (119, 11, 32) ),Label( 'bicycle' , 33 , 18 , 'vehicle' , 7 , True , False , (100, 230, 245) ),
# Label( 'license plate' , -1 , -1 , 'vehicle' , 7 , False , True , ( 0, 0,142) ),Label( 'license plate' , -1 , -1 , 'vehicle' , 7 , False , True , ( 0, 0,255) ),
]
1.2 生成训练标签
1.2.1 生成labelIds标签
进入目录:cityscapesScripts-master\cityscapesscripts\preparation中
运行下面代码:
# 运行成功后会在cityscapes数据集中生成_labelTrainIds结尾的训练文件python .\createTrainIdLabelImgs.py
此时进入cityscapesScripts-master\cityscapes\gtFine\train中任何一个城市,会发现多了一个修改好的训练标签(gtFine中test、train和val中均多了一个训练标签,不一一展示):

2.2 生成instanceIds标签
进入目录:cityscapesScripts-master\cityscapesscripts\preparation中
运行下面代码
# # 运行成功后会在cityscapes数据集中生成_instanceTrainIds结尾的训练文件
python .\createTrainIdInstanceImgs.py
此时进入cityscapesScripts-master\cityscapes\gtFine\train中任何一个城市,会发现多了一个另一个实例训练标签,(gtFine中test、train和val中均多了一个训练标签,不一一展示):

2.3 修改DeepLabV3Plus-Pytorch中datasets\cityscapes.py中RGB值
训练之前,修改datasets\cityscapes.py文件中标签RGB值与cityscapesScripts-master中一致,可直接使用:

修改好的标签代码如下:
CityscapesClass = namedtuple('CityscapesClass', ['name', 'id', 'train_id', 'category', 'category_id','has_instances', 'ignore_in_eval', 'color'])classes = [CityscapesClass('unlabeled', 0, 255, 'void', 0, False, True, (0, 0, 0)),CityscapesClass('ego vehicle', 1, 255, 'void', 0, False, True, (0, 0, 0)),CityscapesClass('rectification border', 2, 255, 'void', 0, False, True, (0, 0, 0)),CityscapesClass('out of roi', 3, 255, 'void', 0, False, True, (0, 0, 0)),CityscapesClass('static', 4, 255, 'void', 0, False, True, (0, 0, 0)),CityscapesClass('dynamic', 5, 255, 'void', 0, False, True, (111, 74, 0)),# CityscapesClass('ground', 6, 255, 'void', 0, False, True, (81, 0, 81)),CityscapesClass('ground', 6, 255, 'void', 0, False, True, (175, 0, 75)),# CityscapesClass('road', 7, 0, 'flat', 1, False, False, (128, 64, 128)),CityscapesClass('road', 7, 0, 'flat', 1, False, False, (255, 0, 255)),# CityscapesClass('sidewalk', 8, 1, 'flat', 1, False, False, (244, 35, 232)),CityscapesClass('sidewalk', 8, 1, 'flat', 1, False, False, (75, 0, 75)),# CityscapesClass('parking', 9, 255, 'flat', 1, False, True, (250, 170, 160)),CityscapesClass('parking', 9, 255, 'flat', 1, False, True, (255, 150, 255)),# CityscapesClass('rail track', 10, 255, 'flat', 1, False, True, (230, 150, 140)),CityscapesClass('rail track', 10, 255, 'flat', 1, False, True, (0, 0, 255)),# CityscapesClass('building', 11, 2, 'construction', 2, False, False, (70, 70, 70)),CityscapesClass('building', 11, 2, 'construction', 2, False, False, (255, 200, 0)),# CityscapesClass('wall', 12, 3, 'construction', 2, False, False, (102, 102, 156)),CityscapesClass('wall', 12, 3, 'construction', 2, False, False, (255, 150, 0)),# CityscapesClass('fence', 13, 4, 'construction', 2, False, False, (190, 153, 153)),CityscapesClass('fence', 13, 4, 'construction', 2, False, False, (255, 120, 50)),# CityscapesClass('guard rail', 14, 255, 'construction', 2, False, True, (180, 165, 180)),CityscapesClass('guard rail', 14, 255, 'construction', 2, False, True, (255, 150, 0)),# CityscapesClass('bridge', 15, 255, 'construction', 2, False, True, (150, 100, 100)),CityscapesClass('bridge', 15, 255, 'construction', 2, False, True, (255, 150, 0)),# CityscapesClass('tunnel', 16, 255, 'construction', 2, False, True, (150, 120, 90)),CityscapesClass('tunnel', 16, 255, 'construction', 2, False, True, (255, 150, 0)),# CityscapesClass('pole', 17, 5, 'object', 3, False, False, (153, 153, 153)),CityscapesClass('pole', 17, 5, 'object', 3, False, False, (255, 240, 150)),# CityscapesClass('polegroup', 18, 255, 'object', 3, False, True, (153, 153, 153)),CityscapesClass('polegroup', 18, 255, 'object', 3, False, True, (50, 255, 255)),# CityscapesClass('traffic light', 19, 6, 'object', 3, False, False, (250, 170, 30)),CityscapesClass('traffic light', 19, 6, 'object', 3, False, False, (50, 255, 255)),# CityscapesClass('traffic sign', 20, 7, 'object', 3, False, False, (220, 220, 0)),CityscapesClass('traffic sign', 20, 7, 'object', 3, False, False, (255, 0, 0)),# CityscapesClass('vegetation', 21, 8, 'nature', 4, False, False, (107, 142, 35)),CityscapesClass('vegetation', 21, 8, 'nature', 4, False, False, (0, 175, 0)),# CityscapesClass('terrain', 22, 9, 'nature', 4, False, False, (152, 251, 152)),CityscapesClass('terrain', 22, 9, 'nature', 4, False, False, (150, 240, 80)),# CityscapesClass('sky', 23, 10, 'sky', 5, False, False, (70, 130, 180)),CityscapesClass('sky', 23, 10, 'sky', 5, False, False, (0, 0, 0)),# CityscapesClass('person', 24, 11, 'human', 6, True, False, (220, 20, 60)),CityscapesClass('person', 24, 11, 'human', 6, True, False, (255, 30, 30)),# CityscapesClass('rider', 25, 12, 'human', 6, True, False, (255, 0, 0)),CityscapesClass('rider', 25, 12, 'human', 6, True, False, (255, 40, 200)),# CityscapesClass('car', 26, 13, 'vehicle', 7, True, False, (0, 0, 142)),CityscapesClass('car', 26, 13, 'vehicle', 7, True, False, (100, 150, 245)),# CityscapesClass('truck', 27, 14, 'vehicle', 7, True, False, (0, 0, 70)),CityscapesClass('truck', 27, 14, 'vehicle', 7, True, False, (80, 30, 180)),# CityscapesClass('bus', 28, 15, 'vehicle', 7, True, False, (0, 60, 100)),CityscapesClass('bus', 28, 15, 'vehicle', 7, True, False, (100, 80, 250)),# CityscapesClass('caravan', 29, 255, 'vehicle', 7, True, True, (0, 0, 90)),CityscapesClass('caravan', 29, 255, 'vehicle', 7, True, True, (0, 0, 255)),# CityscapesClass('trailer', 30, 255, 'vehicle', 7, True, True, (0, 0, 110)),CityscapesClass('trailer', 30, 255, 'vehicle', 7, True, True, (0, 0, 255)),# CityscapesClass('train', 31, 16, 'vehicle', 7, True, False, (0, 80, 100)),CityscapesClass('train', 31, 16, 'vehicle', 7, True, False, (0, 0, 255)),# CityscapesClass('motorcycle', 32, 17, 'vehicle', 7, True, False, (0, 0, 230)),CityscapesClass('motorcycle', 32, 17, 'vehicle', 7, True, False, (30, 60, 150)),# CityscapesClass('bicycle', 33, 18, 'vehicle', 7, True, False, (119, 11, 32)),CityscapesClass('bicycle', 33, 18, 'vehicle', 7, True, False, (100, 230, 245)),CityscapesClass('license plate', -1, 255, 'vehicle', 7, False, True, (0, 0, 255)),]
更改完成后,在DeepLabV3Plus-Pytorch-master中训练,即可得到训练后的新结果:

相关文章:
【Deeplabv3+】Ubutu18.04中使用pytorch复现Deeplabv3+第三步)-----CityscapesScripts生成自己的标签
本文是在前面两篇文章的基础上,讲解如何更改训练数据集颜色,需要与前面两篇文章连起来看。 本文用于修改cityscapes数据集的标签颜色与Semankitti数据集的标签一致,对修改后的数据集进行训练。需要下载两个开发工具包和一个数据集࿰…...
《动手学深度学习(PyTorch版)》笔记3.3
注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过。…...
OpenGL ES 渲染 NV21、NV12 格式图像有哪些“姿势”?
使用2个纹理实现 NV21 格式图像渲染 前文提到渲染 NV21 格式图像需要使用 2 个纹理,分别用于保存 Y plane 和 UV plane 的数据,然后在片段着色器中分别对 2 个纹理进行采样,转换成 RGB 数据。 OpenGLES 渲染 NV21或 NV12 格式图像需要用到 GL_LUMINANCE 和 GL_LUMINANCE_A…...
P8813 [CSP-J 2022] 乘方 题解
目录 题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示题目简化题目思路AC 代码 观前提示,此题解解法非正解,仅仅是卡过数据才 A C AC AC 的。正解请参考他人博客。 题目描述 小文同学刚刚接触了信息学竞赛…...
Ubuntu 常用命令、docker 常用命令、unzip常用命令、tar常用命令
ubuntu 常用命令: 进入管理员模式: sudo su退出管理员模式: su <用户名>重启系统: rebootubuntu 复制文件夹下文件到其他文件夹下 cp -r source_folder/* destination_folder/删除文件夹下内容而不删除自身(进入到目录…...
保护医疗数据不受威胁:MPLS专线在医疗网络安全中的角色
随着数字技术的快速发展,医疗行业正在经历一场革命。从电子健康记录到远程医疗服务,数字化不仅提高了效率,也带来了前所未有的挑战--尤其是关于数据安全和隐私保护的挑战。在这样的背景下,如何确保敏感的医疗数据安全传输…...
Java面试题夺命连环问
如何实现一个ioc容器 配置文件配置包扫码路径递归包扫描获取.class文件反射确定需要 交给IOC管理的类对需要注入的类进行依赖注入 配置文件中指定需要扫描的包路径 定义一些注解,分别表示访问控制层,业务服务层,数据持久层,依赖…...
华为策略路由+NQA配置
---NQA--- [RouterA] nqa test-instance admin NQA [RouterA-nqa-admin-vlan10] test-type icmp [RouterA-nqa-admin-vlan10] destination-address ipv4 对方地址 [RouterA-nqa-admin-vlan10] frequency 10 [RouterA-nqa-admin-vlan10] probe-count 2 [RouterA-nqa-admin-vlan…...
逆置字符串
将字符串逆序,比如输入abcd,返回dcba void reverse(char*left,char *right) { while (right>left) { char temp *left; *left *right; *right temp; right--; left; } } int main() { char arr[100] { 0 };//定义…...
第九节HarmonyOS 常用基础组件14-DataPanel
1、描述 数据面板组件,用于将多个数据占比情况使用占比图进行展示。 2、接口 DataPanel(options:{values: number[], max?: numner, type?: DataPanelType}) 3、参数 参数名 参数类型 必填 描述 values number[] 是 数据值列表,最多含9条数…...
Vue开发之proxy代理的配置(附带uniapp代理配置)
vue 1.在vue.config.js中添加 devServer 属性中配置 proxy 属性 module.exports {productionSourceMap: false,publicPath: /,devServer: {port: 8085,proxy: {/api/admin: {target: http://10.58.104.70:6111,changeOrigin: true,pathRewrite: {/api/: /}},/api: {target: …...
【数据分享】2023年我国省市县三级的公司企业数量(21类公司企业/Excel/Shp格式)
医药公司、建筑公司、电信公司等公司企业的数量是一个城市生命力的重要体现,一个城市的公司企业种类越丰富,数量越多,通常能表示这个城市的生命力越旺盛! 本次我们为大家带来的是我国各省份、各地级市、各区县三个层级的公司企业…...
6JS对象
6.1对象简介 对象是JavaScript的基本数据类型。对象是一种复合值:它将很多值(原始值或者其他对象)聚合在一起,可通过名字访问这些值。对象也可看做是属性的无序集合,每个属性都是一个名/值对。属性名是字符串…...
粒子群算法求解港口泊位调度问题(MATLAB代码)
粒子群算法(Particle Swarm Optimization,PSO)是一种基于群体智能的优化算法,它通过模拟鸟群或鱼群的行为来寻找最优解。在泊位调度问题中,目标是最小化所有船只在港时间的总和,而PSO算法可以帮助我们找到一…...
idea控制台出现乱码的解决方案
概述:有时候控制台的关键说明出现乱码,就很令人烦恼 在 IntelliJ IDEA 中出现控制台乱码通常是由于编码设置不正确或者字体显示问题导致的。以下是一些可能的解决方案: 1. 设置项目编码 确保你的项目编码设置正确: 在 Intelli…...
R语言【taxlist】——summary(),show(),print():打印taxlist对象及其内容的概述
Package taxlist version 0.2.4 Description 一种方法,用于显示 taxlist 对象内容的概述或所选分类组的概述。 Usage ## S4 method for signature taxlist summary(object,ConceptID,units "Kb",check_validity TRUE,display "both",maxs…...
【深度学习】sdxl中的 text_encoder text_encoder_2 区别
镜像问题是:https://editor.csdn.net/md/?articleId135867689 代码仓库: https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/tree/main 截图: 为什么有两个CLIP编码器 text_encoder 和 text_encoder_2 ? 在…...
上位机图像处理和嵌入式模块部署(python opencv)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们谈到了qt,谈到了opencv,也谈到了嵌入式,但是没有说明python在这个过程当中应该扮演什么样的角色。open…...
父元素flex:1 高度却被子元素撑开的问题
问题 当父元素设置了flex: 1; 的情况下,想在其中子元素超出父元素高度的情况下,产生滚动条,在父元素区域滚动。由于子元素高度不固定,故父元素设置为display: flex; flex-direction: column; 子元素设置flex: 1; overflow: auto;…...
【LUA】mac状态栏添加天气
基于网络上的版本修改的,找不到出处了。第一个摸索的lua脚本,调了很久。 主要修改:如果风速不大,就默认不显示,以及调整为了一些格式 local urlApi http://.. --这个urlApi去申请个免费的就可以了 然后打开对应的json…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
6.计算机网络核心知识点精要手册
计算机网络核心知识点精要手册 1.协议基础篇 网络协议三要素 语法:数据与控制信息的结构或格式,如同语言中的语法规则语义:控制信息的具体含义和响应方式,规定通信双方"说什么"同步:事件执行的顺序与时序…...
【系统架构设计师-2025上半年真题】综合知识-参考答案及部分详解(回忆版)
更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20~21题】【第…...
Vue3学习(接口,泛型,自定义类型,v-for,props)
一,前言 继续学习 二,TS接口泛型自定义类型 1.接口 TypeScript 接口(Interface)是一种定义对象形状的强大工具,它可以描述对象必须包含的属性、方法和它们的类型。接口不会被编译成 JavaScript 代码,仅…...
XXE漏洞知识
目录 1.XXE简介与危害 XML概念 XML与HTML的区别 1.pom.xml 主要作用 2.web.xml 3.mybatis 2.XXE概念与危害 案例:文件读取(需要Apache >5.4版本) 案例:内网探测(鸡肋) 案例:执行命…...
第21节 Node.js 多进程
Node.js本身是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核 cpu 的系统上创建多个子进程,从而提高性能。 每个子进程总是带有三个流对象:child.stdin, child.stdout和child.stderr。他们可能会共享…...
