深度学习的GPU:深度学习中使用GPU的经验和建议

2023-05-16

 向AI转型的程序员都关注了这个号???


大数据挖掘DT数据分析  公众号: datadw


深度学习是一个计算需求强烈的领域,您的GPU的选择将从根本上决定您的深度学习体验。在没有GPU的情况下,这可能看起来像是等待实验结束的几个月,或者运行一天或更长时间的实验,只是看到所选参数已关闭。

有了一个好的,坚实的GPU,人们可以快速迭代深度学习网络,并在几天而不是几个月,几小时而不是几天,几分钟而不是几小时的时间内运行实验。因此,在购买GPU时做出正确的选择至关重要。那么你如何选择适合你的GPU呢?这个博客文章将深入探讨这个问题,并会借给你的建议,这将有助于你做出适合你的选择。

拥有高速GPU是开始学习深度学习的一个非常重要的方面,因为这可以让您快速获得实践经验,这是建立专业知识的关键,您可以将深度学习应用于新问题。如果没有这种快速的反馈,只需花费太多的时间从错误中学习,而继续深入的学习可能会令人沮丧和沮丧。

借助GPU,我很快就学会了如何在一系列Kaggle比赛中应用深度学习,并且我使用深度学习方法在“部分阳光”中获得了第二名,,这是预测给定鸣叫的天气评分的任务。在比赛中,我使用了一个相当大的两层深度神经网络,整数线性单位和正则化退出,这个深度网络几乎适合我的6GB GPU内存。

我应该得到多个GPU?

受到GPU深度学习的激励,我通过组装一个带有InfiniBand 40Gbit / s互连的小型GPU集群,使自己陷入了多GPU领域。我很高兴看到多个GPU可以获得更好的结果。

我很快发现,要在多个GPU上高效地并行化神经网络不仅非常困难,而且对于稠密神经网络来说,加速只是平庸的。小型神经网络可以使用数据并行性相当高效地进行并行化处理,但是像Partly Sunny中使用的大型神经网络几乎没有任何加速。

后来我进一步冒险,我开发了一种新的8位压缩技术,与32位方法相比,您可以更高效地将密集或完全连接的层并行化。

不过,我也发现并行化可能会令人非常沮丧。我天真地优化了一系列问题的并行算法,只是发现即使在多个GPU上优化的定制代码并行性也不能很好地工作,因为您必须付出努力。您需要非常了解您的硬件,以及它如何与深度学习算法进行交互,以评估您是否能从并行化中受益。


在我的主电脑上安装:您可以看到三个GXT Titan和一个InfiniBand卡。这是一个深入学习的好设置吗?  

自那时以来,GPU的并行性支持更为普遍,但与通用可用性和高效性相差甚远。当前在GPU和计算机之间实现高效算法的唯一深度学习库是CNTK,它使用微软的1位量化(高效)和块动量(非常高效)的特殊并行算法。

有了CNTK和96个GPU的集群,您可以预期约90x-95x的新线速度。Pytorch可能是支持跨机器的高效并行性的下一个库,但图书馆还没有。如果你想在一台机器上并行,那么你的选择主要是CNTK,Torch,Pytorch。这些库产生良好的加速(3.6x-3.8x),并在一台机器上具有预定义的并行算法,最多支持4个GPU。还有其他支持并行性的库,

如果你把并行的价值,我建议使用Pytorch或CNTK。

使用多个GPU没有并行性

使用多个GPU的另一个优势是,即使您没有并行化算法,您也可以在每个GPU上分别运行多个算法或实验。你没有获得加速,但是通过一次使用不同的算法或参数,你可以获得更多的性能信息。如果您的主要目标是尽快获得深入的学习体验,这对于想要同时尝试多个版本的新算法的研究人员非常有用。

如果你想学习深度学习,这在心理上很重要。执行任务和接收任务的时间间隔越短,大脑就越能够将相关记忆片段整合到一个连贯的画面中。如果您在小数据集上的单独GPU上训练两个卷积网络,您将更快感受到重要的性能表现; 您将更容易在交叉验证错误中检测到模式并正确解释它们。你将能够检测到模式,给你提示什么参数或层需要添加,删除或调整。

总体而言,可以说一个GPU几乎适用于任何任务,但是多个GPU对于加速您的深度学习模型变得越来越重要。如果您想快速学习深度学习,多款便宜的GPU也非常出色。我个人拥有相当多的小型GPU,甚至是我的研究实验。

