1、点云语义分割方法分类
分为5类:点、二维投影、体素、融合、集成
2、融合与集成的区别
融合:
概念:主要是将不同来源、类型的模型,例如深度学习、传统机器学习等,的结果或特征进行结合,以得到一个更好的模型或结果。
目标与应用场景:常用于多视角、多模态的任务中,如视觉与文本的多模态任务,旨在从不同模型中获取更丰富和多样的信息。
融合方法与策略:常用的方法包括加权平均、Stacking、特征级融合等。
模型的多样性来源:多样性来自不同类型的模型,如CNN、RNN、SVM等。
对模型的依赖度:依赖于多种模型的性能和特点。
常见技术与工具:Stacking、特征融合等。
集成:
概念:是通过构建并结合多个模型来解决单一预测问题,常见的技术包括Bagging、Boosting等。
目标与应用场景:主要用于提高模型的稳定性和准确性,如随机森林中的多个决策树的集成。
融合方法与策略:通常涉及特定的策略如投票、加权平均等,以及特定的集成技术如Bagging、Boosting。
模型的多样性来源:多样性主要来自模型的不同实例,例如不同的决策树、不同的参数设置等。
对模型的依赖度:主要依赖于同种模型的不同实例。
常见技术与工具:随机森林、Adaboost、Gradient Boosting等。
3、load_state_dict函数
load_state_dict是torch.nn.Module的函数,使用 state_dict 反序列化模型参数字典。用来加载模型参数。将 state_dict 中的 parameters 和 buffers 复制到此 module 及其子节点中。
4、原子函数Atomic Functions
原子函数对驻留在全局内存或共享内存中的一个32位或64位单词执行读-修改-写原子操作。例如,atomicAdd()在全局或共享内存中的某个地址读取一个单词,向其中添加一个数字,然后将结果写回相同的地址。原子函数只能在设备函数中使用。
本节中描述的原子函数具有 cuda::memory_order_relax 的顺序,并且仅在特定作用域内是原子的:
- 带有 _system 后缀(例如:__atomicAdd_system)的原子api在作用域cuda::thread_scope_system 中是原子的。
- 没有后缀的原子 api(例如:__atomicAdd)在作用域 cuda::thread_scope_device 上是原子的。
- 带有 _block 后缀的原子 api(例如:__atomicAdd_block)在作用域 cuda::thread_scope_block 中是原子的。
感觉上面这段翻译大概是说不同函数的作用域不一样,比如不同设备间的线程想要对同一块地址做加法,那就必须得使用 __atomicAdd_system();比如不同 block 之间的线程需要对同一块地址做加法,那就调 __atomicAdd() 函数;比如只是同一 block 内的线程想要对同一块地址做加法,只用调 __atomicAdd_block() 函数。后面提及的 device-wide 原子、system-wide原子、block-wide 原子的意思应该就是说的这个作用域;
参考:https://zhuanlan.zhihu.com/p/578195193?utm_id=0
5、cuda计算能力
参考:https://zhuanlan.zhihu.com/p/556904192