- 详解多模态(红外-可见光图像)目标检测模型SuperYOLO源码,真正搞清代码逻辑!
弗兰随风小欢
目标检测实验系列深度学习目标检测YOLO计算机视觉多模态目标检测视觉检测人工智能
目录1.文章主要内容2.相关说明3.基于SuperYOLO的多模态目标检测3.1详解代码流程(重点)3.1.1train.py文件(入口)3.1.2SRyolo.py文件3.1.3datasets.py文件3.1.4再次回到train.py文件3.1.5再次回到SRyolo.py文件3.总结1.文章主要内容本文主要是详细分析SuperYOLO多模态源代码,包括如何启动,以及详细代码部分如何改进,从
- python根目录的生成
影月L
python
python根目录的生成importosfromosimportgetcwdwd=getcwd()#os.getcwd()方法能够返回当前工作目录datasets_path="data/"#里面有个文件夹data,图片就存于次文件夹中photos_names=os.listdir(datasets_path)#返回指定的文件夹包含的文件或文件夹的名字的列表photos_names=sorted(p
- 使用一个大语言模型对另一个大语言模型进行“调教”
大霸王龙
python人工智能python
使用一个大语言模型对另一个大语言模型进行“调教”(通常称为微调或适配),是一种常见的技术手段,用于让目标模型更好地适应特定的任务、领域或风格。以下是基于搜索结果整理的详细步骤和方法:1.准备工作安装必要的库•Transformers:用于加载和训练模型。•Datasets:用于处理数据集。•PEFT:用于微调,特别是LoRA(Low-RankAdaptation)等技术。•Accelerate:用
- [未解决]tensorflow_datasets.core.download.download_manager.NonMatchingChecksumError:
爱生活爱自己爱学习
python硕士pythontensorflow
Extractioncompleted...:0file[1:53:39,?file/s]Traceback(mostrecentcalllast):File"E:/github/tf_models/tutorials/image/cifar10/cifar10_train.py",line126,intf.app.run()File"E:\software\Anaconda3\lib\site-
- What‘s the best way to handle large datasets in Matplotlib?
若木胡
matplotlib
TheuserisaskingaboutthebestwaytohandlelargedatasetsinMatplotlib.Ineedtoprovidepracticalandeffectivestrategiesthatcanhelpoptimizebothperformanceandreadabilitywhenworkingwithlargedatasets.I’llstartbybre
- Silero VAD 教程
褚艳影Gloria
SileroVAD教程silero-vadSileroVAD:pre-trainedenterprise-gradeVoiceActivityDetector项目地址:https://gitcode.com/gh_mirrors/si/silero-vad1.项目目录结构及介绍该开源项目silero-vad的目录结构如下:.├──datasets#包含示例数据集└──examples#存放示例代码
- YOLO 安装 并且命令行指定配置文件
ELI_He999
python人工智能YOLO人工智能深度学习
pipinstallultralyticssettings.yaml保存到当前目录,data参数yolo命令行指定配置文件{"settings_version":"0.0.6","datasets_dir":"xxxx\\datasets","weights_dir":"xxxx\\weights","runs_dir":"xxxx\\runs","uuid":"xxxx","sync":true
- 机器学习-分类算法评估标准
赛丽曼
机器学习机器学习分类人工智能
一.准确率accuracy将预测结果和测试集的目标值比较,计算预测正确的百分比准确率越高说明模型效果越好fromsklearnimportdatasetsfromsklearn.model_selectionimporttrain_test_splitfromsklearn.neighborsimportKNeighborsClassifier#加载鸢尾花数据X,y=datasets.load_i
- python datasets_python基础之sklearn.datasets
weixin_39897887
pythondatasets
sklearn.datasets模块主要提供了一些导入、在线下载及本地生成数据集的方法,可以通过dir或help命令查看,我们会发现主要有三种形式:load_、fetch_及make_的方法(1)datasets.load_:sklearn包自带的小数据集In[2]:datasets.load_*?datasets.load_boston#波士顿房价数据集datasets.load_breast_
- sklearn.datasets
SilenceHell
机器学习实战学习笔记
fromsklearn.datasets.california_housingimportfetch_california_housinghousing=fetch_california_housing()type(housing)Out[21]:sklearn.utils.Bunchtype(housing.data)Out[23]:numpy.ndarrayhousing.data[0]Out
- 第01章 14 VTK数据集(DataSet)的类型
捕鲸叉
VTK编程学习VTK
在VTK(VisualizationToolkit)中,数据类型(DataTypes)主要用于表示不同类型的数据集(DataSets),这些数据集可以是几何和拓扑信息的组合,用于描述三维空间中的对象。每种数据类型都有其独特的特点和应用场合。以下是VTK中常用的数据类型及其特点和应用:1.vtkPolyData特点:vtkPolyData是一种简单的数据类型,用于表示多边形数据。它由点(Points
- 基于深度学习的推荐系统构建:Movielens 数据集
fresh的转码之路
深度学习人工智能机器学习推荐算法
基于深度学习的推荐系统构建:Movielens数据集依赖环境代码语言:python3.11.5开发平台:pycharmtensorflow版本:2.18.0MovieLen1M数据及简介MovieLens1M数据集包含包含6000个用户在近4000部电影上的100万条评分,也包括电影元数据信息和用户属性信息。下载地址为:http://files.grouplens.org/datasets/mov
- 分类算法可视化方法
dundunmm
数据挖掘分类数据挖掘人工智能可视化
可视化方法可以用于帮助理解分类算法的决策边界、性能和在不同数据集上的行为。下面列举几个常见的可视化方法。1.决策边界可视化这种方法用于可视化不同分类算法在二维特征空间中如何分隔不同类别。对于理解决策树、支持向量机(SVM)、逻辑回归和k近邻(k-NN)等模型的行为非常有用。importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.datasets
- python下报错AttributeError: 'NoneType' object has no attribute 'shape'
无止境x
路径问题:config.TRAIN.hr_img_path=r'D:\SR_datasets\DIV2K\DIV2K_train_HR/'#最后还要加一个/斜杠
- 【ML】支持向量机SVM及Python实现(详细)
2401_84009698
程序员支持向量机python算法
fromsklearn.preprocessingimportStandardScalerfrommatplotlib.colorsimportListedColormapfromsklearn.svmimportSVC###2.1加载数据样本加载样本数据及其分类标签iris=datasets.load_iris()X=iris.data[:,[2,3]]#按花瓣划分#X=iris.data[:,
- R语言自学笔记-2内置数据集
实验室长工
#b站视频——R语言入门与数据分析#内置数据集#固定格式的数据(矩阵、数据框或一个时间序列等)#统计建模、回归分析等试验需要找合适的数据集#R内置数据集,存储在,通过help(package="datasets")#通过data函数访问这些数据集data()#得到新窗口前面:数据集名字后面:内容#包含R所有用到的数据类型,包括:向量、矩阵、列表、因子、数据框以及时间序列等#直接输入数据集的名字就可
- 深度学习目标检测入门COCO数据集
日暮途远z
深度学习目标检测人工智能
常见数据集类型:COCO数据集:Pytorch加载COCO数据集:COCO数据集的读取COCO_dataset=torchvision.datasets.CocoDetection(root="./dataset/val2017",annFile="./instances_val2017/instances_val2017.json")root(strorpathlib.Path)–Rootdir
- 【Python报错】已解决ModuleNotFoundError: No module named datasets
云天徽上
python运行报错解决记录numpy数据库pandas机器学习
成功解决“ModuleNotFoundError:Nomodulenameddatasets”错误的全面指南在Python编程中,遇到ModuleNotFoundError:Nomodulenameddatasets这样的错误通常意味着Python解释器无法找到名为datasets的模块。datasets是一个流行的Python库,常用于加载和处理大型数据集,特别是在自然语言处理(NLP)和机器学
- COCO8 dataset 每种代表什么
西柚与蓝莓
pytorchopencv
#UltralyticsYOLO,AGPL-3.0license#COCO8dataset(first8imagesfromCOCOtrain2017)byUltralytics#Documentation:https://docs.ultralytics.com/datasets/detect/coco8/#Exampleusage:yolotraindata=coco8.yaml#parent
- 【深度学习 transformer】使用pytorch 训练transformer 模型,hugginface 来啦
东华果汁哥
深度学习-文本分类深度学习transformerpytorch
HuggingFace是一个致力于开源自然语言处理(NLP)和机器学习项目的社区。它由几个关键组件组成:Transformers:这是一个基于PyTorch的库,提供了各种预训练的NLP模型,如BERT、GPT、RoBERTa、DistilBERT等。它还提供了一个简单易用的API来加载这些模型,并进行微调以适应特定的下游任务。Datasets:这是一个用于加载和预处理NLP数据集的库,与Tran
- Datawhale AI夏令营第五期CV Task01
m0_60530253
人工智能
一、报名参加2024大运河杯数据开发大赛1.登录赛事平台2.修改昵称,实名认证3.打开比赛链接报名参赛4.修改队伍名称二、领取厚德云支持的GPU在线算力!(点击即可跳转)三、体验baseline1.下载baseline相关文件aptinstallgit-lfsgitlfsinstallgitclonehttps://www.modelscope.cn/datasets/Datawhale/AI_C
- pyskl/datasets/pipelines/heatmap_related.py
鱼儿会飞吗
pythonnumpy开发语言
classGeneratePoseTarget:首先看def__call__(self,results):def__call__(self,results):heatmap=self.gen_an_aug(results)key='heatmap_imgs'if'imgs'inresultselse'imgs'ifself.double:indices=np.arange(heatmap.shap
- [论文笔记] LLM数据集——LongData-Corpus
心心喵
论文笔记服务器ubuntulinux
https://huggingface.co/datasets/yuyijiong/LongData-Corpus1、hf的数据在开发机上要设置sshkey,然后cat复制之后在设置在hf上2、中文小说数据在云盘上清华大学云盘下载:#!/bin/bash#BaseURLbase_url="https://cloud.tsinghua.edu.cn/d/0670fcb14d294c97b5cf/fi
- 深度学习五种不同代码实现,神经网络,机器学习
学呗~那不然呢
pycharm
第一种importnumpyasnpimporttensorflowastfmnist=tf.keras.datasets.mnistimportmatplotlib.pyplotaspltimportmatplotlibmatplotlib.use("TkAgg")(x_train,y_train),(x_test,y_test)=mnist.load_data()x_train=x_train
- Python_pytorch(五)模型训练
Han Gang
pythonpytorch深度学习
反向传播LossFunctionimporttorchvisionfromtorchimportnnfromtorch.nnimportFlattenfromtorch.utils.dataimportDataLoaderdataset=torchvision.datasets.CIFAR10("./data",train=False,transform=torchvision.transform
- C# OpenVino Yolov8 Pose 姿态识别
乱蜂朝王
人工智能c#openvinoYOLO
目录效果模型信息项目代码下载效果模型信息ModelProperties-------------------------date:2023-09-07T17:11:43.091306description:UltralyticsYOLOv8n-posemodeltrainedon/usr/src/app/ultralytics/datasets/coco-pose.yamlauthor:Ultra
- tenorflow
小鱼儿小于儿
tensorflow
tensorflow笔记3MNIST数据集共7万张图片,都是28*28像素点的手写数字图片。6万张用于训练,1万张用于测试。importtensorflowastfmnist=tf.keras.datasets.mnist(x_train,y_train),(x_test,y_test)=mnist.load_data()#直接送数据集中读取训练集和测试机x_train,x_test=x_trai
- 运行《tensorflow21天》的warning
guxue365
AI
在运行第一章的时候所出现得提示信息wt@wt-desktop:~/software/AI/chapter_1$pythondownload.pyWARNING:tensorflow:Fromdownload.py:5:read_data_sets(fromtensorflow.contrib.learn.python.learn.datasets.mnist)isdeprecatedandwill
- python代码进行图像配准
@爱编程的郭同学
pythonopencv开发语言
这段代码演示了如何使用ORB特征检测器和特征匹配来进行图像配准。图像配准是将两幅图像对齐,使得它们在同一空间中表现出相似的视觉内容。一、效果图展示二、代码importcv2importnumpyasnp#读取两张图像#image1是RGBimage2是高光谱相机拍的伪RGB#iamge1和iamge2尺寸可以是不一样的image1=cv2.imread('datasets/image/ccc.bm
- PyTorch – 逻辑回归
一个高效工作的家伙
pythonpytorch逻辑回归人工智能
data首先导入torch里面专门做图形处理的一个库,torchvision,根据官方安装指南,你在安装pytorch的时候torchvision也会安装。我们需要使用的是torchvision.transforms和torchvision.datasets以及torch.utils.data.DataLoader首先DataLoader是导入图片的操作,里面有一些参数,比如batch_size和
- 强大的销售团队背后 竟然是大数据分析的身影
蓝儿唯美
数据分析
Mark Roberge是HubSpot的首席财务官,在招聘销售职位时使用了大量数据分析。但是科技并没有挤走直觉。
大家都知道数理学家实际上已经渗透到了各行各业。这些热衷数据的人们通过处理数据理解商业流程的各个方面,以重组弱点,增强优势。
Mark Roberge是美国HubSpot公司的首席财务官,HubSpot公司在构架集客营销现象方面出过一份力——因此他也是一位数理学家。他使用数据分析
- Haproxy+Keepalived高可用双机单活
bylijinnan
负载均衡keepalivedhaproxy高可用
我们的应用MyApp不支持集群,但要求双机单活(两台机器:master和slave):
1.正常情况下,只有master启动MyApp并提供服务
2.当master发生故障时,slave自动启动本机的MyApp,同时虚拟IP漂移至slave,保持对外提供服务的IP和端口不变
F5据说也能满足上面的需求,但F5的通常用法都是双机双活,单活的话还没研究过
服务器资源
10.7
- eclipse编辑器中文乱码问题解决
0624chenhong
eclipse乱码
使用Eclipse编辑文件经常出现中文乱码或者文件中有中文不能保存的问题,Eclipse提供了灵活的设置文件编码格式的选项,我们可以通过设置编码 格式解决乱码问题。在Eclipse可以从几个层面设置编码格式:Workspace、Project、Content Type、File
本文以Eclipse 3.3(英文)为例加以说明:
1. 设置Workspace的编码格式:
Windows-&g
- 基础篇--resources资源
不懂事的小屁孩
android
最近一直在做java开发,偶尔敲点android代码,突然发现有些基础给忘记了,今天用半天时间温顾一下resources的资源。
String.xml 字符串资源 涉及国际化问题
http://www.2cto.com/kf/201302/190394.html
string-array
- 接上篇补上window平台自动上传证书文件的批处理问卷
酷的飞上天空
window
@echo off
: host=服务器证书域名或ip,需要和部署时服务器的域名或ip一致 ou=公司名称, o=公司名称
set host=localhost
set ou=localhost
set o=localhost
set password=123456
set validity=3650
set salias=s
- 企业物联网大潮涌动:如何做好准备?
蓝儿唯美
企业
物联网的可能性也许是无限的。要找出架构师可以做好准备的领域然后利用日益连接的世界。
尽管物联网(IoT)还很新,企业架构师现在也应该为一个连接更加紧密的未来做好计划,而不是跟上闸门被打开后的集成挑战。“问题不在于物联网正在进入哪些领域,而是哪些地方物联网没有在企业推进,” Gartner研究总监Mike Walker说。
Gartner预测到2020年物联网设备安装量将达260亿,这些设备在全
- spring学习——数据库(mybatis持久化框架配置)
a-john
mybatis
Spring提供了一组数据访问框架,集成了多种数据访问技术。无论是JDBC,iBATIS(mybatis)还是Hibernate,Spring都能够帮助消除持久化代码中单调枯燥的数据访问逻辑。可以依赖Spring来处理底层的数据访问。
mybatis是一种Spring持久化框架,要使用mybatis,就要做好相应的配置:
1,配置数据源。有很多数据源可以选择,如:DBCP,JDBC,aliba
- Java静态代理、动态代理实例
aijuans
Java静态代理
采用Java代理模式,代理类通过调用委托类对象的方法,来提供特定的服务。委托类需要实现一个业务接口,代理类返回委托类的实例接口对象。
按照代理类的创建时期,可以分为:静态代理和动态代理。
所谓静态代理: 指程序员创建好代理类,编译时直接生成代理类的字节码文件。
所谓动态代理: 在程序运行时,通过反射机制动态生成代理类。
一、静态代理类实例:
1、Serivce.ja
- Struts1与Struts2的12点区别
asia007
Struts1与Struts2
1) 在Action实现类方面的对比:Struts 1要求Action类继承一个抽象基类;Struts 1的一个具体问题是使用抽象类编程而不是接口。Struts 2 Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制的服务成为可能。Struts 2提供一个ActionSupport基类去实现常用的接口。即使Action接口不是必须实现的,只有一个包含execute方法的P
- 初学者要多看看帮助文档 不要用js来写Jquery的代码
百合不是茶
jqueryjs
解析json数据的时候需要将解析的数据写到文本框中, 出现了用js来写Jquery代码的问题;
1, JQuery的赋值 有问题
代码如下: data.username 表示的是: 网易
$("#use
- 经理怎么和员工搞好关系和信任
bijian1013
团队项目管理管理
产品经理应该有坚实的专业基础,这里的基础包括产品方向和产品策略的把握,包括设计,也包括对技术的理解和见识,对运营和市场的敏感,以及良好的沟通和协作能力。换言之,既然是产品经理,整个产品的方方面面都应该能摸得出门道。这也不懂那也不懂,如何让人信服?如何让自己懂?就是不断学习,不仅仅从书本中,更从平时和各种角色的沟通
- 如何为rich:tree不同类型节点设置右键菜单
sunjing
contextMenutreeRichfaces
组合使用target和targetSelector就可以啦,如下: <rich:tree id="ruleTree" value="#{treeAction.ruleTree}" var="node" nodeType="#{node.type}"
selectionChangeListener=&qu
- 【Redis二】Redis2.8.17搭建主从复制环境
bit1129
redis
开始使用Redis2.8.17
Redis第一篇在Redis2.4.5上搭建主从复制环境,对它的主从复制的工作机制,真正的惊呆了。不知道Redis2.8.17的主从复制机制是怎样的,Redis到了2.4.5这个版本,主从复制还做成那样,Impossible is nothing! 本篇把主从复制环境再搭一遍看看效果,这次在Unbuntu上用官方支持的版本。 Ubuntu上安装Red
- JSONObject转换JSON--将Date转换为指定格式
白糖_
JSONObject
项目中,经常会用JSONObject插件将JavaBean或List<JavaBean>转换为JSON格式的字符串,而JavaBean的属性有时候会有java.util.Date这个类型的时间对象,这时JSONObject默认会将Date属性转换成这样的格式:
{"nanos":0,"time":-27076233600000,
- JavaScript语言精粹读书笔记
braveCS
JavaScript
【经典用法】:
//①定义新方法
Function .prototype.method=function(name, func){
this.prototype[name]=func;
return this;
}
//②给Object增加一个create方法,这个方法创建一个使用原对
- 编程之美-找符合条件的整数 用字符串来表示大整数避免溢出
bylijinnan
编程之美
import java.util.LinkedList;
public class FindInteger {
/**
* 编程之美 找符合条件的整数 用字符串来表示大整数避免溢出
* 题目:任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0
*
* 假设当前正在搜索由0,1组成的K位十进制数
- 读书笔记
chengxuyuancsdn
读书笔记
1、Struts访问资源
2、把静态参数传递给一个动作
3、<result>type属性
4、s:iterator、s:if c:forEach
5、StringBuilder和StringBuffer
6、spring配置拦截器
1、访问资源
(1)通过ServletActionContext对象和实现ServletContextAware,ServletReque
- [通讯与电力]光网城市建设的一些问题
comsci
问题
信号防护的问题,前面已经说过了,这里要说光网交换机与市电保障的关系
我们过去用的ADSL线路,因为是电话线,在小区和街道电力中断的情况下,只要在家里用笔记本电脑+蓄电池,连接ADSL,同样可以上网........
 
- oracle 空间RESUMABLE
daizj
oracle空间不足RESUMABLE错误挂起
空间RESUMABLE操作 转
Oracle从9i开始引入这个功能,当出现空间不足等相关的错误时,Oracle可以不是马上返回错误信息,并回滚当前的操作,而是将操作挂起,直到挂起时间超过RESUMABLE TIMEOUT,或者空间不足的错误被解决。
这一篇简单介绍空间RESUMABLE的例子。
第一次碰到这个特性是在一次安装9i数据库的过程中,在利用D
- 重构第一次写的线程池
dieslrae
线程池 python
最近没有什么学习欲望,修改之前的线程池的计划一直搁置,这几天比较闲,还是做了一次重构,由之前的2个类拆分为现在的4个类.
1、首先是工作线程类:TaskThread,此类为一个工作线程,用于完成一个工作任务,提供等待(wait),继续(proceed),绑定任务(bindTask)等方法
#!/usr/bin/env python
# -*- coding:utf8 -*-
- C语言学习六指针
dcj3sjt126com
c
初识指针,简单示例程序:
/*
指针就是地址,地址就是指针
地址就是内存单元的编号
指针变量是存放地址的变量
指针和指针变量是两个不同的概念
但是要注意: 通常我们叙述时会把指针变量简称为指针,实际它们含义并不一样
*/
# include <stdio.h>
int main(void)
{
int * p; // p是变量的名字, int *
- yii2 beforeSave afterSave beforeDelete
dcj3sjt126com
delete
public function afterSave($insert, $changedAttributes)
{
parent::afterSave($insert, $changedAttributes);
if($insert) {
//这里是新增数据
} else {
//这里是更新数据
}
}
 
- timertask
shuizhaosi888
timertask
java.util.Timer timer = new java.util.Timer(true);
// true 说明这个timer以daemon方式运行(优先级低,
// 程序结束timer也自动结束),注意,javax.swing
// 包中也有一个Timer类,如果import中用到swing包,
// 要注意名字的冲突。
TimerTask task = new
- Spring Security(13)——session管理
234390216
sessionSpring Security攻击保护超时
session管理
目录
1.1 检测session超时
1.2 concurrency-control
1.3 session 固定攻击保护
 
- 公司项目NODEJS实践0.3[ mongo / session ...]
逐行分析JS源代码
mongodbsessionnodejs
http://www.upopen.cn
一、前言
书接上回,我们搭建了WEB服务端路由、模板等功能,完成了register 通过ajax与后端的通信,今天主要完成数据与mongodb的存取,实现注册 / 登录 /
- pojo.vo.po.domain区别
LiaoJuncai
javaVOPOJOjavabeandomain
POJO = "Plain Old Java Object",是MartinFowler等发明的一个术语,用来表示普通的Java对象,不是JavaBean, EntityBean 或者 SessionBean。POJO不但当任何特殊的角色,也不实现任何特殊的Java框架的接口如,EJB, JDBC等等。
即POJO是一个简单的普通的Java对象,它包含业务逻辑
- Windows Error Code
OhMyCC
windows
0 操作成功完成.
1 功能错误.
2 系统找不到指定的文件.
3 系统找不到指定的路径.
4 系统无法打开文件.
5 拒绝访问.
6 句柄无效.
7 存储控制块被损坏.
8 存储空间不足, 无法处理此命令.
9 存储控制块地址无效.
10 环境错误.
11 试图加载格式错误的程序.
12 访问码无效.
13 数据无效.
14 存储器不足, 无法完成此操作.
15 系
- 在storm集群环境下发布Topology
roadrunners
集群stormtopologyspoutbolt
storm的topology设计和开发就略过了。本章主要来说说如何在storm的集群环境中,通过storm的管理命令来发布和管理集群中的topology。
1、打包
打包插件是使用maven提供的maven-shade-plugin,详细见maven-shade-plugin。
<plugin>
<groupId>org.apache.maven.
- 为什么不允许代码里出现“魔数”
tomcat_oracle
java
在一个新项目中,我最先做的事情之一,就是建立使用诸如Checkstyle和Findbugs之类工具的准则。目的是制定一些代码规范,以及避免通过静态代码分析就能够检测到的bug。 迟早会有人给出案例说这样太离谱了。其中的一个案例是Checkstyle的魔数检查。它会对任何没有定义常量就使用的数字字面量给出警告,除了-1、0、1和2。 很多开发者在这个检查方面都有问题,这可以从结果
- zoj 3511 Cake Robbery(线段树)
阿尔萨斯
线段树
题目链接:zoj 3511 Cake Robbery
题目大意:就是有一个N边形的蛋糕,切M刀,从中挑选一块边数最多的,保证没有两条边重叠。
解题思路:有多少个顶点即为有多少条边,所以直接按照切刀切掉点的个数排序,然后用线段树维护剩下的还有哪些点。
#include <cstdio>
#include <cstring>
#include <vector&