Windows环境下配置ISBnet

我是windows环境,想跑一下ISBnet的一部分代码,然而发现官方方法似乎只能在linux上运行。但是我也在网上搜了一些相关帖子,发现其实win也可以运行,一下是解决方案:(假设你已经配置了anaconda环境)

1. 首先按照INSTALL.md前3个说明安装对应的包,这些都是可以跑的

2. 到第四步,要求:

sudo apt-get install libsparsehash-dev

然而Windows环境下无法完成,需要按照以下方法:

假如你可以在anaconda的prompt里执行:

conda install -c jithinpr2 google-sparsehash

则可以直接安装这个等效替代库,否则:

通过这个链接下载安装包:

https://anaconda.org/jithinpr2/google-sparsehash/files

之后再在prompt里执行,并安装:

conda install -y 文件名

至此,前置条件完成,需在

https://github.com/sparsehash/sparsehash/releases/tag/sparsehash-2.0.4

这个网址下载第一行的zip文件并解压,将所有src中的文件复制并粘贴到你conda环境文件夹的include文件夹内,如此则第四步等效操作完成!

在执行第6步时候会出现大量报错:

你需要不分顺序地执行以下操作,尝试解决你的报错:

1. 将ops文件夹中的cal_iou_and_masklabel和voxelize里所有的and和or改成C++中的&&和||

2. 将上述文件夹中所有的long改成int64_t, 同时在文件夹头部添加头文件

#include <cstdint>

相关的报错关键字是:error LNK2001: 无法解析的外部符号 "public: long * __cdecl at::TensorBase::data_ptr(void)const " (??$data_ptr@J@TensorBase@at@@QEBAPEAJXZ)

参考解决方案:原博主

另一种方案是改成longlong(未验证)

参考解决方案:原博主

3. hashtable-common.h可能出现报错信息,有关SPARSEHASH_COMPILE_ASSERT,删除对应行(其实是我找不到解决方法,但是这两行实际上不影响运行)

4.报错 subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1

# cmdclass={'build_ext': BuildExtension}   #原来代码
 
cmdclass={'build_ext': BuildExtension.with_options(use_ninja=False)} # 改后代码

参考方案:原博主

最终效果:

安装完成

简单测试一个方法:(值得注意的是第一个方法要求数据在cpu上,后者需要放在gpu上,这意味着如果你的电脑没有卡,那么这个项目是无法运行的)

from isbnet.ops.functions import voxelization_idx,voxelization
import torch
coord=torch.randn(size=(100,3)).long()
pp=torch.cat([coord.new_full((coord.size(0), 1), 0), coord], 1)
pp2=torch.cat([coord.new_full((coord.size(0), 1), 1), coord], 1)
pp3=torch.cat([coord.new_full((coord.size(0), 1), 2), coord], 1)
pps=torch.cat([pp,pp2,pp3],0)
pp=voxelization_idx(pps,2)
print('finish',pp)

coords_float=torch.randn(size=(100,3)).to('cuda')
p2v_map=torch.randint(size=(3,40),low=0,high=10).to('cuda').int()
voxel_coords_float = voxelization(coords_float, p2v_map)



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值