一、PPO代码
选用的是如下repo中的PPO代码:
https://github.com/MorvanZhou/Reinforcement-learning-with-tensorflow/tree/master/contents/
二、网络结构
1.网络变量
项目中的网络输入针对的是向量,但AI2THOR环境下的观测状态及神经网络需要的输入是一个三维张量,因此需要修改项目中的网路结构,S为[None, 84, 84, 3],Q_tar为[None, 1],Q_eval为[None, 1],pi为[None, action_size],a为[None, ]
2.Actor和Critic网络
#s的输入顺序:s->conv1->relu->conv1->relu->fc->relu->out_put_fc
with tf.variable_scope("base_conv", reuse=reuse):
# Weights
W_conv1, b_conv1 = self._conv_variable([8, 8, 3, 16], "base_conv1")
W_conv2, b_conv2 = self._conv_variable([4, 4, 16, 32], "base_conv2")
# Nodes
h_conv1 = tf.nn.relu(self._conv2d(self.