装不了 pytorch=0.4.0? ubuntu下 基于 cuda=92 和 pytorch=1.2 配置环境跑通 CornerNet 训练和测试流程 步骤详解(包括GPU限制问题详解)

本文详细介绍了在Ubuntu系统中,基于CUDA 9.2和PyTorch 1.2配置CornerNet环境的过程,包括环境搭建、Corner Pooling编译错误的解决、GPU限制代码修改和模型训练与测试的步骤。文章特别强调了在PyTorch版本升级后编译Corner Pooling时遇到的问题及其解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


CornerNet 官方github链接

CornerNet 论文地址

环境配置

写这篇博客原因?

为什么要写这样一篇博客?

一是记录自己的学习过程,二是因为CornerNet是基于pytorch 0.4.0写的,其中的某些C++和Cuda API在1.0之后已经变化,所以在编译corner pooling的时候会遇到问题,真让人头大,不过没关系,这篇博客将教你如何解决该问题。

下载下来官方github代码后,根目录下有这样一个文件:

里面含有跑通CornerNet所需要的的第三方库,但是你仔细看其中的关于cuda和pytorch的第三方库,你会发现,其安装的是基于cuda8.0和pytorch 0.4.0的第三方库,万一你不幸装的是cuda 9.0及以上,难道你为了跑通个CornerNet再去重装cuda吗?虽然这样也可以,但是就有点太麻烦了。


更改conda_packagelist.txt

不过,如果不想重装的话,接着往下看。
在这里插入图片描述
打开conda_packagelist.txt,删除如下四个第三方库链接,然后你可以自己去装最重要的pytroch和torchvision。

https://conda.anaconda.org/caffe2/linux-64/caffe2-cuda8.0-cudnn7-0.8.dev-py36_2018.05.14.tar.bz2

https://repo.continuum.io/pkgs/free/linux-64/cudatoolkit-8.0-3.tar.bz2

https://conda.anaconda.org/pytorch/linux-64/pytorch-0.4.0-py36_cuda8.0.61_cudnn7.1.2_1.tar.bz2

https://conda.anaconda.org/pytorch/linux-64/torchvision-0.2.1-py36_1.tar.bz2


conda下基于conda_packagelist.txt创建新环境

cd进入下载后的cornernet文件夹下:

打开terminal,执行:

conda create --name CornerNet --file conda_packagelist.txt

在这里插入图片描述在这里插入图片描述

至此,cornernet所需要的大部分的第三库已经安装成功。


安装pytorch 1.2 和torchvision

这方面我们要参考pytorch官网:

不知道为什么,在我创建的虚拟环境cornernet中使用pip安装时,虽然是python3环境,但是需要将pip3改为pip,暂时不知道什么原因。

执行如下命令即可:

pip install torch==1.2.0+cu92 torchvision==0.4.0+cu92 -f https://download.pytorch.org/whl/torch_stable.html

在这里插入图片描述

这个装的话,比较快,毕竟是从pytorch官网直接获取安装包。


编译Corner Pooling-(用pytorch=1.x的这里是个大坑,请注意!)

这一步确实遇到了问题,毕竟官方代码是基于pytorch 0.4.0写的,我装的是pytorch 1.2.0,有问题也在意料之中。

按照原始代码直接编译,error

执行:

cd <CornerNet dir>/models/py_utils/_cpools/
python setup.py install --user

问题如下:

