首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏AI研习社

    PyTorch算法加速指南

    所有帖子都在这里: 1.加快算法速度,第1部分—PyTorch 2.加快算法速度,第2部分-Numba 3.加快算法速度,第3部分—并行化 4.加快算法速度,第4部分--Dask 这些与Jupyter 引言: 在本文中,我将展示如何使用torch和pycuda检查、初始化GPU设备,以及如何使算法更快。 PyTorch是建立在torch之上的机器学习库。它得到了Facebook AI研究小组的支持。 4. 如何在GPU上储存张量并且运行模型? 如果要在cpu上存储内容,可以简单地写: a = torch.DoubleTensor([1., 2.]) 4.parallel_apply:要将从Scatter获得的一组分布式输入s,应用于从Replicate获得的相应分布式Module集合。 via https://towardsdatascience.com/speed-up-your-algorithms-part-1-pytorch-56d8a4ae7051

    1.3K20发布于 2019-11-27
  • 来自专栏修也的进阶日记

    算法手记4

    解题代码: 本题解题代码如下: class Solution { public: int vis[101][101]={0};//标记这个位置是否被用过 int dx[4]={0,0,1 ,-1}; int dy[4]={1,-1,0,0}; bool exist(vector<string>& board, string word) { word.size()-1) return true; //进入这个位置就把这个位置锁住 vis[x][y] = 1; //如果递归的是中间字符,继续搜索4个方位有没有符合下一个的 ,如果有,继续递归搜 for(int i=0; i<4; i++) { int a = x+dx[i],b=y+dy[i]; 如果四个位置找完没有符合下一个字符的,那么释放本位置的锁,返回false vis[x][y]=0; return false; } }; 结语 说点啥好呢...牵扯二维的算法就有点难了

    17310编辑于 2025-03-15
  • 来自专栏云深之无迹

    Python算法.4

    Python算法.3 Python 算法.2 Python算法.1 colors=['black','white'] sizes=['S','M','L'] tshirts=[(color,size print("A:%2d B:%2d C:%2d" % (a, b, c), end='') i += 1 if i % 4 # 求阶乘 def fact(n): if n==1: return 1 return n*fact(n-1) fact(4) def fib(n): if n

    37950发布于 2021-07-23
  • 来自专栏国产程序员

    垃圾回收算法(4)-复制算法

    算法原理 复制算法首先将或者的内存空间分为2块,每次只使用其中一块,在垃圾会搜时将正在使用的内存中的存活对象复 制到未被使用的内存块中,之后清楚正在使用的内存块中的所有对象,交换2个内存的角色,最后完成垃圾回收 因为年轻代中的对象基本都是朝生夕死的(80%以上),所以在年轻代的垃圾回收算法使用的是复制算法,复制算法的基本思想就是将内存分为两块,每次只用其中一块,当这一块内存用完,就将还活着的对象复制到另外一块上面 复制算法不会产生内存碎片。 在GC开始的时候,对象只会存在于Eden区和名为“From”的Survivor区,Survivor区“To”是空的。 image 存在问题 由于JVM中的绝大多数对象都是瞬时状态的,生命周期非常短暂,所以复制算法被广泛应用于年轻代中。 不过在垃圾收集技术中,复制算法提高效率的代价是认为的将可用内存缩小了一半。 个人博客 简书 掘金 CSDN OSCHINA

    91420发布于 2020-07-22
  • 来自专栏FPGA技术江湖

    基于 FPGA 的压缩算法加速实现

    基于 FPGA 的压缩算法加速实现 第一部分 设计概述 /Design Introduction 1.1设计目的 本设计中,计划实现对文件的压缩及解压,同时优化压缩中所涉及的信号处理和计算密集型功能,实现对其的加速处理 系统组成及功能说明 /System Construction & Function Description 2.1 系统的功能实现 本设计中,在pynq-z2 FPGA平台上使用Gzip对文件进行了压缩算法加速实现 2.3.1 gzip文件头的基本组成 文件头部分结构如图4: 图4 上面两个“+”之间的内容代表一个字节,所以上面除了MTIME使用四个字节之外,其他只占用一个字节。 (的那个压缩级别); XFL= 4 – 最快的压缩(级别); OS (OperatingSystem):该字段表示执行压缩操作的文件系统。 并具备一定的加速效果,相比纯arm进行压缩速度提高了1.6倍。Vivado硬件工程能够通过综合、应用、生成比特流。最后通过Jupyter Notebook在pynq z2平台上进行功能验证。

    55000编辑于 2025-07-08
  • 4种回收算法

    (先不清理,先移动再清理回收对象) 优点: 不产生空间碎片:将所有存活对象整理到一端,边界以外被清理掉 缺点: 效率低:标记-整理算法是在标记-清除算法的基础上,又进行了对象的移动,因此成本更高 复制算法(Copying): 复制算法:将可用内存分为大小相等两块,每次只使用其中一块,当该内存使用完后,就将该内存中活着的对象复制到另一块内存;然后再将已使用过得内存一次性清理 这样每次都是对一块内存进行回收 ,如果存活对象很多,那么复制算法的效率将会大大降低。   ,再根据不同的算法进行回收。 3、当对象寿命超过阈值时,会晋升至老年代,最大寿命是15(4bit) 4、当老年代空间不足,会先尝试触发 minor gc,如果之后空间仍不足,那么触发 full gc,STW(stop the

    25710编辑于 2024-03-20
  • 来自专栏帆说区块链

    【共识算法4)】拜占庭容错算法-“PBFT”

    算法是继raft算法之后的再一次深入实践的共识算法,与raft、paxo一样都可以看作是分布式一致性算法。 Practical Byzantine Fault Tolerance:PBFT,是联盟币的共识算法的基础。实现了在有限个节点的情况下的拜占庭问题,有3f+1的容错性,并同时保证一定的性能。 容错率 raft算法的的容错只支持容错故障节点,不支持容错作恶节点,所以容错率高,过半节点正常即可 PBFT算法可以容忍小于1/3个无效或者恶意节点 作恶节点:除了可以故意对集群的其它节点的请求无响应之外 性能尚可 PBFT 算法通信复杂度 o(n^2),因为系统在尝试达成状态共识时,涉及到N个几点都需要广播N-1个其它节点。 而在没有作恶节点的zab、raft系统中,通信复杂度 O(N) raft与PBFT各有优缺点,raft容纳故障节点,PBFT容纳错误节点,要保持整个网络的稳定,或者说在一些鲁棒性要求高的场合,将两者算法结合会是一个非常不错的选择

    2.3K10编辑于 2022-04-26
  • 来自专栏小小挖掘机

    一行代码将Pandas加速4

    当你使用 4 核(现代 Intel i5)或 6 核(现代 Intel i7)时,情况会变得更糟。pandas 的设计初衷并不是为了有效利用这种计算能力。 Modin是一个新的库,通过在系统所有可用的 CPU 核上自动分配计算来加速 pandas。 因此,并不是所有的 pandas 功能都被完全加速了。如果你在 Modin 中尝试使用一个还没有被加速的函数,它将默认为 panda,因此不会有任何代码错误或错误。 import ray ray.init(num_cpus=4) import modin.pandas as pd 在处理大数据时,数据集的大小超过系统上的内存(RAM)的情况并不少见。 希望你发现 Modin 至少在一些情况下对加速 panda有用。

    3.7K10发布于 2019-12-11
  • 来自专栏Datawhale专栏

    一行代码将Pandas加速4

    当你使用 4 核(现代 Intel i5)或 6 核(现代 Intel i7)时,情况会变得更糟。pandas 的设计初衷并不是为了有效利用这种计算能力。 Modin是一个新的库,通过在系统所有可用的 CPU 核上自动分配计算来加速 pandas。 因此,并不是所有的 pandas 功能都被完全加速了。如果你在 Modin 中尝试使用一个还没有被加速的函数,它将默认为 panda,因此不会有任何代码错误或错误。 import ray ray.init(num_cpus=4) import modin.pandas as pd 在处理大数据时,数据集的大小超过系统上的内存(RAM)的情况并不少见。 希望你发现 Modin 至少在一些情况下对加速 panda有用。

    3.4K10发布于 2019-12-09
  • GPU加速MIP原始启发式算法

    MIP求解器的加速原始启发式算法,是在不穷举搜索整个解空间的前提下,提供高质量可行解的算法加速启发式算法通过利用并行性和更智能的搜索策略来减少求解时间,使企业能够响应中断并做出低延迟决策。 本文阐释某机构cuOpt如何通过原始启发式算法,利用GPU加速为MIP问题提供高质量解,从而为MIPLIB基准测试集中的四个开放实例(liu.mps、neos-3355120-tarago.mps、polygonpack4 -7.mps 和 bts4-cta.mps)发现新解。 图4展示了CPU与GPU在平均目标间隙上的对比。图表显示,与包含复杂割平面算法和特定问题方法的求解器相比,速度有显著提升。

    10710编辑于 2026-04-08
  • 来自专栏CreateAMind

    超GFlowNet 4个数量级加速

    65] and Probabilistic Circuit (PC)5[45]. 4个数量级的加速 摘要 我们介绍边缘化模型(MMs),这是一种新的用于高维离散数据的生成模型家族。 方程(2)中的训练目标可以使用 REINFORCE 算法[71]的蒙特卡罗梯度估计进行优化。 (完整算法见附录A.4),类似于持续性对比散度[64]。 MAM在边缘推断中实现了接近4个数量级的加速,同时与AO-ARM-S的质量相当。PC在边缘推断中也非常快,但在质量方面存在差距。生成的样本和关于部分图像的额外边缘推断在附录B中。 MAM在边缘推断方面具有显著的加速,并且是唯一支持任意阶生成建模的模型。

    30510编辑于 2024-06-04
  • 来自专栏程序IT圈

    Python处理大数据,推荐4加速神器

    本文向大家介绍几个好用的加速工具,可以很好地补齐现有 PyData 技术栈的短板。有了这些工具,即便是处理亿级数据你也可以应对自如。 Mars Mars 是numpy 、 pandas 、scikit-learn的并行和分布式加速器,由阿里云高级软件工程师秦续业等人开发的一个基于张量的大规模数据计算的统一框架,目前它已在 GitHub 基于 Numpy 数组的实现,GPU 自身具有的多个 CUDA 核心可以促成更好的并行加速。CuPy 接口是 Numpy 的一个镜像,并且在大多情况下,它可以直接替换 Numpy 使用。 只要用兼容的 CuPy 代码替换 Numpy 代码,用户就可以实现 GPU 加速。 ? Vaex采用了内存映射、高效的外核算法和延迟计算等概念来获得最佳性能(不浪费内存),一旦数据存为内存映射格式,即便它的磁盘大小超过 100GB,用 Vaex 也可以在瞬间打开它(0.052 秒)。

    2.6K10发布于 2021-01-19
  • 来自专栏姜媚的专栏

    CNN 模型压缩与加速算法综述

    2.1 算法流程 与前面的“架构压缩派”的SqueezeNet不同,Deep Compression是属于“权值压缩派”的。 图4 权值量化前向和后向计算过程[6] 3、Huffman encoding(霍夫曼编码) 霍夫曼编码采用变长编码将平均编码长度减小,进一步压缩模型尺寸。 因此Song H.等人专门针对压缩后的模型设计了一套基于FPGA的硬件前向加速框架EIE[12],有兴趣的可以研究一下。 三、XNorNet 二值网络一直是模型压缩和加速领域经久不衰的研究课题之一。 四、Distilling Distilling算法是Hinton等人在论文Distilling the Knowledge in a Neural Network中提出的一种类似网络迁移的学习算法。 相信结合不断迭代优化的网络架构和不断发展的硬件计算加速技术,未来深度学习在移动端的部署将不会是一个难题。

    16.2K70发布于 2017-08-21
  • 来自专栏GiantPandaCV

    详解卷积中的Winograd加速算法

    「GiantPandaCV导语」:这篇文章为大家介绍一下用来加速卷积运算的WinoGrad算法的原理,工程实现以及相关优化思路,如果你对卷积加速算法感兴趣可以看看这篇文章。 所以在这种情况下,针对卷积的WinoGrad算法出现了,它不仅可以类似FFT一样降低计算量,它还不会引入复数,使得卷积的运算加速成为了可能。 因此,本文尝试从工程实现的角度来看一下WinoGrad,希望对从事算法加速的小伙伴有一些帮助。 2. 为什么会有这篇文章? 所以这里一共需要「4次乘法加4次加法」。 相比于普通的矩阵乘法,使用WinoGrad算法之后乘法次数减少了,这样就可以达到加速的目的了。 WinoGrad算法进一步加速 上面无论是针对U,V,M还是Y矩阵的计算我们使用的都是暴力计算,所以接下来可以使用Neon Instrics和Neon Assembly技术进行优化。

    5.4K42发布于 2020-10-10
  • 来自专栏Hsinyan写字的地方

    Python算法实践Week4-查找算法

    之间第一个数据为15的下标 temp_list = [1, 1, 1, 1, 1, 2, 3] print(temp_list.count(1)) # 5 # 返回数据为1的个数 使用内置函数实现上述顺序查找算法 list = [1, 2, 2, 3, 3, 3, 4, 4, 5, 6] x = int(input('请输入要查找的整数x:')) n = list.count(x) if n == 0: 找到了,第{}个数是{}'.format(mid + 1, x)) else: print('没找到') 0x04 添加数据 python实现 list = [1, 3, 5, 7, 9, 2, 4, = -1: break i -= 1 list[i + 1] = x print(list) # [1, 3, 5, 7, 9, 2, 4, 1, -1] 内置函数 # append list) for i in range(n): if list[i] == x: list[i] = -1 print(list) # [-1, 3, 5, 7, 9, 2, 4,

    35120编辑于 2022-06-19
  • 来自专栏图形学与OpenGL

    实验4 编码裁剪算法

    1.实验目的: 了解二维图形裁剪的原理(点的裁剪、直线的裁剪、多边形的裁剪),利用VC+OpenGL实现直线的裁剪算法。 2.实验内容: (1) 理解直线裁剪的原理(Cohen-Surtherland算法、梁友栋算法) (2) 利用VC+OpenGL实现直线的编码裁剪算法,在屏幕上用一个封闭矩形裁剪任意一条直线。 (4) 尝试实现梁友栋裁剪算法。 3.实验原理: 编码裁剪算法中,为了快速判断一条直线段与矩形窗口的位置关系,采用了如图A.4所示的空间划分和编码方案。 ? 图A.4 裁剪编码 裁剪一条线段时,先求出两端点所在的区号code1和code2,若code1 = 0且code2 = 0,则说明线段的两个端点均在窗口内,那么整条线段必在窗口内,应取之;若code1和 可能的话,可以尝试实现梁友栋裁剪算法

    1.1K10发布于 2018-10-09
  • 来自专栏C/C++、数据结构、算法

    贪心算法总结(4

    22810编辑于 2024-08-21
  • 来自专栏图形学与OpenGL

    实验4 编码裁剪算法

    1.实验目的: 了解二维图形裁剪的原理(点的裁剪、直线的裁剪、多边形的裁剪); 利用VC+OpenGL实现直线的裁剪算法。 2.实验内容: (1) 理解直线裁剪的原理(Cohen-Surtherland算法、梁友栋算法)。 (2) 利用VC+OpenGL实现直线的编码裁剪算法,在屏幕上用一个封闭矩形裁剪任意一条直线。 (4) 尝试实现梁友栋裁剪算法。 3.实验原理: 在编码裁剪算法中,为了快速判断一条直线段与矩形窗口的位置关系,采用了如图A.4所示的空间划分和编码方案。 图A.4裁剪编码 4.实验代码: #include <GL/glut.h> #include <stdio.h> #include <stdlib.h> #define LEFT_EDGE 1 #define RIGHT_EDGE 2 #define BOTTOM_EDGE 4 #define TOP_EDGE 8 void LineGL(int x0,int y0,int x1

    1.4K20发布于 2020-10-27
  • 来自专栏算法工程师之路

    每日算法题:Day 4

    作者:TeddyZhang,公众号:算法工程师之路 Day 4,继续加油,Python知识点! n<=39 思路: 对于一个简单的斐波那契数列,我们需要考虑很多不是算法的问题,而是算法完整性,如果为了保存数据,我们需要一个很大的类型long long,而不是int,由于题中说明了n的范围,所以我们不考虑 3 资源分享 欢迎关注我的个人公众号 (算法工程师之路),回复"左神算法基础CPP"即可获得大量算法源码,并实时更新! 希望大家多多支持哦~ 公众号简介:分享算法工程师必备技能,谈谈那些有深度有意思的算法,主要范围:C++数据结构与算法/深度学习(CV),立志成为Offer收割机! 坚持分享算法题目和解题思路(Day By Day) 完 我们一起努力,For World!

    64220发布于 2019-08-06
  • 来自专栏Initial programming

    初识算法 · 双指针(4)

    前言: 本文是双指针算法的最后一文,以复写零和四数之和作为结束,介绍方式同样是题目解析,算法原理,算法编写三部曲,以下是题目的链接: 1089. 复写零 - 力扣(LeetCode) 18. 4Sum - 力扣(LeetCode) 那么话不多说,直接进入主题。 到这个阶段,不妨不用思考为什么使用双指针,因为目前来说算法基础并不牢靠,我们不妨积累经验。 四数之和 题目解析 题目的意思和三数之和十分像的,三数之和是找三个数等于0,那么该题目是找4个数字等于target,并且下标不能重复,也就是一个数字不能一直使用,题目的要求很简单,所以我们直接进入算法原理部分 双指针算法也就到这里啦,后面的是滑动窗口~ 感谢阅读!

    19510编辑于 2024-10-16
领券