pytorch配置安装 ninja报错:ninja: build stopped: subcommand failed.(个人趟坑)

文章目录

  • pytorch配置安装 ninja报错:ninja: build stopped: subcommand failed.
    • 1、首先说一下pytorch安装问题
    • 2、在运行一些大型复杂代码时候,就开始报错:ninja: build stopped: subcommand failed.
      • 2.1 ninja是什么?
      • 2.2 网上报错原因总结
        • 2.2.1 这里说下我的大环境
      • 2.3 自己报错原因真像(本贴核心知识点)
        • 2.3.1 torch能理解,torchvision又是个啥?
        • 2.3.2 解决办法
        • 2.3.3 安装ninja
    • 最后总结:

pytorch配置安装 ninja报错:ninja: build stopped: subcommand failed.

1、首先说一下pytorch安装问题

去官网: pytorch官网找到相应的torch版本然后pip指令安装,再安装 torchvision(要留意它,后面详说)。然后运行一些小型sample实例,都不会有问题,过程很简单。如图:只需要

pip3 install torch torchvision

就安装成功了。

pytorch配置安装 ninja报错:ninja: build stopped: subcommand failed.(个人趟坑)_第1张图片

PS:但是我要说的重点不是这个安装教程,安装教程网上一搜一大把,我要说的是下面第二点。

2、在运行一些大型复杂代码时候,就开始报错:ninja: build stopped: subcommand failed.

2.1 ninja是什么?

是一种编译工具,类似cmake,这里很爱使用ninja对torch库进行编译,至于为啥,我也纳闷。

2.2 网上报错原因总结

我google+度娘了好长时间,网上相关问答很少,而且很乱。具体整理为:
1、cuda版本问题
2、nvidia驱动版本问题
3、 jack-server 是否开启,服务是否开启问题
4、什么多线程,线程是否开启问题
然后经过我一一测试修改查看,我的问题还是存在,,,所以都没啥可参考价值。

2.2.1 这里说下我的大环境

众所周知,大环境很重要:
cuda:10.0 — cudnn:7.5
nvidia驱动:430.26
那你说,我的是cuda9.*行不行?网上也有使用cuda9.2的,我只能说,没有亲自测试过,我不知道,如果没有报cuda的错误,就应该没问题。

2.3 自己报错原因真像(本贴核心知识点)

经过我不断地各种尝试,发现是:
torch 、torchvision 、ninja版本问题
我安装的torch版本太高了,而ninja更新速度好像没有torch快,所以即便是最新的ninja,也无法编译最新的torch,从而报错。
我现在写这篇帖子时,torch最新版为:1.3.0;ninja最新为:1.9.0。

2.3.1 torch能理解,torchvision又是个啥?

安装pytorch要安装两个模块:
torch和torchvision。torch是主模块,用来搭建神经网络。torchvision是辅模块,里面有搭建好的网络可以直接用。
torchvision包是服务于pytorch深度学习框架的,用来生成图片,视频数据集,和一些流行的模型类和预训练模型.
好吧,居然做成了两个模型,还以为torch包含所有。

2.3.2 解决办法

由以上得知,就是将torch降级,降为 1.0.*。同样,torchvision也要跟着降级。
不能再使用 pip install torch 这样的傻瓜指令,这样只会安装最新的版本,而是要指明具体的版本,去这里链接查看有那些版本
然后 pip安装。

sudo pip3 install https://download.pytorch.org/whl/cu100/torch-1.0.0-cp36-cp36m-linux_x86_64.whl
sudo pip3 install torchvision==0.2.1

PS:在安装torchvision的时候,一定注意,因为过高的torchvision版本,会自动安装torch1.3,从而将之前 降级后的 torch==1.0覆盖掉,特别坑的。
所以需要你经常查看一下,自己的torch是否降级成功了:

ubuntu@ubuntu:/home/tdw$ python
Python 3.6.8 (default, Oct  7 2019, 12:59:55) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torchvision as tv
>>> print(tv.__version__)
0.2.1
>>> 

import torch
print(torch.__version__)

2.3.3 安装ninja

这我安装的 ninja==1.8.2,其他版本可自行测试。

wget https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip

unzip ninja-linux.zip -d /usr/local/bin/

update-alternatives --install /usr/bin/ninja ninja /usr/local/bin/ninja 1 --force

问题至此解决完毕!!!

最后总结:

肯定还是说环境:
cuda:10.0 cudnn:7.5
nvidia: 430.26
torch: 1.0.0
torchvision: 0.2.1
ninja: 1.8.2

注意:在单独安装torchvision的时候,还会自动安装torch,可能会覆盖之前已经安装的低版本torch,一定注意。如果存在两个版本 torch, pip uninstall torch==1.3.0卸载它。

你可能感兴趣的:(pytorch,pytorch,配置安装,ninja)