Open-mmlab实验踩坑记录

User File "/home/.../OpenUnReID/openunreid/core/utils/compute_dist.py", line 99, in compute_jaccard_distance _, initial_rank = search_raw_array_pytorch(res, features, features, k1) File "/home.../OpenUnReID/openunreid/core/utils/faiss_utils.py", line 98, in search_raw_array_pytorch I_ptr, File "/home/.../envs/open-mmlab/lib/python3.7/site-packages/faiss/swigfaiss.py", line 4567, in bruteForceKnn return _swigfaiss.bruteForceKnn(resources, metric, vectors, vectorsRowMajor, numVectors, queries, queriesRowMajor, numQueries, dims, k, outDistances, outIndices) RuntimeError: Error in void faiss::gpu::allocMemorySpaceV(faiss::gpu::MemorySpace, void**, size_t) at gpu/utils/MemorySpace.cpp:26: Error: 'err == cudaSuccess' failed: failed to cudaMalloc 1073741824 bytes (error 2 out of memory)
实验环境:
ubuntu20.04
pytorch1.8
faiss-gpu1.6.3
cuda11.2
faiss是一个用来进行相似性搜索的库,主要用于处理大规模的高维向量数据,先把二维数据转换成faiss要求的索引数据结构,然后就可以用来做聚类、相似度计算这些。
报错原因:显存分配不足。
尝试方案:①减小batch_size,从32=>16=>8=>4,无法解决;②将GPU个数调整为单个,无法解决;③在创建faiss索引之前对缓存进行清除,有效!
解决方案:
在faiss.py文件中,创建faiss索引之前加入以下代码:torch.cuda.empty_cache()
在本项目中,具体是在

D_ptr = swig_ptr_from_FloatTensor(D)
torch.cuda.empty_cache()  #加入的代码
I_ptr = swig_ptr_from_LongTensor(I)
  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值