当前位置:   article > 正文

【具身智能】目标导航实验复现详细教程_具身智能复现

具身智能复现

在这里插入图片描述

【具身智能】目标导航实验复现详细教程

参考论文Object Goal Navigation using Goal-Oriented Semantic Exploration

1. 源码测试

git clone https://github.com/devendrachaplot/Object-Goal-Navigation/
cd Object-Goal-Navigation/;
pip install -r requirements.txt
  • 1
  • 2
  • 3

数据集地址https://github.com/StanfordVL/GibsonEnv/blob/master/gibson/data/README.md
下载地址
https://docs.google.com/forms/d/e/1FAIpQLScWlx5Z1DM1M-wTSXaa6zV8lTFkPmTHW1LqMsoCBDWsTDjBkQ/viewform?pli=1
在这里插入图片描述
在这里需要向斯坦福填写一份签名协议提交表单即可下载

在这里插入图片描述
下载episode数据集

wget --no-check-certificate 'https://drive.google.com/uc?export=download&id=1tslnZAkH8m3V5nP8pbtBmaR2XEfr8Rau' -O objectnav_gibson_v1.1.zip
unzip objectnav_gibson_v1.1.zip
  • 1
  • 2

解压后按照下列组织整合文件
data/
├── datasets
│ └── objectnav
│ └── gibson
│ └── v1.1
│ ├── train
│ │ ├── content
│ │ │ ├── Allensville.glb.json.gz
│ │ │ ├── Beechwood.glb.json.gz
│ │ │ ├── Benevolence.glb.json.gz
│ │ │ ├── Coffeen.glb.json.gz
│ │ │ ├── Cosmos.glb.json.gz
│ │ │ ├── Forkland.glb.json.gz
│ │ │ ├── Hanson.glb.json.gz
│ │ │ ├── Hiteman.glb.json.gz
│ │ │ ├── Klickitat.glb.json.gz
│ │ │ ├── Lakeville.glb.json.gz
│ │ │ ├── Leonardo.glb.json.gz
│ │ │ ├── Lindenwood.glb.json.gz
│ │ │ ├── Marstons.glb.json.gz
│ │ │ ├── Merom.glb.json.gz
│ │ │ ├── Mifflinburg.glb.json.gz
│ │ │ ├── Newfields.glb.json.gz
│ │ │ ├── Onaga.glb.json.gz
│ │ │ ├── Pinesdale.glb.json.gz
│ │ │ ├── Pomaria.glb.json.gz
│ │ │ ├── Ranchester.glb.json.gz
│ │ │ ├── Shelbyville.glb.json.gz
│ │ │ ├── Stockman.glb.json.gz
│ │ │ ├── Tolstoy.glb.json.gz
│ │ │ ├── Wainscott.glb.json.gz
│ │ │ └── Woodbine.glb.json.gz
│ │ ├── train_info.pbz2
│ │ └── train.json.gz
│ └── val
│ ├── content
│ │ ├── Collierville_episodes.json.gz
│ │ ├── Collierville.glb.json.gz
│ │ ├── Corozal_episodes.json.gz
│ │ ├── Corozal.glb.json.gz
│ │ ├── Darden_episodes.json.gz
│ │ ├── Darden.glb.json.gz
│ │ ├── Markleeville_episodes.json.gz
│ │ ├── Markleeville.glb.json.gz
│ │ ├── Wiconisco_episodes.json.gz
│ │ └── Wiconisco.glb.json.gz
│ ├── val_info.pbz2
│ └── val.json.gz
└── scene_datasets
└── gibson_semantic -> …/…/gibson_habitat_trainval/gibson

python test.py --agent random -n1 --num_eval_episodes 1 --auto_gpu_config 0
在这里插入图片描述

2. 训练

如果要看到可视化的效果,添加参数-v 1
记得要在habitat的虚拟环境下

mkdir pretrained_models;
# 下载预训练权重文件
wget --no-check-certificate 'https://drive.google.com/uc?export=download&id=171ZA7XNu5vi3XLpuKs8DuGGZrYyuSjL0' -O pretrained_models/sem_exp.pth
python main.py --auto_gpu_config 0 -n 1 -v 1
  • 1
  • 2
  • 3
  • 4

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

可视化效果

在这里插入图片描述

由于文件大小的限制,动图效果不佳,实际执行比较丝滑

请添加图片描述

3. 验证

验证仍然可以可视化可以加-v参数

python main.py --split val --eval 1 --load pretrained_models/sem_exp.pth --auto_gpu_config 0 -n 1 -v 1
  • 1

在这里插入图片描述

(附) 问题

<1> Pytorch与CUDA版本问题

python test.py --agent random -n1 --num_eval_episodes 1 --auto_gpu_config 0
  • 1

ImportError: /usr/local/anaconda3/envs/habitat/lib/python3.9/site-packages/torch/lib/…/…/nvidia/cusparse/lib/libcusparse.so.12: undefined symbol: __nvJitLinkAddData_12_1, version libnvJitLink.so.12

解决方法:降级pytorch

conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.2
  • 1

<2> 项目文件引用问题

ModuleNotFoundError: No module named ‘habitat.config.default’
在这里插入图片描述
源码中是有的
所以跨项目引用指定一下路径

import sys
sys.path.append('/home/moresweet/Projects/gitCloneZone/habitat-lab')
  • 1
  • 2

在这里插入图片描述

<3> 循环引用问题

ImportError: cannot import name ‘Sem_Exp_Env_Agent’ from partially initialized module ‘agents.sem_exp’ (most likely due to a circular import)
循环引用
在这里插入图片描述
路径中去掉原生的引用

在这里插入图片描述error: [Errno 2] No such file or directory: ‘:/usr/local/cuda/bin/nvcc’
echo $CUDA_HOME会发现多个冒号
bashrc中可能是这么添加的

# cuda12.0 start
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
# cuda12.0 end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

然而$CUDA_HOME实际上是空,所以echo $CUDA_HOME输出为:/usr/local/cuda
解决办法:
export CUDA_HOME=/usr/local/cuda
然后再echo $CUDA_HOME
/usr/local/cuda
输出正常

<4> libstdc++库文件旧

OSError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29’ not found (required by /usr/local/anaconda3/envs/habitat/lib/python3.9/site-packages/llvmlite/binding/…/…/…/…/libLLVM-14.so)

strings /usr/local/anaconda3/envs/habitat/lib/libstdc++.so.6 | grep GLIBCXX
在这里插入图片描述

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
在这里插入图片描述
在这里插入图片描述
因此,重新创建链接

sudo ln -f -s /usr/local/anaconda3/envs/habitat/lib/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libstdc++.so.6
  • 1

<5> 显存爆炸问题

BrokenPipeError: [Errno 32] Broken pipe
在这里插入图片描述
显存在程序启动的瞬间爆掉在这里插入图片描述
添加参数
-n 1
使得并行处理数量变得自己的资源可以承受
在这里插入图片描述解决

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/692036
推荐阅读
相关标签
  

闽ICP备14008679号