![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
AI
文章平均质量分 94
ariesjzj
这个作者很懒,什么都没留下…
展开
-
本地用AIGC生成图像与视频
最近AI界最火的话题,当属Sora了。遗憾的是,Sora目前还没开源或提供模型下载,所以没法在本地跑起来。但是,业界有一些开源的图像与视频生成模型。虽然效果上还没那么惊艳,但还是值得我们体验与学习的。原创 2024-03-16 10:18:43 · 2029 阅读 · 0 评论 -
LLM时代中的分布式AI
深度学习相较传统机器学习模型,对算力有更高的要求。尤其是随着深度学习的飞速发展,模型体量也不断增长。于是,前几年,我们看到了芯片行业的百家争鸣和性能指标的快速提升。正当大家觉得算力问题已经得到较大程度的缓解时,大语言模型(LLM, Large language model)的兴起又带来了前所未有的挑战。原创 2023-11-05 11:51:54 · 5492 阅读 · 2 评论 -
AI推理计算框架中的内存优化
内存管理是AI计算中非常重要的一部分。我们希望模型计算时占用内存尽可能小,这样我们训练或推理时就可以用更大的batch size使其尽快收敛,或者提高吞吐率。又或者让我们可以使用参数更多、或更复杂的模型从而达到更好的准确率。由于现代深度学习模型大多在GPU上运行,而GPU的显存相比CPU小得多,因此我们这里主要关注的是GPU memory。首先看下我们需要重点关注哪些GPU memory。原创 2023-02-12 09:40:41 · 2619 阅读 · 0 评论 -
(三)大话深度学习编译器中的自动调优·Empirical Search
前面的第一篇与第二篇分别介绍了背景与一些相关概念,这第三篇我们开始切入正题,看下现代深度学习编译器中的自动调优(Auto-tuning)方法。Schedule的自动生成,一类方法是基于解析模型(Analytical model),然后使用一些经验公式来产生解;另一类方法是多面体编译技术。它将循环嵌套迭代空间建模为多面体,然后用如整数规划等数学方法求出能提升局部性与并行性的循环变换;还有一类就是经验搜索(Empirical search)方法。.........原创 2022-08-14 08:39:18 · 3186 阅读 · 1 评论 -
(二)大话深度学习编译器中的自动调优·DSL与IR
前一篇《(一)大话深度学习编译器中的自动调优·前言》介绍了深度学习编译器及早期算子自动调优的背景,在接下去更深入地聊自动调优具体方法之前,在这篇中想先聊下两个与之密切相关的重要基础概念:领域专用语言(Domain-specific Language,DSL)与中间表示(Intermediate Representation,IR)。DSL与IR在整个深度学习编译器中的位置大体如下原创 2022-05-15 11:53:02 · 4518 阅读 · 4 评论 -
(一)大话深度学习编译器中的自动调优·前言
深度学习计算框架中的自动化调优,尤其是高性能算子自动生成是这几年非常火的话题。这个系列的文章主要是对之前看到的零碎信息做个简单的总结。尽管,由于有些方向比较艰深,笔者懂得十分浅薄,文章在很多方面也只能蜻蜓点水。这是第一篇,权当是个引子。原创 2022-02-20 09:39:21 · 5952 阅读 · 5 评论 -
TVM中的auto-scheduling机制(Ansor)学习笔记
背景TVM沿用了Halide中算法的计算与调度分离的思想。用户使用Tensor Expression(TE)这种DSL定义计算,然后编译器优化相应的schedule,最后生成目标平台的代码。因此,要根据给定的计算自动产生高性能的算子实现,其核心就是找到好的schedule。然而这个schedule不仅和计算相关,还与硬件平台相关。这个搜索空间很大,本质上是个np-complete的组合优化问题。因此,TVM引入了auto-tuning机制,它使得编译出的算子实现性能上有了很大提升。最早一代的auto-tu原创 2021-11-21 07:33:44 · 7286 阅读 · 5 评论 -
TVM的“hello world“基础流程 II
上一篇《TVM的“hello world“基础流程 I》中基于一个最基本的case介绍了TVM中计算的定义与schedule的构建。这篇沿用上一篇中的case,继续介绍接下去的一个重点部分,就是编译。编译有了前面构建的schedule之后,接着就需要编译并生成目标代码了。这个工作主要由tvm.build()和relay.build()两个函数来完成。它们的区别在于应用目标的范围,前者用于单个算子,后者用于整个网络。由于网络可看作由算子组成,后者会调用前者。本例中是针对单个算子的,因此这里使用的是前者:原创 2021-08-22 08:12:20 · 4013 阅读 · 1 评论 -
TVM的“hello world“基础流程 I
前言继前图灵奖获得者Hennessy和Patterson在ISCA 2018提出“A New Golden Age for Computer Architecture”,编译器大神Chris Lattner在ASPLOS 2021提出了“The Golden Agen of Compiler Design”。另一方面,2020年图灵奖授予了编译器“龙书”作者Jeffrey Ullman和Alfred Aho。编译器技术在新的时代背景下似乎又焕发了新的活力,成为了业界的热点。而作为现在最热门的AI计算场景原创 2021-05-23 09:48:35 · 5208 阅读 · 3 评论 -
强化学习的并行加速
前言机器学习方法的复现性一直都是比较另人头痛的问题,因为很多因素都可能会影响最后的效果。而强化学习还涉及与环境交互带来的随机性,情况更加严重。可能类似的环境配置,跑上几遍结果还不太一样。2017年McGill University和Microsoft的论文《Deep Reinforcement Learning that Matters》中研究了强化学习的可复现性,指出像随机种子、环境因素、超参以及使用的codebase带来的不确定性都会导致结果难以重现。这在一定程度上就提高了实验成本。另一方面,除非是一原创 2021-02-28 12:58:17 · 14252 阅读 · 2 评论 -
奔跑吧,旅行商 - 当机器学习遇上组合优化
背景如今机器学习在视觉、自然语言处理、语音、推荐等领域的应用已非常广泛,相关的讨论也非常多。与这些热门领域相比,关于机器学习在组合优化中的应用相对还没那么泛滥。今天我们就来聊一下这个有意思的话题。值得一提的是,近几年热度升温的GNN和RL(《GNN、RL强势崛起,CNN初现疲态?这是ICLR 2021最全论文主题分析》)都是这个方向里的常规方法。在实际工程中,有一类优化问题需要我们从集合的所有组合中找出一个最优方案。这类离散空间中的优化问题就称为组合优化问题(Combinatorial Optimizat原创 2020-12-06 10:41:18 · 15673 阅读 · 10 评论 -
自动驾驶平台Apollo 5.5阅读手记:Cyber RT中的通信传输
前言计算框架是自动驾驶系统中的重中之重,也是整个系统得以高效稳定运行的基础。为了实时地完成感知、决策和执行,系统需要一系列的模块相互紧密配合,高效地执行任务流。由于各种原因,这些模块可能位于不同进程,也可能位于不同机器。这就要求计算框架中具有灵活的、高性能的通信机制。我们知道,Apollo在3.5版本中推出了Cyber RT替代了原先的ROS。之前写过两篇相关的文章介绍了其中的调度部分:自动驾驶平台Apollo 3.5阅读手记:Cyber RT中的协程(Coroutine)和自动驾驶平台Apollo 5.原创 2020-09-12 14:00:17 · 18474 阅读 · 1 评论 -
闲话模型压缩之量化(Quantization)篇
1. 前言这些年来,深度学习在众多领域亮眼的表现使其成为了当今机器学习的主流方法。但其巨大的计算量仍为人诟病。尤其是近几年,随着端设备算力增强,业界涌现出越来越多基于深度神经网络的智能应用。为了弥补算力需求与供给的巨大鸿沟,近几年来模型压缩成为了业界的热点之一。模型压缩又可细分为多个子方向。之前在浅谈端上智能之计算优化中有过一些简单的论述,同时在闲话模型压缩之网络剪枝(Network Pruning)篇中更加具体地整理了些关于网络剪枝(network pruning)的东西,今天就再将目光放到另一类方法上原创 2020-06-25 15:21:52 · 59975 阅读 · 24 评论 -
小议车辆环境视觉基础前视感知
1. 前言无论是AD/ADAS还是智能网联车,前视感知都是其最基础和重要的能力之一。自动驾驶(AD)是前几年的热门话题。今天虽然稍微降温下来一些,但仍是大家关注的重点之一,毕竟它是人类长久以来的梦想之一。众所周知,美国汽车工程师学会(SAE)将自动驾驶分为 L0~L5共六个级别。其中L3及以上允许由系统在限定或不限定条件下完成所有的驾驶操作;而L2及以下还是需要由人类驾驶员一直保持驾驶状态,因此...原创 2020-04-11 09:45:35 · 13989 阅读 · 0 评论 -
自动驾驶平台Apollo 5.5阅读手记:Cyber RT中的任务调度
前言Baidu Apollo在3.5中引入了Cyber RT,替换了之前基于ROS的变体。Cyber RT的一大特点在于其调度系统。因为自动驾驶与人身安全强相关,因此很强调实时性。传统的机器人系统并不为此设计,所以很难满足实时性要求。系统中存在大量异步任务,如果任其运行和抢占,系统会有很大的不确定性。为了提高系统中任务执行的确定性,Cyber RT引入了协程,在用户态来做调度,一方面让开发者可以...原创 2020-01-27 11:51:11 · 23847 阅读 · 9 评论 -
浅谈端上智能之计算优化
一、背景 - 边缘智能人工智能(Artificial intelligence)的迅速发展正在改变世界。以深度学习(Deep learning)为驱动力和代表的第三波AI浪潮,正在变革和赋能金融、制造、农业、交通、医疗、零售、教育等众多行业,同时也极大地影响着我们每个人的生活。当前,在移动设备上各种新的AI应用场景正在不断涌现。大量新的需求对端上的智能能力提出了新的挑战,也带来了新的机遇。今天,...原创 2019-11-16 10:24:36 · 15487 阅读 · 2 评论 -
超参数自动优化方法PBT(Population Based Training)
我们知道,机器学习模型的效果好坏很大程度上取决于超参的选取。人肉调参需要依赖经验与直觉,且花费大量精力。PBT(Population based training)是DeepMind在论文《Population Based Training of Neural Networks》中提出的一种异步的自动超参数调节优化方法。以往的自动调节超参方法可分为两类:parallel search和sequen...原创 2019-08-24 12:26:45 · 21012 阅读 · 0 评论 -
C++强化学习通过Python bindings接OpenAI Gym
OpenAI gym是强化学习最为流行的实验环境。某种程度上,其接口已经成为了标准。一方面,很多算法实现都是基于gym开发;另一方面,新的场景也会封装成gym接口。经过这样一层抽象,算法与实验环境充分解耦隔离,可以方便地自由组合。但gym是python的接口,如果想用C++实现强化学习算法,则无法直接与gym相接。一种方案是跨进程:一个进程运行python环境,另一个进程运行强化学习算法,与环境交...原创 2019-06-29 08:19:13 · 12154 阅读 · 0 评论 -
自动驾驶平台Apollo 3.5阅读手记:Cyber RT中的协程(Coroutine)
原文链接:背景2019 CES上百度发布了Apollo 3.5,其中的亮点之一就是其高性能计算框架Cyber RT。我们知道,Apollo在3.0及之前是基于ROS。ROS虽然已建立起强大生态,在机器人社区广受欢迎,但其多用于学术界实验室验证机器人算法,并不是为了工业界产品设计的。虽然社区已经看到这一矛盾,并已开整ROS 2.0,但现在还处于开发阶段。自动驾驶相较于其它高性能系统而言,最重要的...原创 2019-02-04 12:22:38 · 21699 阅读 · 6 评论 -
从《西部世界》到GAIL(Generative Adversarial Imitation Learning)算法
看过美剧《西部世界》肯定对里边的真实性(fidelity)测试有印象。William对其岳父James Delos, Delores对Alnold的复制体Bernard,Emily对其父亲William都做过。其中有些测试方和被测试方都是机器人。永生一直是很多科幻剧热衷的话题,而《西部世界》给出了一种基于机器载体与人类思想结合的方案,就是人的复制。那么问题来了,要想复制人,主要有两部分:一部分是躯体,当然这部分按剧中设定已不是问题,无论人、马、牛都能分分钟3D打印出来;另外一部分是思想的复制。但思想很难被原创 2018-12-23 20:04:02 · 19324 阅读 · 12 评论 -
神经网络架构搜索(Neural Architecture Search)杂谈
机器学习从业者被戏称为“调参工”已经不是一天两天了。我们知道,机器学习算法的效果好坏不仅取决于参数,而且很大程度上取决于各种超参数。超参数的自动搜索优化是一个古老的话题了。深度学习前它主要针对传统机器学习算法的参数,比较经典的方法有random search, grid search,Bayesian optimization,Reinforcement learning, Evolutionar...原创 2018-12-02 13:24:26 · 79416 阅读 · 15 评论 -
Ubuntu 16.04下安装Cuda 8.0, Anaconda 4.4.0和TensorFlow 1.2.1
是Nvidia卡的,可以考虑安装Cuda,这样可以用GPU加速。之前写过一篇在Ubuntu 14.04上装Cuda 7.5的文章(Link)。TensorFlow 1.2版本貌似需要Cuda Toolkit 8.0,过程和之前是差不多的。更新driver(如需),然后去Nvidia官网下载Cuda和cuDNN安装即可。具体不再累述。对于大部分N卡,Cuda 8.0需要driver的最低版本为367,所以如果已经够用,在安装cuda的时候保险点的话就不用更新驱动。如果更新驱动后不幸中招,如循环登录或无法进入图原创 2017-08-13 10:47:06 · 6337 阅读 · 4 评论 -
深度增强学习(DRL)漫谈 - 从DQN到AlphaGo
深度增强学习(Deep reinforcement learning, DRL)是DeepMind(后被谷歌收购)近几近来重点研究且发扬光大的机器学习算法框架。两篇Nature上的奠基性论文(DQN和AlphaGo)使得DRL这一深度学习(Deep learning, DL)和增强学习(Reinforcement learning, RL)的交叉方向变得炙手可热。再加上多个影响较大的benc...原创 2016-10-10 23:12:53 · 20188 阅读 · 11 评论 -
NVIDIA Cuda 7.5 on Ubuntu 14.04 64 bits
关于在Linux上搭Cuda环境,做个笔记备忘。1. 安装GPU Driver在Ubuntu中可以通过System Settings -> Software & Updates安装:详细可参考https://help.ubuntu.com/community/BinaryDriverHowto/Nvidia 。装好后,执行nvidia X server settin原创 2015-11-28 17:32:22 · 3121 阅读 · 0 评论 -
[机器学习]基于OpenCV实现最简单的数字识别
本文将基于OpenCV实现简单的数字识别。这里以游戏Angry Birds为例,通过以下几个主要步骤对其中右上角的分数部分进行自动识别。原创 2013-11-13 18:43:31 · 27357 阅读 · 49 评论 -
[机器学习]基于级联分类器的多目标检测
原文地址:http://blog.csdn.net/ariesjzj/article/details/8639208物体检测方法大体可分为两类,基于知识的方法和基于统计的方法。前者如template matching, surf/sift detector等等。这些方法都基于我们对于识别目标已有比较清晰的刻画。虽然有些特征能抗一定的形变,但总体泛化性不够强。如果检测目标比较固定且对时间要求原创 2013-03-12 22:38:42 · 10560 阅读 · 10 评论 -
[OpenCV]图像的投影校正
原文地址:http://blog.csdn.net/ariesjzj/article/details/8668726如果需要处理特定目标,传感器的输入图片一般都不是正对着的。所以处理前一般要进行校正(这里只涉及外部的投影校正)。官方例程中带了个例子SURF_Homography.cpp,我们稍作修改,让它多个投影校正的功能。 Mat warp_res; Mat M = get原创 2013-03-13 15:54:03 · 7353 阅读 · 3 评论 -
机器学习相关数据库
KDD杯的中心,所有的数据,任务和结果。UCI机器学习和知识发现研究中使用的大型数据集KDD数据库存储库。UCI机器学习数据库。 AWS(亚马逊网络服务)公共数据集,提供了一个集中的资料库,可以无缝集成到基于AWS的云应用程序的公共数据集。生物测定数据,在 虚拟筛选,生物测定数据,对化学信息学,J.由阿曼达Schierz的,有21个生物测定数据集(有效/无效的化合物)可供下载。加拿转载 2013-01-03 19:35:20 · 1456 阅读 · 0 评论 -
深度增强学习(DRL)漫谈 - 信赖域(Trust Region)系方法
一、背景深度学习的兴起让增强学习这个古老的机器学习分支迎来一轮复兴。它们的结合领域-深度增强学习(Deep reinforcement learning, DRL)随着在一系列极具挑战的控制实验场景及其它跨领域的成功应用,现在已是各大顶级AI会议的热门topic之一。之前两篇杂文深度增强学习(DRL)漫谈 - 从DQN到AlphaGo和深度增强学习(DRL)漫谈 - 从AC(Actor-Critic原创 2017-09-16 23:40:31 · 25769 阅读 · 7 评论 -
常用增强学习实验环境 I (MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)
原文地址:http://blog.csdn.net/jinzhuojun/article/details/77144590和其它的机器学习方向一样,强化学习(Reinforcement Learning)也有一些经典的实验场景,像Mountain-Car,Cart-Pole等。话说很久以前,因为没有统一的开发测试平台,大家都会自己实现,有用C/C++的,有用Python,还有用Matlab的。所以...原创 2017-08-13 16:02:50 · 20504 阅读 · 10 评论 -
自动驾驶平台Apollo 3.0阅读手记:perception模块之lane post processing
背景之前写过一篇杂文《自动驾驶平台Apollo 2.5阅读手记:perception模块之camera detector》,介绍到用于camera输入的DNN模型不仅会输出物体检测结果,还会输出车道线的语义分割结果。但要得到最终的车道线信息,还要经过后处理。项目中自带一个例子cc_lane_post_processor_test,我们就以这个例子为线索,看下它的大体实现。首先按《自动驾驶平台A...原创 2018-10-13 19:26:46 · 14659 阅读 · 1 评论 -
深度增强学习DDPG(Deep Deterministic Policy Gradient)算法源码走读
本文是基于OpenAI推出deep reinforcement learning算法集baselines。之前写过该项目的环境setup介绍《常用增强学习实验环境 I (MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)》以及其中的另一重要算法-PPO算法走读《深度增强学习PPO(Proximal Policy Optimization)算...原创 2018-09-15 11:39:16 · 23676 阅读 · 8 评论 -
自动驾驶平台Apollo 2.5阅读手记:perception模块之camera detector
Apollo无人驾驶平台中camera会用来检测车道线及障碍物(车辆,自行车,行人等)。这是通过一个多任务网络来完成的。其中的encoder部分是Yolo的darknet,decoder分两部分:一部分是语义分割,用于车道线区域检测;另一部分为物体检测,用于物体检测。物体检测部分基于Yolo,同时还会输出其方向等3D信息,因此称为yolo3d。这些信息被输出后,就可以送到后续模块中进一步处理,从而...原创 2018-07-01 18:06:26 · 16735 阅读 · 32 评论 -
深度增强学习PPO(Proximal Policy Optimization)算法源码走读
OpenAI出品的baselines项目是一系列reinforcement learning(强化学习或增强学习)算法的实现。现在已经有包括DQN,DDPG,TRPO,A2C,ACER,PPO在内的近十种经典算法实现,同时它也在不断扩充中。它为对RL算法的复现验证和修改实验提供了很大的便利。本文主要走读其中的PPO(Proximal Policy Optimization)算法的源码实现。PPO是...原创 2018-05-27 19:40:58 · 104794 阅读 · 27 评论 -
自动驾驶平台Apollo 2.5环境搭建
我们知道,自动驾驶在学界其实已经是个很老的topic了。而这几年,伴随着以深度学习为主力的第三次AI浪潮,大家似乎看到了自动驾驶商业化的重大机会,于是无论是学界还是工业界都开始将注意力转向该领域。放眼望去,满大街似乎都在搞自动驾驶。前段时间,百度又发布了自动驾驶平台Apollo的2.5版本。要想搭个环境玩一下的话,其实官方文档里挺详细了。这里主要是备忘一下主要流程和一些小坑的解决方法。大体可分为以...原创 2018-05-06 19:16:32 · 18536 阅读 · 7 评论 -
读源码品Caffe - 结构流程篇
原文链接: https://blog.csdn.net/jinzhuojun/article/details/79834697背景本文主要介绍深度学习框架Caffe的工作原理和实现。时至今日,各种深度学习框架百花齐放,百家争鸣,从流行程度来说Caffe可能已经不同往日,那我们为什么还要来学习它的代码呢?尽管今天我们有了更多的选择,比如TensorFlow后来居上,凭借完整的生态、庞大的...原创 2018-04-07 18:57:53 · 7729 阅读 · 0 评论 -
深度增强学习(DRL)漫谈 - 从AC(Actor-Critic)到A3C(Asynchronous Advantage Actor-Critic)
原文地址:http://blog.csdn.net/jinzhuojun/article/details/72851548前言之前在文章《深度增强学习(DRL)漫谈 - 从DQN到AlphaGo》扯了一些关于DRL的内容,但因为是以DQN为主线,其中大部分谈的是value-based方法。我们知道传统增强学习(Reinforcement learning, RL)中除了value-ba原创 2017-06-04 22:29:16 · 55691 阅读 · 9 评论 -
常用增强学习实验环境 II (ViZDoom, Roboschool, TensorFlow Agents, ELF, Coach等)
原文链接:http://blog.csdn.net/jinzhuojun/article/details/78508203前段时间Nature上发表的升级版Alpha Go - AlphaGo Zero再一次成为热点话题。作为其核心技术之一的Deep reinforcement learning(深度增强学习,或深度强化学习)也再一次引发关注。Alpha Zero最有意义的地方之一是它去除了从...原创 2017-11-12 11:15:51 · 13328 阅读 · 0 评论 -
machine learning 大家
陈年老帖,翻出来共享一下,本人才疏学浅,不做评价。来源闲着无事,想写点一些我所了解的machine learning大家。由于学识浅薄,见识有限,并且仅局限于某些领域,一些在NLP及最近很热的生物信息领域活跃的学者我就浅陋无知,所以不对的地方大 家仅当一笑。Machine Learning 大家(1):M. I. Jordan在我的眼里,M Jordan无疑是武林中的泰山北斗。他师出M转载 2013-01-03 19:31:32 · 1637 阅读 · 0 评论