比较PCL使用CPU和Nvidia GPU计算效率问题|点云处理|PCL-点云处理前言前篇文章提到,对比PCL使用CPU和Nvidia GPU进行欧式聚类发现,尴尬发现使用CPU的计算效率反而更高。
本篇文章探讨一下原因。
正文观察代码可以发现,代码中使用CPU欧式聚类的搜索方法选用的是kdtree,使用GPU欧式聚类的搜索方法选用的是octree。感觉有可能是这里的原因导致CP ...
阅读更多
PCL-CUDA版本编译安装|点云处理|PCL-点云前言pcl是一个c++编写的点云数据处理库。
大量点云数据处理通常需要消耗CPU大量时间,而使用cuda可以加速计算。
目前pcl最新版本(1.14)支持cuda计算加速(尽管还不完善),但是需要额外的步骤进行编译安装。
如果要编译安装的是PCL普通版本(即只使用CPU进行计算的版本)比较简单,在此 ...
阅读更多
协程,从yield说起|Python基础|Python
Ref: 《Fluent Python》 第16章 协程
协程是指一个过程,这个过程与调用方协作,产出由调用方提供的值。
def simple_coroutine(a): # 协程用生成器函数定义,里面有yield print(f'-> Started: a = { ...
阅读更多
Python 并发编程小结1|Python并发|Python
KeyWords:
threading.Thread
threading.Event
使用队列queue.Queue,task_down()、join()实现线程通信
Lock的上下文管理、RLock、信号量Semaphore
死锁
创建对其他线程不可见的线程状态:threading.local ...
阅读更多
Fluent Python笔记持续整理|Python基础|Python
后面几节没整理;没有目录;一些重要章节不是很全,仅仅是介绍。待拆分Ref:https://www.52pojie.cn/thread-1816710-1-1.html
在Python中,如果一个类定义了__getitem__方法,那么该类的对象可以像序列(如列表、字符串等)一样使用索引运算符[] ...
阅读更多
Python星号用法小结|Python基础|Python1乘法和乘方
2用在函数定义的参数时,
def func(a, *b, **c): ...
在函数的参数中,当以标记一个参数时,表明这个参数是可变参数,具体来讲,用单星号*标记参数,表示其是可变的位置参数,并且以元组的形式将外部的多个位置参数返回给该参数变量,如果用双星号**标记,表示其看是可变的 ...
阅读更多
Python闭包与装饰器总结1|Python基础|Python-闭包装饰器基础装饰器是可调用的对象,其参数是另一个函数(被装饰的函数)。
装饰器的一个关键特性是,它们在被装饰的函数定义之后立即运行。这通常是在导入时 (即 Python 加载模块时)
变量作用域规则对比代码
b = 3def func(a): print(a) print(b)func ...
阅读更多
Kruskal算法与力扣1135|数据结构与算法图|Kruskal 算法-力扣1135-图本文介绍图的最小生成树算法Kruskal 算法。
阅读之前需要先了解
图和树数据结构
加权图、生成树、最小生成树
Kruskal 算法基本思想
在Kruskal 算法中,需要保证每次新加入的边不会让树变成图,即不能让树包含环。那么 Union-Find 算法就是帮你干这个事儿的。
像下面这样添加 ...
阅读更多
Union-Find并查集算法(Python实现)|数据结构与算法并查集算法|Python-算法-并查集-UnionFind这是并查集算法的Python实现:
class UF: ''' 并查集算法 ''' def __init__(self, n) -> None: ''' ...
阅读更多
subprocess执行java命令残留进程解决|Python|Python问题简述
需求是通过Python执行命令java -java springboot-demo.jar
于是,我使用subprocess.Popen()来启停。但是我发现在关闭子进程后,java进程并没有正确关闭。
这是由于上面的方法实际原理是另外开启一个cmd命令来运行java -jar命令,后面用 ...
阅读更多