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

相关文章

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

docker-compose安装和简单使用

本文介绍docker-compose的安装和使用 新版docker已经默认安装了docker-compose 可以使用docker-compose -v 查看docker-compose版本 如果没有的话可以使用以下命令直接安装 sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-c

01 Docker概念和部署

目录 1.1 Docker 概述 1.1.1 Docker 的优势 1.1.2 镜像 1.1.3 容器 1.1.4 仓库 1.2 安装 Docker 1.2.1 配置和安装依赖环境 1.3镜像操作 1.3.1 搜索镜像 1.3.2 获取镜像 1.3.3 查看镜像 1.3.4 给镜像重命名 1.3.5 存储,载入镜像和删除镜像 1.4 Doecker容器操作 1.4

Windows与linux中docker的安装与使用

windos中安装使用docker 下载Docker_Desktop 安装包进入docker官网下载Docker_Desktop: https://www.docker.com/ 启用wsl 我们搜索“启用或关闭Windows功能”,打开后勾选适用于Linux的Windows 子系统 Docker_Desktop设置 出现Docker Engine stopped的解决

docker学习系列(四)制作基础的base项目镜像--jdk+tomcat

前面已经完成了docker的安装以及使用,现在我们要将自己的javaweb项目与docker结合 1.1准备jdk+tomcat软件 ​​我下载了apache-tomcat-7.0.68.tar.gz和jdk-7u79-linux-x64.tar.gz,存储于Linux机器的本地目录/usr/ect/wt/下(利用xshell上传)。利用linux命令 tar -zxvf apache-tom