我应该得到什么样的加速器?NVIDIA GPU,AMD GPU或Intel Xeon Phi?

NVIDIA的标准库使得在CUDA中建立第一个深度学习库非常容易,而AMD的OpenCL则没有这样强大的标准库。现在,AMD卡没有很好的深度学习库,所以就是NVIDIA。即使未来有一些OpenCL库可用,我也会坚持使用NVIDIA:GPU计算或GPGPU社区对于CUDA来说是非常大的,而对于OpenCL而言是相当小的。因此,在CUDA社区中,很容易获得良好的开源解决方案和可靠的建议。

此外,即使深度学习刚刚起步,NVIDIA仍然深入学习。这个赌注得到了回报。而其他公司现在把钱和精力放在深度学习上,由于起步较晚,他们还是很落后。目前,除NVIDIA-CUDA之外,使用任何软硬件组合进行深度学习都将导致重大挫折。

在英特尔至强融核的情况下,广告宣称您可以使用标准的C代码,并将代码轻松转换为加速Xeon Phi代码。这个特性听起来很有趣,因为你可能认为你可以依靠C代码的庞大资源。但是,实际上只有很小部分的C代码是被支持的,所以这个功能并不是很有用,而且你可以运行的大部分C代码都很慢。

我曾经在一个至少有500个至强Phis的Xeon Phi集群上工作,对它的失望是无止境的。我无法运行我的单元测试,因为Xeon Phi MKL与Python Numpy不兼容; 我不得不重构大部分代码,因为英特尔至强融核编译器无法对模板进行适当的缩减 - 例如对于switch语句; 我不得不改变我的C接口,因为Intel Xeon Phi编译器不支持一些C ++ 11功能。所有这些都导致了我不得不在单元测试中执行的重构。这花了很多时间。这是地狱。

然后当我的代码最终执行时,一切都非常缓慢。线程调度程序(?)中存在错误(?)或问题,如果您操作的张量大小连续发生变化,则会使性能瘫痪。例如,如果您有不同大小的完全连接的图层或丢弃图层,则Xeon Phi比CPU要慢。我在一个孤立的矩阵矩阵乘法例子中复制了这个行为,并将它发送给了Intel。我从来没有从他们那里听到。所以,如果你想深入学习,那就离开至强菲斯吧!

给定预算最快的GPU

你的第一个问题可能是深度学习的GPU性能最重要的特性是:cuda核心?时钟速度?内存大小?

这两者都不是,但深度学习性能最重要的特征是内存带宽。

