Minkowski坐标管理

坐标键

classMinkowskiEngine.CoordsKeyD

__init__D

初始化self. See help(type(self))有关准确的签名。

getKey()

getTensorStride()

isKeySet()

setKeykey

setTensorStridetensor_stride

坐标管理器

Class MinkowskiEngine.CoordsManagernum_threads  int = -1memory_manager_backend  MinkowskiEngineBackend.MemoryManagerBackend = None int = -1

__init__num_threads  int = -1memory_manager_backend  MinkowskiEngineBackend.MemoryManagerBackend = None int = -1

初始化self. See help(type(self))有关准确的签名。

create_coords_keyCOORDS  torch.IntTensortensor_stride  INT = 1force_creation  BOOL = Falseforce_remap  BOOL = Falseallow_duplicate_coords  BOOL = False → MinkowskiCoords.CoordsKey

get_batch_indices()

get_batch_size()

get_coordscoords_key_or_tensor_strides

get_coords_mapin_key_or_tensor_stridesout_key_or_tensor_strides

提取映射到输出坐标索引的输入坐标索引。

sp_tensor = ME.SparseTensor(features, coords=coordinates)

out_sp_tensor = stride_2_conv(sp_tensor)

cm = sp_tensor.coords_man

# cm = out_sp_tensor.coords_man  # doesn't matter which tensor you pick

ins, outs = cm.get_coords_map(1,  # in stride

2)  # out stride

for i, o in zip(ins, outs):

print(f"{i} -> {o}")

get_coords_size_by_coords_keycoords_key

get_kernel_mapin_key_or_tensor_stridesout_key_or_tensor_stridesstride = 1kernel_size = 3dilation = 1region_type = 0region_offset = Noneis_transpose = Falseis_pool = Falseon_gpu = False

获取指定坐标键或张量stride的内核出入映射。

get_mapping_by_tensor_stridesin_tensor_stridesout_tensor_strides

get_row_indices_atcoords_keybatch_index

返回指定批处理索引的torch.LongTensor行索引

sp_tensor = ME.SparseTensor(features, coords=coordinates)

row_indices = sp_tensor.coords_man.get_row_indices_at(sp_tensor.coords_key, batch_index)

get_row_indices_per_batchcoords_keyout_coords_key =None

返回每个批次的行索引List。

相应的批处理索引可通过get_batch_indices访问。

sp_tensor = ME.SparseTensor(features, coords=coordinates)

row_indices = sp_tensor.coords_man.get_row_indices_per_batch(sp_tensor.coords_key)

get_union_mapin_keys  List[ MinkowskiCoords.CoordsKey]out_key  MinkowskiCoords.CoordsKey

生成坐标集的并集,并将映射从输入集返回到新的输出坐标。

精氨酸:

in_keys (List [CoordsKey]):在其上创建并集的坐标键List。

out_key (CoordsKey):生成的并列坐标散列图的坐标键的占位符。

返回值:

in_maps(List [Tensor [int]]):长张量的List,其中包含从输入到联合输出的映射。请参阅示例以获取更多详细信息。 out_maps(List [Tensor [int]]):长张量的List,其中包含从输入到联合输出的映射。请参阅示例以获取更多详细信息。

例:

>>> # Adding two sparse tensors: A, B

>>> out_key = CoordsKey(coords_man.D)

>>> ins, outs = coords_man.get_union_map((A.coords_key, B.coords_key), out_key)

>>> N = coords_man.get_coords_size_by_coords_key(out_key)

>>> out_F = torch.zeros((N, A.F.size(1)), dtype=A.dtype)

>>> out_F[outs[0]] = A.F[ins[0]]

>>> out_F[outs[1]] += B.F[ins[1]]

initializeCOORDS  torch.IntTensorcoords_key  MinkowskiCoords.CoordsKeyforce_creation  BOOL = Falseforce_remap  BOOL = Falseallow_duplicate_coords  BOOL = Falsereturn_inverse  BOOL = False →torch.LongTensor

permute_labellabelmax_labeltarget_tensor_stridelabel_tensor_stride = 1

print_diagnosticscoords_key  MinkowskiCoords.CoordsKey

reduce()

set_origin_coords_keycoords_key  MinkowskiCoords.CoordsKey

stridecoords_key  MinkowskiCoords.CoordsKeystride Union [ int  collections.abc.Sequence  numpy.ndarray  Torch.Tensor ]force_creation  bool = False

transposed_stridecoords_key  MinkowskiCoords.CoordsKeystride Union [ int  collections.abc.Sequence  numpy.ndarray  torch.Tensor ]kernel_size  Union [ int  collections.abc.Sequence  numpy.ndarray  torch.Tensor ]dilation Union [ int  collections.abc.Sequence  numpy.ndarray  Torch.Tensor ]force_creation  bool = False

坐标GPU内存管理器

classMinkowskiEngine.MemoryManagerBackend

Members:

CUDA

PYTORCH

property name

(self: handle) -> str

 MinkowskiEngine.MinkowskiCoords.set_memory_manager_backend(backend:MinkowskiEngineBackend.MemoryManagerBackend)

设置GPU内存管理器后端

