CUB单次调用API:简化GPU并行算法开发C++模板库CUB是实现高性能GPU基础算法(如扫描、排序、归约等)的首选工具。 本文介绍CUDA 13.1中引入的新CUB单次调用API。该API通过在底层自动管理内存,在完全不损失性能的前提下,极大简化了开发流程。CUB是什么? CUB的执行模型与此不同。调用CUB原语需要两步:首先计算所需的设备内存大小,然后显式分配内存并执行内核。 新的单次调用CUB API鉴于许多生产级代码库中广泛使用封装,CUB引入了新的单次调用API:// 单次调用:分配和执行在一步中完成cub::DeviceScan::ExclusiveSum(d_input 开始使用CUB通过将冗长的两阶段模式替换为精简的单次调用接口,CUB提供了一个现代化的API,消除了样板代码且不增加开销。
cub[0][2]] = max(dp[cub[0][0]][cub[0][1]][cub[0][2]],cub[0][2]); dp[cub[0][0]][cub[0][2]][cub [0][1]] = max(dp[cub[0][0]][cub[0][2]][cub[0][1]],cub[0][1]); dp[cub[0][1]][cub[0][0]][cub[0] [2]] = max(dp[cub[0][1]][cub[0][0]][cub[0][2]],cub[0][2]); dp[cub[0][2]][cub[0][0]][cub[0][1] ] = max(dp[cub[0][2]][cub[0][0]][cub[0][1]],cub[0][1]); dp[cub[0][1]][cub[0][2]][cub[0][0]] = max(dp[cub[0][1]][cub[0][2]][cub[0][0]],cub[0][0]); dp[cub[0][2]][cub[0][1]][cub[0][0]] = max
为例): cd Hawkeye/data wget https://data.caltech.edu/records/65de6-vp158/files/CUB_200_2011.tgz mkdir 在实验的 config 文件中修改 dataset 配置,示例如下: dataset: name: cub root_dir: data/bird/CUB_200_2011/images meta_dir : metadata/cub 4. # 使用 CUB200 数据集 root_dir: data/bird/CUB_200_2011/images # 数据集中图像放置的路径 meta_dir: metadata /cub # CUB200 的 metadata 路径 n_classes: 10 # 类别数,APINet 需要的数据集 n_samples:
在CUB中,not_guaranteed放松了确定性级别。这允许使用原子操作——由于线程间无序执行导致不同运行间操作顺序不同——来计算块级部分聚合和最终规约值。 运行间确定性虽然非确定性规约提供了潜在的性能提升,CUB也提供了一种保证跨运行结果一致的模式。 默认情况下,cub::DeviceReduce是运行间确定性的,这对应于在单阶段API中将确定性级别设置为run_to_run。 结论随着单阶段API和显式确定性级别的引入,CUB提供了一个增强的工具箱,用于控制规约算法的行为和性能。 CUB中的确定性不仅限于规约操作。计划将这些能力扩展到更多算法,让开发者能够控制更广泛的并行CUDA原语的可重现性。
ImageNet-F :利用 CLIP/BioCLIP 模拟人类标注行为,通过置信度剪枝生成混合粒度标签,构建大规模自由粒度训练集;同时提供 iNat21-mini-F、CUB-F 及合成数据集 CUB-Rand 我们采用相同策略,结合 BioCLIP(Stevens 等,2024),在 iNat21-mini 和 CUB 上分别构建了 iNat21-mini-F 和 CUB-F;此外,还创建了合成变体 CUB-Rand 3.3 面向 CUB-Rand 和 Aircraft-Rand 的合成标签剪枝 为控制标签可用性,我们通过从 CUB(Welinder 等,2010)和 Aircraft(Maji 等,2013)中随机剪枝标签 ,构建了合成变体——CUB-Rand 和 Aircraft-Rand。 5 实验 数据集:我们使用所提出的 ImageNet-F、iNat21-mini-F 和 CUB-F 数据集,以及合成的 CUB-Rand 和 Aircraft-Rand 数据集进行实验。
一、Caltech-UCSD Bird(CUB-200-2011)1.1、介绍CUB-200-2011数据集是CUB-200-2011是CUB-200的扩展版本,这是一个具有挑战性的200种鸟类数据集。 1.3、下载1️⃣论文链接:The Caltech-UCSD Birds-200-2011 Dataset2️⃣官方网站:http://www.vision.caltech.edu/datasets/cub 文本描述是使用基于给定属性的概率上下文无关语法 (PCFG) 生成的,按照流行的CUB数据集和COCO数据集的格式为每个图像创建十个独特的单句描述以获得更多训练数据。 2️⃣数据信息:数据集与通用的文本生成非人脸数据集CUB和COCO数据集具有相同的数据格式。
子模块更新报错解决方案 http协议不好用,需要改成git 修改 amirstan_plugin/.gitmodules 文件 将第三行地址改为 git@github.com:NVIDIA/cub.git [submodule "third_party/cub"] path = third_party/cub url = git@github.com:NVIDIA/cub.git branch = 1.8.0 修改 amirstan_plugin/.git/modules/third_party/cub/config 将 remote "origin" 地址改为 git@github.com :NVIDIA/cub.git [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates /third_party/cub [remote "origin"] url = git@github.com:NVIDIA/cub.git fetch = +refs/heads/main:refs
update-alternatives --config gcc# 选择默认 g++sudo update-alternatives --config g++# 验证版本gcc --versiong++ --version4、手动下载cub cd ~/gunrock/externalsgit clone https://github.com/NVIDIA/cub.git5、手动下载libcudacxx,默认缺失的。 /externals/cub \ -I${PWD}/..
CNN首先对每一张图片进行局域位置的检测,然后将检测框内的图像进行裁剪,从而提取不同层次、不同位置的图像,再对提取到的图像块进行姿态对齐送入CNN,将得到的特征拼接后利用SVM分类器进行分类,该算法在CUB Multi-proposal Net则通过Edge Box Crop方法获取图像块,并引入关键点及视觉特征的输出层,进一步强化了局部特征与全部信息直接的位置关联,该算法在CUB-200数据集上取得了80.3% B-CNN根据大脑工作时同认知类别和关注显著特征的方式,构建了两个线性网络,协调完成局部特征提取和分类的任务,该算法在CUB-200数据集上取得了84.1%的精度,不过该方法在合并阶段会产生较高的维度, 【知识星球】超3万字的网络结构解读,学习必备 介绍完主要的思想方法,现将近年来基于深度学习的相关算法在CUB-200数据集上所取得的成绩进行罗列,供大家查阅。 ? (1) CUB-200 CUB-200是细粒度图像分类领域最经典,也是最常用的一个数据库,共包含200种不同类别、11788张鸟类图像数据。
具体而言,将活性氧响应的单硫醚键连接的紫杉醇-亚油酸前药(PTX-S-LA)和葫芦素B(CuB)共包载到聚合物胶束中,并用外泌体膜进一步修饰纳米颗粒表面。 在细胞摄取后,仿生纳米粒首先释放CuB,通过下调FAK / MMP信号通路显著阻断肿瘤转移。而且,CuB明显提高了细胞内的氧化水平,以诱导ROS响应性PTX-S-LA的生物激活。 细胞摄取后,释放的CuB不仅通过下调FAK / MMP信号通路抑制肿瘤转移,而且显著提高了细胞内ROS水平,从而触发级联增强的紫杉醇化疗,起到一石二鸟的作用。
#01 准备数据集 我们使用 Caltech-UCSD Birds-200-2011 (CUB-200-2011)[1] 这个数据集,它是一个鸟类分类的数据集,具有一定的难度。 当你下载好后,你可以看到这个结构: ├── 1.jpg ├── 2.jpg ├── 3.jpg ├── README.md └── data ├── CUB_200_2011.tgz └ ── segmentations.tgz 解压CUB_200_2011.tgz, 使用以下mv命令重命名images为images_orig。 cd data tar zxvf CUB_200_2011.tgz cd CUB_200_2011 mv images images_orig pwd /path/to/your/dataset/Birds -200-2011/data/CUB_200_2011 在 python 脚本中,将你的数据集路径定义为root_dir。
来自 Extended CUB(第 1,2 行) 和 Butterfly-200(第 3,4 行) 的样本以及对应层次化标注。 实验结果 该论文在 Extended CUB,butterfly-200,以及最新发布的 VegFru 上进行实验。 HSE 框架与其它引入额外信息的算法在 CUB 数据集上的首位识别准确率对比。 HSE 框架与两种基准方法的比较证明了它作为一个整体的有效性。 物体精细化识别性能对比 作者在 CUB 和 VegFru 两个数据集上和目前最先进的方法进行比较,结果如表 2 和表 3 所示。在两个数据集上,HSE 框架均取得了优于当前最先进方法的性能。 ? HSE 框架与其它最先进的算法在 CUB 数据集上的首位识别准确率对比。 ? 表 3. HSE 框架与其它先进方法在 Vegfru 数据集上的性能比较。
在三个基准数据集CUB [38],RIVAL [21]和AwA2 [42]上的大量实验表明,作者的CSS方法大幅提高了概念准确性(CUB提高了+39.1%,RIVAL提高了+18.63%,AwA2提高了 作者使用概念准确度和分类准确度指标,在CUB、RIVAL和AwA2数据集上验证了作者的CSS方法。 特别是对于CUB数据集,作者的CSS方法超越了黑箱分类器。 对于CUB和RIVAL数据集,作者逐步增加用于训练的概念标签数量,观察到分类和概念准确度的相应增加。 Comparison with other methods CUB. CUB数据集被可解释AI社区广泛用于构建和研究基于概念的可解释模型。
config gcc # 选择默认 g++ sudo update-alternatives --config g++ # 验证版本 gcc --version g++ --version 4、手动下载cub cd ~/gunrock/externals git clone https://github.com/NVIDIA/cub.git 5、手动下载libcudacxx,默认缺失的。 /externals/cub \ -I${PWD}/..
while(sc.hasNext()){ l = sc.nextDouble(); h = sc.nextDouble(); z = sc.nextDouble(); Cubic cub = new Cubic(l,h,z); Pyramid py = new Pyramid(l,h,z); System.out.println(df.format(cub.area()) + " " + df.format(cub.volumn()) +" "+ df.format(py.area()) + " " + df.format(py.volumn())); } } }
从图中,可以看出,该蛋白质包括以下5种domain CUB EGF_CA CCP Tryp_SPc 还提供了每个结构域的位置信息 ? 2. 按照domain进行检索,示例如下,根据domian名称CUB进行检索。对于每个domain, 采用SM开头的编号唯一标识,同时提供了和其他数据库的关联信息,还支持下载多序列比对的结果。 ?
这样Data下面就有用birds和flowers的文件夹了 然后下载birds和flowers的图片和相应数据 bird的 链接 ,将其下载至Data下的birds文件夹下,解压tar zxvf CUB _200_2011.tgz,然后就出现了在birds文件夹下的CUB_200_2011文件夹。
CUB数据集包含11,788张200种不同鸟类的照片(来自Wah等人,2011)。每种鸟类都标注了312个二元属性。CUB为每张图片提供了属性信息,包括属性描述和表达方式。 CUB还提供了类别属性,给出每类图像中出现该属性的概率。对于每种属性描述,作者选择概率最高的一个属性进行选取。因此,评价 Prompt 语为“一张<类别标签>照片,具有。” 与CUB不同,AWA2的属性没有单独的描述和表达方式。因此,作者将这些属性以逗号分隔的方式附加在 Prompt 语的末尾。 为了与CUB保持可比性,作者的评价 Prompt 语为“一张<类别标签>,具有属性,,...”。 此外,Knowledge-CLIP在使用属性数据集AWA2和CUB评估图像编码器质量时,表现也略优于CLIP。
数据分布 三、baseline 1. cub-baseline 为了先获取一些细粒度对应的baseline,先在cub-200-2011数据集上训练了几个模型(毕竟我没卡TT): 对齐了resnet50 训练了efnet一系列的模型,cub上的结果如下: ? cub-baseline 初步结论: 通过调整r50-448的模型,调好了第一个版本的数据增强的方法,随机crop,翻转,旋转,colorjitter。 2. accv-baseline 有了上面的一个初步的结论,我先尝试了cub的数据增强方法,迁移到accv的数据上,在r50-448上得到了一个初步的结果,大概是42左右(小数点不记得了TT),然后有了下面的一系列的调参的工作 最后附上训练代码的https://github.com/FlyEgle/cub_baseline,欢迎大家交流和指教,有打比赛的也可以找我~。
实验 数据集 我们在常用的三套细粒度分类数据集:CUB-200-2011、FGVC-Aircraft、Stanford Cars。 依据维基百科为每个数据集设定层级标签关系树,其中 CUB-200-2011 包含 38 orders, 38 families, 200 species 三个层级;FGVC-Aircraft 具有 30 在表 2 中我们验证了复合损失函数中多类交叉熵损失函数的作用: 表 2: 不同重标记比例下验证概率分类损失函数 与多类交叉熵损失函数 的结合效果,汇报 CUB-200-2011 数据集中最后一层级上的 OA(%) 实验结果 在表 3 中我们对比了复合损失函数与传统的层级分类损失函数对比的结果: 表 3:CUB-200-2011 数据集中最后一层级上重标记比例为 0% 对比复合损失函数与传统层级分类损失函数的 4 中: 表 4: 在各个数据集、不同重标记比例下对比方法的平均 OA / 结果 类似地,我们利用 Grad-Cam 算法展示各个对比方法在不同层级上的二维激活热力图,结果见图 5: 图 5: CUB