jetson的docker中装torch、torchvision

2024-01-22 03:30

本文主要是介绍jetson的docker中装torch、torchvision,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

极简:

网址:https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-pytorch
按照这个上面的操作说明,拉取,启动与系统版本相匹配的镜像。


错误:

按照下面命令安装的 torch 不能使用 cuda 也就是说 torch.cuda.is_available() 是False

安装 torch 命令

$ pip3 install torch -f https://torch.kmtea.eu/whl/stable-cn.html

安装 torchvision 命令

$ pip3 install torchvision -f https://torch.kmtea.eu/whl/stable-cn.html

详细错误经历∠(°ゝ°)

时间:2022/4/14

环境

设 备:联想 EA-B310
核心模块:NVIDIA Jetson Xavier NX
系 统:系统自带的 ubuntu18.04
使用该设备自带的 docker,用下面的命令启动了一个容器

$ sudo docker run --runtime nvidia --network host -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix nvcr.io/nvidia/l4t-base:r32.3.1 

思路:根据网页 https://elinux.org/Jetson_Zoo 要求,查看Jetpack版本,然后根据版本下载安装推荐的torch版本

https://elinux.org/Jetson_Zoo 页面截图在这里插入图片描述

查看 Jetson 的 Jetpack

提示:是查看系统的 Jetpack 版本,不是在 docker 容器里面查看

$ cat /etc/nv_tegra_release

结果

# R32 (release), REVISION: 4.3, GCID: 21589087, BOARD: t186ref, 
EABI: aarch64, DATE: Fri Jun 26 04:34:27 UTC 2020

上面的意思是系统 L4t 的版本是32.4.3
但是 docker 启动命令来看 L4t 的版本是 32.3.1

各版本对应关系

- Jetpack4.2.2
./source_sync.sh -t tegra-l4t-r32.2.1- Jetpack4.3
./source_sync.sh -t tegra-l4t-r32.3.1- Jetpack4.4
./source_sync.sh -t tegra-l4t-r32.4.3- Jetpack4.4.1
./source_sync.sh -t tegra-l4t-r32.4.4- Jetpack4.5
./source_sync.sh -t tegra-l4t-r32.5

我想既然我是在 docker 中运行的,所以参考的是 docker 启动命令, 选择的J etpack 版本是 Jetpack4.3, 因此下载了 Jetpack4.3 对应的 v1.14.0的 pytorch安装包 https://nvidia.app.box.com/v/torch-1-4-cp36-jetson-jp43

下载的时候需要梯子。
下载完成以后,拷贝到U盘,再用U盘拷贝的设备里。最后用docker命令拷贝到容器里。
用docker命令查看正在运行的容器ID的命令

$ sudo docker ps -a

拷贝到docker容器里,xxxxxx是容器ID

$ sudo docker cp torch-1.4.0-cp36-cp36m-linux_aarch64.whl xxxxxx:/home

安装

$ sudo apt-get install libopenblas-base libopenmpi-dev libomp-dev
$ pip3 install Cython
$ pip3 install numpy torch-1.4.0-cp36-cp36m-linux_aarch64.whl

安装成功,但是导入包的时候报错
ImportError:libnvToolsExt.so.1:cannot open shared object file: No such file or directory
在这里插入图片描述
使用查找命令

$ find / -name libnvToolsExt*

结果如下,说明有
在这里插入图片描述

然后猜想可能是没有包含这个路径

在 ~/.bashrc 文件中的最后添加

export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

执行命令更新环境

$ source ~/.bashrc

完成以后 在导入的时候依旧报错
ImportError:libcudart.so.10.0:cannot open shared object file: No such file or directory
在这里插入图片描述

我想是不是环境里面包含不存在的cuda10.0版本的路径

用 env 命令查看 发现果真包含了,然后不知道怎么删除,搜索了一下用命令
export -n PATH=/usr/local/cuda-10.0/bin
然后发现很多命令都用不了了,包括ls命令,开始的时候挺紧张的。然后突然试着把之前的PATH内容都重新用export添加一下,发现不能用的命令都又可以用了。
接着用类似的命令重新添加了一下环境,把cuda-10.0排除外,后用env查看了一下。就没有发现有cuda-10.0了。认为环境中应该不包含cuda10.0了
最后导入torch的时候依旧报一样的错误。。。
emmmm 所以最后放弃了这种安装方法,改用另外一个安装方法。一行命令就安装成功了,导入也没有问题。

$ pip3 install torch -f https://torch.kmtea.eu/whl/stable-cn.html

emmmm。。。。我都经历了些啥。。。最后也不知道是哪的问题。。。

是我启动的容器版本不对吗?
或者我应该装与系统版本匹配的pytorch吗?而不是与容器版本匹配。

这篇关于jetson的docker中装torch、torchvision的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/631700

相关文章

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

Docker安装MySQL镜像的详细步骤(适合新手小白)

《Docker安装MySQL镜像的详细步骤(适合新手小白)》本文详细介绍了如何在Ubuntu环境下使用Docker安装MySQL5.7版本,包括从官网拉取镜像、配置MySQL容器、设置权限及内网部署,... 目录前言安装1.访问docker镜像仓库官网2.找到对应的版本,复制右侧的命令即可3.查看镜像4.启

debian12安装docker的实现步骤

《debian12安装docker的实现步骤》本文主要介绍了debian12安装docker的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录步骤 1:更新你的系统步骤 2:安装依赖项步骤 3:添加 docker 的官方 GPG 密钥步骤

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

如何在pycharm安装torch包

《如何在pycharm安装torch包》:本文主要介绍如何在pycharm安装torch包方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录在pycharm安装torch包适http://www.chinasem.cn配于我电脑的指令为适用的torch包为总结在p

在PyCharm中安装PyTorch、torchvision和OpenCV详解

《在PyCharm中安装PyTorch、torchvision和OpenCV详解》:本文主要介绍在PyCharm中安装PyTorch、torchvision和OpenCV方式,具有很好的参考价值,... 目录PyCharm安装PyTorch、torchvision和OpenCV安装python安装PyTor

pytorch之torch.flatten()和torch.nn.Flatten()的用法

《pytorch之torch.flatten()和torch.nn.Flatten()的用法》:本文主要介绍pytorch之torch.flatten()和torch.nn.Flatten()的用... 目录torch.flatten()和torch.nn.Flatten()的用法下面举例说明总结torch

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基