简而言之:GPU针对内存带宽进行了优化,同时牺牲了内存访问时间(延迟)。CPU的设计恰恰相反:如果涉及少量内存(例如乘以几个数字(3 * 6 * 9)),CPU可以快速计算,但是对于大量内存(如矩阵乘法(A * B * C)他们很慢。由于内存带宽的限制,图形处理器擅长涉及大量内存的问题。当然,GPU和CPU之间还有更复杂的区别,如果您对GPU深度学习的深度感兴趣,您可以在我的quora答案中阅读关于这个问题的更多信息。

所以如果你想购买一个快速的GPU,首先要看看那个GPU的带宽。

通过内存带宽评估GPU

随着时间的推移,CPU和GPU的带宽比较:带宽是GPU比CPU更快的主要原因之一。

带宽可以直接在体系结构中进行比较,例如像GTX 1080和GTX 1070这样的Pascal卡的性能可以直接通过单独查看内存带宽进行比较。例如,GTX 1080(320GB / s)比GTX 1070(256 GB / s)快25%(320/256)。然而,跨体系结构,例如像GTX 1080与GTX Titan X之类的Pascal与Maxwell不能直接比较,因为不同制造工艺的架构(以纳米为单位)如何不同地利用给定的内存带宽。这使得一切都有点棘手,但仅仅整体带宽就能让你很好地概括一下GPU的速度。为了确定一个给定的预算最快的GPU可以使用这个维基百科页面以GB / s为单位查看带宽; 上市的价格是相当准确的新卡(900和1000系列),但较旧的卡比明显便宜的价格 - 特别是如果你通过eBay购买这些卡。例如,一个普通的GTX Titan X在eBay上的售价约为550美元。

另一个需要考虑的重要因素是并不是所有的架构都与cuDNN兼容。由于几乎所有深度学习库都使用cuDNN进行卷积运算,因此将GPU的选择限制在开普勒GPU或更高的版本,即GTX 600系列或更高版本。最重要的是,开普勒GPU一般都很慢。所以这意味着你应该选择900或1000系列的GPU来获得更好的性能。

为了粗略地估计这些卡在深度学习任务上的表现,我构建了一个简单的GPU等值图。如何阅读这个?例如,一个GTX 980与0.35 Titan X Pascal一样快,或者换句话说,Titan X Pascal几乎是GTX 980的三倍。

请注意,我自己并没有所有这些卡,我没有在所有这些卡上运行深入的学习基准。比较是从卡片规格与计算基准的比较中得出的(一些加密货币挖掘的情况是与深度学习在计算上相当的任务)。

所以这些是粗略的估计。实际的数字可能会有所不同,但通常错误应该是最小的,卡的顺序应该是正确的。另外请注意,那些利用GPU不足的小型网络会让更大的GPU看上去不好。例如,GTX 1080 Ti上的小型LSTM(128个隐藏单元;批量大小> 64)不会比在GTX 1070上运行速度快得多。为了获得图表中显示的性能差异,需要运行更大的网络具有1024个隐藏单位的LSTM(批量大小> 64)。

GPU之间粗略的性能比较。此比较仅适用于较大的工作负载。

成本效益分析

如果我们现在从上面画出粗略的表现指标,并将它们除以每张卡片的成本,那么就是如果我们为您赚取高昂的成本,我们最终会得出一个情节,这在某种程度上反映了我的建议。

使用上面粗略的性能度量标准和亚马逊的价格来计算新卡的成本效率和旧卡的eBay价格。请注意,这个数字在很多方面都有偏差,例如它没有考虑到内存

但请注意,这种对GPU排名的衡量标准是相当有偏见的。首先,这不考虑GPU的内存大小。您经常需要比GTX 1050 Ti所能提供的内存更多的内存,因此虽然具有成本效益,但一些高级卡却没有实际可行的解决方案。

类似地,使用4个小型GPU而不是1个大型GPU是困难的,因此小型GPU具有缺点。此外,你不能购买16个 GTX 1050 Ti来获得4 GTX 1080 Ti的性能,你还需要购买3台额外的昂贵的电脑。如果我们考虑这最后一点,图表看起来像这样。

考虑到其他硬件的价格,GPU的成本效率标准化。在这里,我们比较一台完整的机器,即4个GPU,以及价值1500美元的高端硬件(CPU,主板等)。

因此,在这种情况下,如果您想要购买许多GPU,实际上代表了这种情况,如果您购买更具成本效益的计算机+ GPU组合(而不仅仅是经济高效的GPU),则毫无疑问,大GPU将赢得胜利。但是,这仍然是GPU选择的偏见。无论如何,如果您拥有有限的金额,而且首先无法负担得起,那么一个盒子里的4个GTX 1080 Ti如何具有成本效益并不重要。

因此,您可能对如何使用高性价比的卡片感兴趣,但实际上,对于您拥有的金额,您可以购买哪种性能最好的系统?您还必须处理其他问题,例如:我将有多长时间使用此GPU?我想在几年内升级GPU或整个计算机吗?我想在未来一段时间内销售当前的GPU,并购买新的更好的GPU吗?

所以你可以看到,做出正确的选择并不容易。但是,如果你对所有这些问题持平衡的看法,你会得出类似于以下建议的结论。

一般的GPU建议

一般来说,我会推荐GTX 1080 Ti,GTX 1080或GTX 1070.他们都是优秀的显卡,如果你有GTX 1080 Ti的钱,你应该继续。GTX 1070比普通的GTX Titan X(Maxwell)要便宜一些。GTX 1080的成本效率比GTX 1070低一些,但是自GTX 1080 Ti推出以来,价格大幅下滑,现在GTX 1080能够与GTX 1070竞争。所有这三款显卡应该比GTX 980 Ti由于他们增加了11GB和8GB(而不是6GB)的内存。

8GB的内存可能看起来有点小,但是对于许多任务来说,这已经足够了。例如对于Kaggle比赛,大多数图像数据集,深入的风格和自然语言理解任务,您将遇到几个问题。

GTX 1060是第一次尝试深度学习的最佳入门级GPU,或者偶尔用于Kaggle比赛。我不会推荐带有3GB内存的GTX 1060变种,因为另一个变种的6GB内存已经相当有限了。但是,对于许多应用来说,6GB就足够了。GTX 1060比普通的Titan X慢,但在GTX 980的性能和eBay价格上都是可比的。

就爆炸而言,10系列设计得非常好。GTX 1050 Ti,GTX 1060,GTX 1070,GTX 1080和GTX 1080 Ti脱颖而出。GTX 1060和GTX 1050 Ti适用于初学者,GTX 1070和GTX 1080是初创公司,部分研究和工业部门以及GTX 1080 Ti的全面选择。

我通常不会推荐NVIDIA Titan Xp,因为它的性能太昂贵了。用GTX 1080 Ti代替。然而,NVIDIA Titan Xp在计算机视觉研究人员中仍然占有一席之地,他们从事大数据集或视频数据。在这些领域,每GB的内存数量,NVIDIA Titan Xp只比GTX 1080 Ti多1GB,因此在这种情况下是一个优势。我不会推荐NVIDIA Titan X(Pascal),因为NVIDIA Titan Xp速度更快,价格几乎相同。由于市场上这些GPU的稀缺性,如果你找不到可以购买的NVIDIA Titan Xp,你也可以购买Titan X(Pascal)。你也许能够从eBay抢夺便宜的Titan X(Pascal)。

如果你已经有了GTX Titan X(Maxwell)GPU,那么升级到NVIDIA Titan X(Pascal)或NVIDIA Titan Xp是不值得的。节省您的下一代GPU的钱。

如果你缺钱,但是你知道12GB内存对你来说很重要,那么eBay的GTX Titan X(Maxwell)也是一个很好的选择。

但是,大多数研究人员使用GTX 1080 Ti做得很好。大多数研究和大多数应用程序不需要额外的GB内存。

我个人会与多个GTX 1070或GTX 1080研究。我宁愿运行几个比只运行一个更快的实验慢一点的实验。在NLP中,内存限制并不像计算机视觉那么严格,所以GTX 1070 / GTX 1080对我来说也不错。我工作的任务以及如何运行我的实验决定了我的最佳选择,不管是GTX 1070还是GTX 1080。

当你选择你的GPU时,你应该以类似的方式推理。考虑一下你在做什么任务,如何运行你的实验,然后尝试找到适合这些要求的GPU。

对于GPU几乎没有钱的人来说,选项现在更加有限。亚马逊网络服务上的GPU实例现在相当昂贵和缓慢,如果您拥有更少的资金,则不再是一个不错的选择。我不推荐GTX 970,因为它很慢,即使在使用的条件下购买也是相当昂贵的(在eBay上150美元),并且存在与卡启动相关的内存问题。相反,尝试获得额外的钱购买GTX 1060更快,有更大的内存,没有内存问题。如果你买不起GTX 1060,我会选择配备4GB内存的GTX 1050 Ti。4GB可以是限制,但你将能够深入学习,如果你对模型进行一些调整,你可以得到良好的性能。

GTX 1050 Ti一般来说也是一个坚实的选择,如果你只是想深入学习一下,没有任何认真的承诺。

亚马逊网络服务(AWS)GPU实例

在此博客文章的以前版本中,我推荐AWS GPU现货实例,但我不会再推荐这个选项。AWS上的GPU现在非常慢(一个GTX 1080的速度是AWS GPU的四倍),价格在过去几个月急剧上升。现在再次购买你自己的GPU似乎更合理。

结论

有了这篇文章中的所有信息,您应该能够通过平衡需要的内存大小,以GB / s为单位的速度和GPU的价格来平衡选择哪一种GPU,并且这个推理在未来很多年内将会保持稳定。但是现在我的建议是要买一台GTX 1080 Ti,GTX 1070或者GTX 1080,一个GTX 1060,如果你刚刚开始深入学习或受到金钱的限制; 如果你有很少的钱,试着买一个GTX 1050 ; 如果你是计算机视觉研究人员,你可能想要一个Titan Xp。

最好的GPU整体(小幅度):Titan Xp 
成本效益,但昂贵:GTX 1080 Ti,GTX 1070,GTX 1080 
成本效益和便宜:GTX 1060(6GB)

  • 我使用数据集> 250GB:GTX Titan X(Maxwell) ,NVIDIA Titan X Pascal或NVIDIA Titan Xp

  • 我没有多少钱:GTX 1060(6GB)

  • 我几乎没有钱:GTX 1050 Ti(4GB)

  • 我做Kaggle:GTX 1060(6GB)适用于任何“正常”比赛,或GTX 1080 Ti为“深度学习竞赛”

  • 我是一名具有竞争力的计算机视觉研究员:NVIDIA Titan Xp; 不要从现有的Titan X(Pascal或Maxwell)升级

  • 我是一名研究员:GTX 1080 Ti

在某些情况下,如自然语言处理,一个GTX 1070或GTX 1080也可能是一个坚实的选择-检查你的现有机型的内存需求我想建立一个GPU集群: 这确实是复杂的,你可以得到一些想法 在这里我开始深入学习,我认真对待它:从GTX 1060(6GB)开始。

根据你选择什么样的区域,毗邻(启动,Kaggle,研究,应用深度学习)推销自己的GTX 1060和买东西更合适我想尝试深度学习,但我不认真的:GTX 1050 Ti(4或2GB)via http://blog.csdn.net/sinat_36458870/article/details/78946030

人工智能大数据与深度学习

搜索添加微信公众号:weic2c

长按图片,识别二维码,点关注



大数据挖掘DT数据分析

搜索添加微信公众号:datadw


教你机器学习,教你数据挖掘

长按图片,识别二维码,点关注

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深度学习的GPU:深度学习中使用GPU的经验和建议 的相关文章

  • error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2” 解决方法

    错误原因 xff0c Debug工程引用了Release版本的库文件 解决方法
  • 关于wince OS开发面试问题的总结系列之Bootloader

    参考资料 xff1a 1 Windows CE 工程事件完全解析 by xff1a 李大为 2 Windos CE 实用开发技术 by xff1a 张冬泉 等 3 Windows Embedded CE 6 0 Fundamentals 4
  • Jacobian矩阵和Hessian矩阵

    1 Jacobian 转载自 xff1a http jacoxu com p 61 146 在向量分析中 雅可比矩阵是一阶偏导数以一定方式排列成的矩阵 其行列式称为雅可比行列式 还有 在代数几何中 代数曲线的雅可比量表示雅可比簇 xff1a
  • 打工与乘公交

    去一个公司打工就如同上了一辆公交车 在上车之前 xff0c 你应该清楚自己打算去哪里 xff0c 打算在哪里下车 有的公交车很豪华 xff0c 有的很破烂 xff0c 但是这并不是重点 xff0c 所有能开到目的地的车都是好车 上了车之后
  • 卡尔曼滤波器(从vchelp的算法论坛上看到的)

    卡尔曼滤波器 Kalman Filter 1 xff0e 什么是卡尔曼滤波器 xff08 What is the Kalman Filter xff09 在学习卡尔曼滤波器之前 xff0c 首先看看为什么叫 卡尔曼 跟其他著名的理论 xff
  • 第4篇 FreeRTOS是如何工作的---基本原理3(上下文切换)

    上下文切换Context Switching 任务执行时 xff0c 它使用处理器 微控制器的寄存器并访问RAM和ROM xff0c 就像任何其他程序一样 这些资源 处理器寄存器 堆栈等 组成了任务执行上下文 任务是一段连续的代码 xff0
  • MissionPlanner-开发历程-1

    1 Mission Planner 简介 Mission Planner是使用C 开发的开源飞控地面站软件 xff0c 使用MavLink通信协议 xff0c 浏览官方网站 Mission Planner是ArduPilot开源自动驾驶项目
  • 关于SpringSecurity配置中的一些问题解决(登录页面不跳转,报错302)

    1 为何在自定义的登录页面中登录完页面不跳转 xff1f 主要是SpringSecurity在校验csrf跨域时候 xff0c 会传一个csrf相关的随机token值 xff01 在SpringSecurity 4 之后 xff0c 其cs
  • DAY2. jetson nx gpio

    更新 扩展接口说明 xff0c 官方说明文档 xff1a Jetson Xavier NX DevKit Carrier Board Specification v1 0 pdf 分割线 参照这个文档 xff1a https www jet
  • 使用kinect2进行目标跟踪-ROS平台

    之前闲得无聊 xff0c 在ROS平台上调用Kinect摄像头进行目标跟踪检测 首先 xff0c 要在ubuntu下安装好Kinect2和ROS的接口 xff0c 参考http www mamicode com info detail 15
  • 在ROS中使用opencv-灰度处理

    没什么好说的 xff0c 直接看代码理解吧 xff1a include lt ros ros h gt ros标准库头文件 include lt iostream gt C 43 43 标准输入输出库 cv bridge中包含CvBridg
  • GCC的编译流程分为了四个步骤:

    GCC的编译流程分为了四个步骤 1 预处理 xff0c 生成预编译文件 xff08 文件 xff09 xff1a Gcc E hello c o hello i 2 编译 xff0c 生成汇编代码 xff08 s文件 xff09 xff1a
  • Android自定义控件基础

    采用自定义控件解决重复编写代码的问题 总共分三步 1 写好一个自定义模板布局 title XML span class hljs pi lt xml version 61 34 1 0 34 encoding 61 34 utf 8 34
  • String,StringBuffer,StringBuilder的区别(优缺点)

    最近学习到StringBuffer xff0c 心中有好些疑问 xff0c 搜索了一些关于String xff0c StringBuffer xff0c StringBuilder的东西 xff0c 现在整理一下 关于这三个类在字符串处理中
  • nginx+tomcat重复请求

    好久不写技术文章了 xff0c 越发的觉得单纯的讲技术没啥意思 怪不得知乎越来越火 xff0c 因为大家都喜欢看故事 xff0c 不喜欢硬生生的技术文章 笔者今天就来就给大家讲故事 最近网站压力突然增大 xff0c 把带宽都占满了 xff0
  • Android真机获得root权限修改文件权限

    好久没有更新博客了 xff0c 最近因为重装了系统导致所有的配置都不存在了 xff0c 当要修改Android权限去查看数据库文件的时候 xff0c 发现又忘记了怎么去获得修改权限 xff08 其实第一次弄这个内容的时候就费了很大的劲 xf
  • Android完全自定义控件并且实现监听事件

    本篇文章带来Android的完全自定义控件 载体是自定义一个开关的控件 xff0c 并且能够响应事件 xff0c 首先我们先创一个项目 xff0c 名字就叫ToggleView xff0c 修改MainActivity span class
  • 2016年总结,辛勤劳作的一年

    直到刚才听到门外的爆竹声 才意识到这一年 xff0c 快结束了 今天是11月26号 xff0c 其实离2017年还有一段距离 xff0c 趁着今天有空 xff0c 给自己写一篇文章 其实 xff0c 我是很不想说 xff0c 你好 xff0
  • Android屏幕适配实战

    说一下在项目里面遇到的一个问题 xff0c 和解决思路 需求来源于运营小姐姐 xff0c 她们希望在App的搜索关键字前面加上图片醒目效果图如下 布局很简单左边一个SimpleDraweeView xff0c 右边一个TextView xf
  • 定制阿里代码检查,实现你自己的代码规范检查

    几个月前 xff0c 阿里开源了p3c xff0c 我也接到了老大交给我的技术改造 是这样的 xff0c app是老项目了 xff0c 半年前接入了ARouter xff0c 由于Activity繁多 xff0c 就没有去全局支持ARout

随机推荐

  • Fresco内部诟病引起的初次从网络加载PNG图片失败

    如题描述 xff0c 这个问题在项目中存在已久 xff0c 今天由于自己的功能在首页 xff0c 初次启动的体验极其糟糕 xff0c 所以硬下头皮把这个问题解决了 先来描述一下怎么样一个差的体验吧 就是当我第一次加载网络PNG xff08
  • 不用第三方写一个简单的推流软件

    https github com iOSSinger SGLivingPublisher 不用第三方写一个简单的推流软件 6 commits 1 branch 0 releases 1 contributor Objective C 100
  • 【安防百科】视频监控中常用的分辨率

    http www 360doc com content 17 0317 10 33642774 637585058 shtml 在上一节跟大家谈了摄像机的线数 xff0c 线 是模拟时代的产物 xff0c 当今世界早已是数字化的世界 xff
  • ubuntu20.04下的录屏与视频剪辑软件

    ubuntu20 04下的录屏与视频剪辑 一 录屏软件SimpleScreenRecorder安装与使用1 安装2 设置录制窗口参数3 开始录制 二 视频剪辑软件kdenlive的安装1 安装2 启动 一 录屏软件SimpleScreenR
  • 八、Gazebo 学习笔记:附加网格(Mesh)

    官网教程链接 xff1a http gazebosim org tutorials tut 61 attach meshes 概述 先决条件 xff1a 创建一个移动机器人 网格可以在视觉上和传感器上增加模型的真实感 本教程演示了用户如何使
  • Can I become a good programmer without math and algorithms knowledge?

    Knowledge of algorithms has very little to do with programming skill As some random dude on the internet once said 34 Wh
  • MOXA串口服务器的配置

    1 配置AP 步骤一 xff1a 连接网线 xff0c 如果遇到无法连接本地网络就先查看宽带驱动有没有装好 xff0c 另外换一根网线试试 打开网络连接 点属性打开本地连接属性 步骤二 xff1a 更改电脑的IP地址 xff0c 如192
  • 什么是人工智能?

    Extinguished philosophies lie about the cradle of every science as the strangled snakes beside that of Hercules adapted
  • 【基于Python的ROS学习】

    基于Python的ROS学习 1 订阅topic def span class token function listener span span class token punctuation span span class token
  • P2P中DHT网络介绍

    一 P2P 及 DHT 网络简单介绍 xff1a P2P在思想上可以说是 internet 思想 精神 哲学非常集中的体现 xff0c 共同的参与 xff0c 透明的开放 xff0c 平等的分享 xff08 让我想起之前学习过的 xff0c
  • C++ 库

    基础类 1 Dinkumware C 43 43 Library 参考站点 xff1a http www dinkumware com P J Plauger编写的高品质的标准库 P J Plauger博士是Dr Dobb 39 s程序设计
  • APM(PX4-v2) 定高模式相关(AltHold)

    1 分析log文件 xff0c 及其消息的赋值 LOG CONTROL TUNING MSG sizeof log Control Tuning 34 CTUN 34 34 Qhhfffecchh 34 34 TimeUS ThrIn An
  • APM的解锁(ARM)流程

    解锁检测函数 解锁检测函数是arm motors check xff08 xff09 xff0c 作为scheduler每秒运行10此 xff0c 定义在motors cpp中 xff0c 定义如下 define ARM DELAY 20
  • 智能运维就是 由 AI 代替运维人员?

    本文整理自 GOPS2017 上海站演讲 从说到做 大型企业智能运维的360度解析 讲师简介 孙杰 xff0c 国内一线运维专家 xff0c 从业十几载的IT老兵 xff0c 专注于系统 运维 云计算和数据中心管理 xff0c 先后在外企
  • AIOps 风向标!GOPS2018深圳站实录(附白皮书及PPT)

    本文相关下载资料 xff1a 本次大会精彩演讲 PPT 企业级 AIOps 实施建议 白皮书 DevOps 标准体系及能力成熟度模型 盼星星盼月亮 xff0c 2018 GOPS 深圳站终于到来了 xff01 hia hia hia hia
  • Linux UART接口调试技巧

    在嵌入式项目中 xff0c UART接口的使用频率很高 xff0c 多种模块 2G通信模组 蓝牙模块 xff0c 等等 都会通过UART接口与主控MCU相连 本文将梳理UART接口调试流程 xff0c 为调试工作提供参考 xff0c 解决调
  • What do software developers age 30 and over know now that they wish they had known in their 20s?

    Here are a few thoughts I 39 d also recommend a thorough read of Joe Wezorek 39 s answer to this question Life is long I
  • 两款主流摄像头OV7620与OV7670 By Demok

    如今 xff0c 市场上提到可以应用在智能车上的摄像头 xff0c 多如牛毛 到底那一款最适合用在智能车上呢 xff0c 这里DEMOK选取了2款典型的摄像头OV7670与OV7620 xff0c 从其特性和性能等角度 xff0c 剖析摄像
  • 树莓派3B+(07):外网访问Pi Dashboard

    外网访问Pi Dashboard Pi Dashboard Pi 仪表盘 是一个开源的 IoT 设备监控工具 xff0c 目前主要针对树莓派平台 xff0c 也尽可能兼容其他类树莓派硬件产品 你只需要在树莓派上安装好 PHP 服务器环境 x
  • 深度学习的GPU:深度学习中使用GPU的经验和建议

    向AI转型的程序员都关注了这个号 大数据挖掘DT数据分析 公众号 xff1a datadw 深度学习是一个计算需求强烈的领域 xff0c 您的GPU的选择将从根本上决定您的深度学习体验 在没有GPU的情况下 xff0c 这可能看起来像是等待