日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Minkowski坐标管理

發(fā)布時(shí)間:2023/11/28 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Minkowski坐标管理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Minkowski坐標(biāo)管理
坐標(biāo)鍵
classMinkowskiEngine.CoordsKey(D)
init(D)
初始化self. See help(type(self))有關(guān)準(zhǔn)確的簽名。
getKey()
getTensorStride()
isKeySet()
setKey(key)
setTensorStride(tensor_stride)
坐標(biāo)管理器
Class MinkowskiEngine.CoordsManager(num_threads : int = -1,memory_manager_backend : MinkowskiEngineBackend.MemoryManagerBackend = None,D : int = -1)
init(num_threads : int = -1,memory_manager_backend : MinkowskiEngineBackend.MemoryManagerBackend = None,D : int = -1)
初始化self. See help(type(self))有關(guān)準(zhǔn)確的簽名。
create_coords_key(COORDS : torch.IntTensor,tensor_stride : INT = 1,force_creation : BOOL = False,force_remap : BOOL = False,allow_duplicate_coords : BOOL = False) → MinkowskiCoords.CoordsKey
get_batch_indices()
get_batch_size()
get_coords(coords_key_or_tensor_strides)
get_coords_map(in_key_or_tensor_strides,out_key_or_tensor_strides)
提取映射到輸出坐標(biāo)索引的輸入坐標(biāo)索引。
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_key(coords_key)
get_kernel_map(in_key_or_tensor_strides,out_key_or_tensor_strides,stride = 1,kernel_size = 3,dilation = 1,region_type = 0,region_offset = None,is_transpose = False,is_pool = False,on_gpu = False)
獲取指定坐標(biāo)鍵或張量stride的內(nèi)核出入映射。
get_mapping_by_tensor_strides(in_tensor_strides,out_tensor_strides)
get_row_indices_at(coords_key,batch_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_batch(coords_key,out_coords_key =None)
返回每個(gè)批次的行索引List。
相應(yīng)的批處理索引可通過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_map(in_keys : List[ MinkowskiCoords.CoordsKey ],out_key : MinkowskiCoords.CoordsKey)
生成坐標(biāo)集的并集,并將映射從輸入集返回到新的輸出坐標(biāo)。
精氨酸:
in_keys (List [CoordsKey]):在其上創(chuàng)建并集的坐標(biāo)鍵List。
out_key (CoordsKey):生成的并列坐標(biāo)散列圖的坐標(biāo)鍵的占位符。
返回值:
in_maps(List [Tensor [int]]):長張量的List,其中包含從輸入到聯(lián)合輸出的映射。請(qǐng)參閱示例以獲取更多詳細(xì)信息。 out_maps(List [Tensor [int]]):長張量的List,其中包含從輸入到聯(lián)合輸出的映射。請(qǐng)參閱示例以獲取更多詳細(xì)信息。
例:

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]]
initialize(COORDS : torch.IntTensor,coords_key : MinkowskiCoords.CoordsKey,force_creation : BOOL = False,force_remap : BOOL = False,allow_duplicate_coords : BOOL = False,return_inverse : BOOL = False) →torch.LongTensor
permute_label(label,max_label,target_tensor_stride,label_tensor_stride = 1)
print_diagnostics(coords_key : MinkowskiCoords.CoordsKey)
reduce()
set_origin_coords_key(coords_key : MinkowskiCoords.CoordsKey)
stride(coords_key : MinkowskiCoords.CoordsKey,stride: Union [ int , collections.abc.Sequence , numpy.ndarray , Torch.Tensor ],force_creation : bool = False)
transposed_stride(coords_key : MinkowskiCoords.CoordsKey,stride: 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)
坐標(biāo)GPU內(nèi)存管理器
classMinkowskiEngine.MemoryManagerBackend
Members:
CUDA
PYTORCH
property name
(self: handle) -> str
MinkowskiEngine.MinkowskiCoords.set_memory_manager_backend(backend: MinkowskiEngineBackend.MemoryManagerBackend)
設(shè)置GPU內(nèi)存管理器后端
默認(rèn)情況下,Minkowski引擎將使用pytorch內(nèi)存池分配臨時(shí)GPU內(nèi)存插槽。這使pytorch后端可以有效地重用pytorch后端和Minkowski引擎之間共享的內(nèi)存池。給定固定的GPU內(nèi)存,它傾向于允許以較大的批處理量進(jìn)行訓(xùn)練。但是,pytorch內(nèi)存管理器往往比直接使用原始CUDA調(diào)用分配GPU慢。
默認(rèn)情況下,Minkowski引擎 ME.MemoryManagerBackend.PYTORCH用于內(nèi)存管理。
例:

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)

總結(jié)

以上是生活随笔為你收集整理的Minkowski坐标管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。