pytorch编译错误: inverse: LAPACK library not found in compilation的解决办法

pytorch编译错误:编译中找不到LAPACK库的解决办法

RuntimeError: inverse: LAPACK library not found in compilation

复现该问题:

import torch
A = torch.rand(5,5)
torch.inverse(A)

Linux环境下(或者docker)解决办法

apt-get liblapack-dev

Windows环境下解决办法

在conda中输入

conda install -c lapack

将相关编译的库引入,
再重新编译pytorch。

简述一下pytorch编译中遇到的坑

以1.8.0为例子。
参考博客

Windows环境下老显卡跑PyTorch GPU版本

在Windows上编译Pytorch 源码

PyTorch编译尝试笔记

首先呢第三个是给了个编译好的wheel但是,用后就发现上述问题,一气之下智能自己编译一个了。

然后对于git拉取pytorch分支也不太懂,就啦了

git clone --recursive https://github.com/pytorch/pytorch/tree/release/1.8
cd pytorch
# if you are updating an existing checkout
git submodule sync
git submodule update --init --recursive

pytorch1.8release
这个版本了的,没有拉到1.8.1的,一脸懵逼,可能房主拉的是gitee的?

简述一下博主为什么用VS2019的16.6.5版本。

主要是官方文件中提到了
Note: There’s a compilation issue in several Visual Studio 2019 versions since 16.7.1, so please make sure your Visual Studio 2019 version is not in 16.7.1 ~ 16.7.5
然后博主编译遇到问题了,理论上现在高版本应该没问题了。
VS2019 16.5.5下载地址

一些特殊指令

仅编译

python setup.py build

编译并安装

python  setup.py install --cmake

编译为轮子

python setup.py bdist_wheel

测试cuda与pytorch是否可用

import torch
print('CUDA版本:',torch.version.cuda)
print('Pytorch版本:',torch.__version__)
print('显卡是否可用:','可用' if(torch.cuda.is_available()) else '不可用')
print('显卡数量:',torch.cuda.device_count())
print('是否支持BF16数字格式:','支持' if (torch.cuda.is_bf16_supported()) else '不支持')
print('当前显卡型号:',torch.cuda.get_device_name())
print('当前显卡的CUDA算力:',torch.cuda.get_device_capability())
# 以下代码测试是否能通过gpu加速  是否缺少Lapack包
a = torch.Tensor(5,3)
a = a.cuda()
print(a)
A = torch.rand(5,5)
torch.inverse(A)

可用的pytorch wheel(低算力版本)

版本说明:

cuda == 10.2
window == 10
cudadnn== 7.6.4.38
python == 3.8
pytorch == 1.8.0

且用且珍惜,编译一次太麻烦了。
zd200572 low_gpu_pytorch_1.8.1 缺少lapack
龙晨天的 torch-1.8.0a0+56b43f4-cp38-cp38-win_amd64.whl 解决了缺少lapack的问题

你可能感兴趣的:(机器学习,pytorch,人工智能,python)