網站首頁 編程語言 正文
在NVIDIA Jetson Xavier NX上使用tensorflow-gpu
目前所做的項目需要在NVIDIA Jetson Xavier NX的ubuntu18.04的系統下配置ROS,python3以及tensorflow-gpu的環境,但是該環境的配置是比較早之前進行配置的,現在簡單的記錄一下配置的過程。
1.python3環境的配置
首先在NX中,ROS的版本是melodic,在該ROS版本下,只能使用python2.7,但是自己所寫的python代碼都是python3下的,加入在電腦本身的環境中進行配置的話,會導致ROS不能使用,所以需要使用虛擬環境來進行配置。
首先嘗試了安裝anaconda,但是可能是由于nx架構的問題,安裝沒有成功。所以采用了單獨安裝python虛擬環境的辦法。
虛擬python環境配置
使用Python虛擬環境來保持 Python 開發環境相互獨立。使用Python虛擬環境是一種最佳實踐, 為了管理 Python 虛擬環境,使用virtualenv 和 virtualenvwrapper,使用以下命令安裝
sudo pip install virtualenv virtualenvwrapper
打開bashrc,加入以下內容:
# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
然后就可以創建一個虛擬的python環境了
mkvirtualenv tf_gpu -p python3
啟動該虛擬環境
workon tf_gpu
接下來就可以安裝tensorflow-gpu的版本了,但是值得注意的是,這里需要按照nx固件(jetpack)的版本進行選擇
對于Python 3.6+JetPack4.5,以及tensorflow2.x版本,可以按照如下的方式進行安裝,其余版本請查詢tensorflow-gpu安裝查詢地址
!!!(tf_gpu 虛擬環境下)!!!
sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
sudo apt-get install python3-pip
sudo pip3 install -U pip testresources setuptools==49.6.0
sudo pip3 install -U numpy==1.16.1 future==0.18.2 mock==3.0.5 h5py==2.10.0 keras_preprocessing==1.1.1 keras_applications==1.0.8 gast==0.2.2 futures protobuf pybind11
# TF-2.x
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v45 tensorflow
這樣安裝完成之后,對ROS的運行沒有影響。
2.cuda環境的配置
cuda環境在NX環境里面都是已經安裝好的,可能文件夾的名稱有所差異,若需要別的cuda版本,請自行安裝,并更改bashrc內的環境參數即可。
export CUDA_HOME=/usr/local/cuda-10.2
export PATH=/usr/local/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
source /opt/ros/melodic/setup.bash
3.tensorflow-gpu運行錯誤
可能tensorflow-gpu在運行的過程中會出現錯誤(Illegal instruction(core dumped)),這是由于NX是arm架構導致的,需要在bashrc內加入以下語句:
export OPENBLAS_CORETYPE=ARMV8
4.參考鏈接
在NANO上配置Python、Tensorflow和Keras
在Jetson nano(ubuntu)配置tensorflow時遇到的坑點
原文鏈接:https://blog.csdn.net/qq_42412225/article/details/127248316
相關推薦
- 2022-01-20 docker是干什么的,docker常用命令每日一練
- 2022-08-25 R語言實現KMeans聚類算法實例教程_R語言
- 2022-06-28 nginx使用內置模塊配置限速限流的方法實例_nginx
- 2022-09-15 Android自定義ViewGroup實現選擇面板_Android
- 2022-10-09 ASP.NET泛型四之使用Lazy<T>實現延遲加載_實用技巧
- 2022-05-21 C#編程之AOP編程思想_C#教程
- 2022-02-18 git忽略文件,.gitignore配置
- 2022-07-06 C語言實現可增容動態通訊錄詳細過程_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支