默认情况下,Minkowski引擎将使用pytorch内存池分配临时GPU内存插槽。这使pytorch后端可以有效地重用pytorch后端和Minkowski引擎之间共享的内存池。给定固定的GPU内存,它倾向于允许以较大的批处理量进行训练。但是,pytorch内存管理器往往比直接使用原始CUDA调用分配GPU慢。

默认情况下,Minkowski引擎 ME.MemoryManagerBackend.PYTORCH用于内存管理。

例:

>>> import MinkowskiEngine as ME

>>> # Set the GPU memory manager backend to raw CUDA calls

>>> ME.set_memory_manager_backend(ME.MemoryManagerBackend.CUDA)

>>> # Set the GPU memory manager backend to the pytorch memory pool

>>> ME.set_memory_manager_backend(ME.MemoryManagerBackend.PYTORCH)

Minkowski坐标管理的更多相关文章

  1. 03-Maven坐标管理

    1.什么是坐标? 2.坐标的详细概念 3.Maven包引用

  2. Maven仓库详解

    转载自:Maven入门指南④:仓库   1 . 仓库简介 没有 Maven 时,项目用到的 .jar 文件通常需要拷贝到 /lib 目录,项目多了,拷贝的文件副本就多了,占用磁盘空间,且难于管理.Ma ...

  3. Maven入门指南④:仓库

    1 . 仓库简介 没有 Maven 时,项目用到的 .jar 文件通常需要拷贝到 /lib 目录,项目多了,拷贝的文件副本就多了,占用磁盘空间,且难于管理.Maven 使用一个称之为仓库的目录,根据构 ...

  4. tkinter模块

    Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...

  5. C#基础教程/适合初学者

    C#基础教程 第一章       C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和Web应用程序.当 ...

  6. c4d 帮助 prime r16 usage

    c4d   帮助 prime cinema 4d   prime    c4d  基础 前言   usage 开始 双击程序图标   双击一个场景文件   用开始菜单  windows 二选一   从 ...

  7. 基于Web实现在线绘画拓扑图[GraphEditor]

    网络拓扑图本来已经整理有一段时间了,一次项目会议写集中边界监控系统的时候上级要求使用可以在系统中画网络拓扑图,没办法当时找不到现有的程序来参考 只能硬着头皮,顶着风险来完成[当然来边界安全的,当然要安 ...

  8. OpenDaylight开发hello-world项目之代码框架搭建

    OpenDaylight开发hello-world项目之开发环境搭建 OpenDaylight开发hello-world项目之开发工具安装 OpenDaylight开发hello-world项目之代码 ...

  9. Maven实战01_Maven简介

    1:何为Maven Maven:中文翻译为"知识的积累",也可翻译为"专家"或"内行". 谈到Maven,就不得不提"构建(bui ...

随机推荐

  1. hdu1526 二分匹配+ floyd

    题意: 有N个插座,M个用电器,和K种转换器(每种有无限个),问最少多少个用电器无法充电. 思路 :  总的电器数 减去 电器和插座的最大匹配数 我有的是map去映射每一个串,根据转换器建边,然后跑一 ...

  2. hdu3786 找出直系亲属 水题

    题意:找出直系亲属Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  3. Linux运维比较常用的一些脚本

    目录 一.根据PID过滤进程所有信息 二.根据进程名过滤进程信息 三.根据用户名查询该用户的相关信息 四.加固系统的一些配置 五:实现磁盘分区的 六.使用一整块硬盘创建逻辑卷 七.将一块硬盘分区,然后 ...

  4. 通过修改EIP寄存器实现强行跳转并且注入DLL到目标进程里

    /* 描述 功能:通过修改EIP寄存器实现32位程序的DLL注入(如果是64位,记得自己对应修改汇编代码部分) 原理: 挂起目标进程,停止目标进程EIP的变换,在目标进程开启空间,然后把相关的指令机器 ...

  5. [CTF]ACSII码

    [CTF]ACSII码 ----------转自百度百科 https://baike.baidu.com/item/ASCII/309296?fromtitle=ascii码&fromid=9 ...

  6. PhpStorm 配置本地文件自动上传至服务器

    目的:本地文件夹下的文件实时同步至指定服务器的文件夹,减少代码移植的成本和风险 添加一个SFTP连接 Tools - Deployment - Browse Remote Host 配置连接参数 Co ...

  7. 『动善时』JMeter基础 — 12、JMeter取样器详解:sampler

    目录 1.取样器介绍 2.JMeter自带的取样器 3."HTTP请求"为例介绍一下取样器 (1)HTTP Request: (2)Web服务器: (3)HTTP请求: (4)同请 ...

  8. Faust——python分布式流式处理框架

    摘要 Faust是用python开发的一个分布式流式处理框架.在一个机器学习应用中,机器学习算法可能被用于数据流实时处理的各个环节,而不是仅仅在推理阶段,算法也不仅仅局限于常见的分类回归算法,而是会根 ...

  9. Java对象内存分布

    [deerhang] 创建对象的四种方式:new关键字.反射.Object.clone().unsafe方法 new和反射是通过调用构造器创建对象的,创建对象的时候使用invokespecial指令 ...

  10. RabbitMQ高级特性

    消息的可靠投递 在使用Rabbitmq的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景.Rabbitmq为我们提供了两种方式用来控制消息的投递可靠性模式 confirm确认模式 return ...