src/top_pool.cpp: In function ‘std::vectorat::Tensor top_pool_backward(at::Tensor, at::Tensor)’:
src/top_pool.cpp:44:41: error: could not convert ‘at::CUDA((c10::ScalarType)6)’ from ‘at::DeprecatedTypeProperties’ to ‘c10::IntArrayRef {aka c10::ArrayRef}’
auto max_val = at::zeros(torch::CUDA(at::kFloat), {batch, channel, width});
^
src/top_pool.cpp:45:41: error: could not convert ‘at::CUDA((c10::ScalarType)4)’ from ‘at::DeprecatedTypeProperties’ to ‘c10::IntArrayRef {aka c10::ArrayRef}’
auto max_ind = at::zeros(torch::CUDA(at::kLong), {batch, channel, width});
^
src/top_pool.cpp:57:44: error: could not convert ‘at::CUDA((c10::ScalarType)0)’ from ‘at::DeprecatedTypeProperties’ to ‘c10::IntArrayRef {aka c10::ArrayRef}’
auto gt_mask = at::zeros(torch::CUDA(at::kByte), {batch, channel, width
^
src/top_pool.cpp:58:44: error: could not convert ‘at::CUDA((c10::ScalarType)6)’ from ‘at::DeprecatedTypeProperties’ to ‘c10::IntArrayRef {aka c10::ArrayRef}’
auto max_temp = at::zeros(torch::CUDA(at::kFloat), {batch, channel, width

在这里插入图片描述


初次修改,测试阶段OK,训练阶段不OK

好像是cuda接口的问题,应该是由于pytorch版本的改变,导致了cuda接口的变化,但是怎么改呢?接着看。。

终于让我在github上官方代码的issues上找到了,

只需要在 **/models/py_utils/_cpool

<think>首先,用户的问题是:"conda install command not found when installing pytorch 1.2.0 torchvision 0.4.0 cudatoolkit 10.0"。这看起来像是用户在尝试运行conda命令时遇到了问题,系统提示“command not found”。这常意味着系统找不到conda命令,可能是因为conda没有正确安配置。 我的系统级指令要求: - 所有行内数学表达式使用$...$格式。 - 独立公式使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识。 - 回答结构清晰,帮助用户逐步解决问题。 - 尽量保证回答真实可靠。 参考的站内引用是关于安特定版本的PyTorchtorchvision的,但用户的问题是关于conda命令找不到的问题。所以,我需要专注于解决conda命令找不到的问题。 用户的问题核心:当运行类似`conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c pytorch`的命令时,出现“command not found”错误。 可能的原因: 1. Conda没有安2. Conda安环境变量没有设置好。 3. 用户可能没有激活conda环境。 解决方案步骤1. 确认conda是否安2. 检查环境变量。 3. 确保在正确的环境中运行命令。 4. 提供安conda的指导。 使用中文回答。 结构清晰: - 先解释问题原因。 - 然后逐步提供解决方案。 - 最后生成相关问题。 生成相关问题:基于用户的问题,生成几个相关问题。 引用标识:在回答中,如果引用了内容,末尾添加引用标识。但在这个问题中,用户提供了引用,但它们是关于PyTorch的,不是直接相关的。我应该参考用户上一次的问题我的回答,但用户没有提供历史记录。所以,我可能不需要添加引用,除非我引用那些参考内容。 用户说:"上述引用仅供参考,并不是用户真正的需求",所以我应该基于问题本身回答。 最终回答结构: 1. 诊断问题:解释为什么会出现“command not found”。 2. 解决方案步骤: a. 检查conda是否安。 b. 如果未安,指导如何安。 c. 如果已安,检查环境变量。 d. 激活conda环境。 3. 示例命令。 4. 生成相关问题。 确保语言是中文。 生成相关问题:例如: - 如何安conda? - 如何设置conda环境变量? - PyTorch的其他常见问题?</think>### Conda命令未找到错误诊断与解决 用户在尝试运行`conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c pytorch`命令时,遇到“command not found”错误。这常是由于Conda未正确安环境变量未配置所致。Conda是Anaconda或Miniconda的一部分,用于管理Python环境包。下面我将逐步分析原因并提供解决方案,确保您能顺利安PyTorch。 #### 问题原因分析 - **Conda未安**:系统无法识别`conda`命令,可能是因为Anaconda或Miniconda未安。 - **环境变量未设置**:即使Conda已安,其路径未添加到系统的PATH环境变量中,导致终端无法找到命令。 - **未激活Conda环境**:Conda需要初始化或激活基础环境才能使用命令。 - **权限问题**:用户权限不足,导致命令无法执行(较少见,但需检查)。 #### 逐步解决方案 请按顺序执行以下步骤,确保问题解决。所有命令均在终端(如Linux的bash或Windows的命令提示符)中运行。 1. **检查Conda是否已安** 运行以下命令验证Conda是否安: ```bash which conda # Linux/macOS where conda # Windows ``` - 如果输出路径(如`/home/user/anaconda3/bin/conda`),则Conda已安,跳到步骤3。 - 如果无输出或报错,说明未安,继续步骤22. **安Anaconda或Miniconda** 如果Conda未安,需先安: - **下载安器**:访问[Anaconda官网](https://www.anaconda.com/download)或[Miniconda官网](https://docs.conda.io/en/latest/miniconda.html),选择匹配您操作系统的版本(如Linux x86_64)。 - **运行安脚本**(以Linux为例): ```bash bash Miniconda3-latest-Linux-x86_64.sh # 替换为实际下载的文件名 ``` 安过程中,选择“yes”以初始化Conda并添加环境变量[^1]。 - **验证安**:安完成后,重启终端并运行: ```bash conda --version ``` 应输出版本号(如`conda 23.11.0`)。 3. **配置环境变量** 如果Conda已安但命令仍不可用,需手动添加路径到PATH: - **Linux/macOS**: 编辑`~/.bashrc`或`~/.bash_profile`文件: ```bash echo 'export PATH="$HOME/anaconda3/bin:$PATH"' >> ~/.bashrc # 路径可能为anaconda3或miniconda3 source ~/.bashrc # 使配置生效 ``` - **Windows**: 过“系统属性” > “环境变量”,在“用户变量”中添加Conda的安路径(如`C:\Users\user\miniconda3\Scripts`)到PATH变量。 - 验证:运行`echo $PATH`(Linux/macOS)或`echo %PATH%`(Windows),检查是否包含Conda路径。 4. **激活Conda环境** Conda需要激活基础环境才能使用命令: ```bash conda init # 初始化Conda(首次使用) conda activate base # 激活基础环境 ``` 之后,再尝试运行您的安命令。 5. **运行PyTorch命令** 确保环境正确后,执行原命令: ```bash conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c pytorch ``` - **注意事项**: - 如果CUDA版本不匹配(如引用中提到的CUDA 9.0/10.0冲突),请先运行`nvidia-smi`检查GPU驱动版本,确保`cudatoolkit=10.0`与您的系统兼容[^4]。 - 使用`-c pytorch`指定PyTorch官方频道,避免依赖问题[^1][^3]。 #### 常见问题排查 - **权限错误**:在命令前加`sudo`(Linux)或以管理员身份运行终端(Windows)。 - **版本冲突**:如果安失败,检查PyTorch版本与CUDA兼容性(如PyTorch 1.2.0CUDA 10.0)。 - **网络问题**:使用`conda config --remove-key channels`清除频道缓存,或添加国内镜像源加速下载。 如果以上步骤仍无法解决,请提供您的操作系统错误日志,以便进一步诊断。 ###
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值