一、前言
最近在学习一个基于目标导航的深度强化学习Demo,是Yuke Zhu在他论文Target-Driven Visual Navigation中提出的,并在他的Github提供了代码。下面,我将演示如何实现这个Demo,并在博客最后附上论文翻译连接和Github代码连接。
二、Demo实现
1.配置Tensortflow
该工程代码是在Tensorflow API r1.0中实现,首先要进行Tensorflow 1.0的安装。引用王立远博主提供的国内源。
sudo python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow==1.0.0
2.在Github上下载源代码
打开终端直接克隆。
git clone https://github.com/caomw/icra2017-visual-navigation-1.git
3.其他依赖
其他依赖(h5py,numpy的,scikit图像,pyglet)可以通过安装PIP,在终端直接运行命令行:
sudo pip install -r requirements.txt
这里可能会出现pip版本问题,解决办法在我的另一篇博客【Ubuntu16.04】pip版本问题。
4.场景
(1)下载场景
为了便于培训,Yuke Zhu提供了模拟场景的hdf5转储。每个转储都包含在四个基本方向上从离散网格中采样的代理人的第一人称观察值,共四个场景,使用data文件夹里的download_scene_dumps.sh
脚本在终点下载。
#终端运行
sh ./data/download_scene_dumps.sh
(2)加载场景
目前四个场景分别是(浴室,卧室,厨房和客厅),keyboard_agent.py
提供了一个脚本。该脚本允许加载场景转储并使用箭头键导航场景。要运行脚本,在终端输入命令:
#确保场景转储位于数据文件夹中,例如./data/bedroom_04.h5
python keyboard_agent.py --scene_dump ./data/bedroom_04.h5
点击场景框,用上下左右键控制移动。
5.训练与评估
(1)训练
将模型检查点存储到CHECKPOINT_DIR,并将Tensorboard日志写入LOG_FILE。要训练目标驱动的导航模型,在终端运行以下脚本:
#进行训练
python train.py
(2)评估
为了进行评估,为每个目标运行100集,并报告导航轨迹的平均/标准差长度。要评估中的模型检查点CHECKPOINT_DIR,在终端运行以下脚本:
#评估
python evaluate.py
三、论文翻译与Github源码链接
1.论文翻译
猪蒙索洛夫博主的超强良心翻译:
【论文翻译】Target Driven Visual Navigation with Hybrid Asynchronous Universal Successor Representations
2.Github源代码链接
基于有些小伙伴有使用谷歌浏览器下源码习惯,直接附连接:
https://github.com/caomw/icra2017-visual-navigation-1.git