或者在一台没有显示器的服务器上运行以下指令:
这将产生2000次的输出,每个rollout最长为300个时间步。
两组文件在./data中保存,一是obs_data_*.npy(将64×64×3图像存储为numpy数组),二是action_data_*.npy(存储三维动作)
第五步:训练VAE上面我们介绍了VAE是操纵小车在环境中移动的一把手,现在我们就讲讲如何训练它。这一步可能比你想象的要简单的多,因为所需文件只要obs_data_*.npy文档就好了。不过温馨提示一下,确保你已经完成了第四步,因为要之后将这些文档放于./data文件夹中。
从命令行运行:
我们将从0到9的每批数据上训练一个新VAE。
模型的权重将被存储在./vae/weights.h5中,--new_model是在提示脚本从头开始训练模型。
如果文件夹中有weights.h5,并且没有指定--new_model标记时,脚本将从该文件加载权重,并继续训练现有模型。这样,你就可以批量迭代VAE。
VAE架构规范在./vae/arch.py文件夹中。
第六步:生成RNN数据现在我们有了训练好的VAE,就可以用它生成为RNN训练集。
RNN需要将VAE中编码的图像数据(z)和动作(a)作为输入,并将VAE中预先编码的图像数据作为输出。你可以通过运行下面的指令生成这些数据:
这将改变obs_data_* .npy和action_data_*.npy文件中从batch 0到batch 9的数据,并且将它们转化成RNN需要的正确格式完成训练。
两组文件将保存在./data中,rnn_input_* .npy存储[z a]连接的向量,rnn_output_*.npy存储的是前一个时间步的z向量。
第七步:训练RNN上一步生成了RNN的数据后,训练它只需rnn_input_*.npy和rnn_output_*.npy文件就可以了。在这里再次提醒:第六步一定要完成,这些文件都要在./data文件夹里才可以。
在命令行运行下列代码: