1.Autoware.io源码编译安装
2.DETR解读
3.图解UE4源码AI行为树系统 其二 一棵行为树是源码怎么被运行起来的
4.极智AI | Colossal-AI高效异构内存管理系统
5.可免费使用NovelAI的资源指路(本地版,云端版)
Autoware.io源码编译安装
要编译安装Autoware.io,解读首先请确保已安装ROS1,源码如Ubuntu .版本的解读Melodic。以下步骤将指导你完成依赖安装及源码编译过程。源码安装依赖
1. 对于CUDA的解读秦皇岛ios源码支持(可选但建议),你需要下载CUDA .0,源码链接位于developer.nvidia.com/cuda。解读安装时,源码遇到驱动安装询问时选择n,解读后续步骤默认安装即可。源码 2. 安装cudnn,解读从developer.nvidia.com/rd...获取并进行安装。源码在cuda目录下进行软链接配置,解读并通过验证测试。源码其他依赖安装
3. 安装eigen3.3.7,接着是opencv3,安装时需先安装依赖库,然后解压、配置和编译。源码下载与编译
4. 创建新的工作区,下载并配置工作区,幂幂源码然后下载Autoware.ai源码。 5. 使用rosdep安装依赖库,有CUDA版本和无CUDA版本两种编译方式。测试与问题解决
6. 下载并运行demo,可能遇到的问题包括编译错误和链接问题。问题1:calibration_publisher报错,需修改CMakeList.txt文件。
问题2:ndt_gpu编译错误,需替换Eigen3Config.cmake文件中的版本信息。
问题3:opencv链接问题,需要检查和调整。
问题4:rosdep更新慢,可通过修改源码和配置文件解决。
问题5:runtime manager花屏,需安装wxPython 4.和libsdl1.2-dev。
通过上述步骤,你应该能够成功编译并测试Autoware.io。如有任何疑问,查阅官方文档或社区论坛寻求帮助。DETR解读
DETR(Detection Transformer)是一种新型的目标检测模型,它基于Transformer架构,币圈子源码由Facebook AI Research(FAIR)提出。DETR与传统目标检测方法不同,不使用锚框或候选区域,而是直接将整个图像输入到Transformer中,同时输出目标的类别和边界框。
DETR的主要构成部分包括backbone、transfomer以及head模块。本文将结合源码对DETR进行解析。
Backbone部分包含PE(position embedding)和cnn(resnet)主干网络。
PE采用二维位置编码,x和y方向各自计算了一个位置编码,每个维度的位置编码长度为num_pos_feats(该数值实际上为hidden_dim的一半),奇数位置正弦,偶数位置余弦,最后cat到一起(NHWD),permute成(NDHW)。输入的mask是2**,那么最后输出的pos encoding的shape是2***。
CNN_backbone采用resnet,以输入3**为例,输出**,立刻聊源码下采样5次合计倍。
Transfomer主要由encoder和decoder两大模块构成。
TransformerEncoder中,qkv都来自src,其中q和k加了位置编码,v没有加,猜测原因可能是qk之间会计算attention,所以位置是比较重要的,value则是和attention相乘,不需要额外的位置编码。
TransformerDecoder中,几个重点的变量包括object query的自注意力和cross attention。
Head部分,分类分支是Linear层,回归分支是多层感知机。
Matcher采用的是HungarianMatcher匹配,这里计算的cost不参与反向传播。
Criterion根据匈牙利算法返回的indices tuple,包含了src和target的index,计算损失:分类loss+box loss。
分类损失采用交叉熵损失函数,产地溯源码回归损失采用L1 loss + Giou loss。
推理部分,先看detr forward函数,后处理,预测只需要卡个阈值即可。
论文链接:arxiv.org/pdf/....
代码链接:github.com/facebookrese...
参考链接:zhuanlan.zhihu.com/p/... zhuanlan.zhihu.com/p/...
如需删除侵权内容,请联系我。
图解UE4源码AI行为树系统 其二 一棵行为树是怎么被运行起来的
在本系列的第三部分,我们将深入探讨行为树的运行过程。首先,行为树的运行分为几个关键步骤:发起行为树运行
行为树的运行可以通过两种方式启动:调用AAIController::RunBehaviorTree()函数。
通过Run Behavior任务节点执行子行为树。
抽象逻辑理解
理解流程时,想象一个抽象流程图,我们将讲解分为蓝色泳道(检查和加载)和红色泳道(初始化和执行)。检查和加载子树
开始前,UBehaviorTreeComponent会对子树进行三项检查:确保子树使用的黑板资源与父树一致。
确保全局的UBehaviorTreeManager可用。
确认发起节点的父节点是否允许push新子树,如SimpleParallel节点限制。
树的加载
检查通过后,进入资源加载阶段,首先尝试从缓存获取数据,避免重复加载。缓存和数据初始化
加载行为树资源,如果缓存中有匹配的模板,直接返回。否则,创建新模板并计算节点初始化信息,包括内存需求和执行顺序。执行树的初始化
加载完成后,进一步在UBehaviorTreeComponent::PushInstance中初始化FBehaviorTreeInstance和FBehaviorTreeInstanceId,设置内存偏移,填充数组,然后将新实例入栈并标记为活跃。行为树的执行
最后,执行新树,从根节点的service开始,然后执行根节点,进入下一轮迭代。后续的节点执行细节将作为下一部分内容。极智AI | Colossal-AI高效异构内存管理系统
Colossal-AI高效异构内存管理系统旨在解决大模型训练中遇到的内存挑战。通过合理利用CPU内存和SSD硬盘,以及在GPU之间灵活转移数据,系统可以有效提升模型训练的效率和规模。
在数据并行训练场景下,传统做法直接在每个GPU上加载数据,导致内存冗余问题。微软的Deepspeed通过将其模型参数、梯度和优化器状态切分存储在不同GPU上,解决了内存浪费问题。此外,Deepspeed还支持模型参数卸载到CPU和NVMe硬盘,进一步提高GPU内存利用率,支持更大模型的训练。
ZeRO (Zero Redundancy Optimizer)是Deepspeed提出的异构内存管理解决方案,通过动态卸载数据到CPU或硬盘,消除内存冗余。然而,静态的内存管理策略在不同训练阶段可能产生内存浪费,限制了其效能。
Colossal-AI的Gemini内存管理系统采用基于块的内存管理策略,通过块机制优化张量移动。Gemini使用有限状态机来管理张量生命周期,根据算子执行前和后进行内存操作,实现动态内存管理。此外,Gemini通过最佳页面替换算法(如OPT)减少内存移动量,确保内存资源高效利用。
在数据块切分上,Gemini采用了对称切分方案,允许所有GPU进行数据移动,充分利用PCIE带宽,提高GPU与CPU间数据传输速度。同时,内存空间重用技术在不同时间节点之间共享同一块内存空间,进一步支持大规模训练。
通过Colossal-AI的Gemini内存管理系统,模型训练效率显著提升,可以充分利用GPU、CPU及硬盘资源,实现更大规模模型的高效训练。代码示例展示了如何在实际项目中应用Colossal-AI,提供了一个简单而强大的框架,使得AI项目更易于实施和管理。
加入知识星球「极智视界」,获取更多AI项目源码下载,畅享人工智能的科技魅力,让好玩的AI项目不再难玩。在这里,你将获得大量精心整备的AI项目,涵盖人脸、检测、分割、多模态、AIGC、自动驾驶、工业等领域,持续更新更多有趣项目。
可免费使用NovelAI的资源指路(本地版,云端版)
NovelAI源码泄露后,大佬们已提供成熟使用方法。下载G资源,包含多个模型,选择一个适用即可。
本地版推荐使用以下教程安装:AI绘画再次进化!novelai真官网版本解压即用 无需下载!这次1分钟内不用学也能会用 bilibili.com/video/BV1E...
官网版本,一键使用。链接在视频简介,提取码需关注大佬后在私信里得到。
云端版推荐此网站:ai.nya.la/stories(此网站已失效,一键搭建云端版请点击: 靠谱的赳晨:一键搭建NovelAI云端版(使用colab免费服务))。
直接点Sign In 登录,点击Image Generation开始生成图像。如出现“太多请求正在处理,请稍后再试”提示,继续点击Generate,直至无法点击,然后稍等。
本月日(周日)云端版服务即将停止,建议抓紧使用。搭建教程请参考: telegra.ph/NovelAI-%E5%...
历史版本使用方法,建议自行搜索了解。