Python 为TensorFlow重塑健身房阵列
我正在学习如何使用健身房环境来训练用TFLearn构建的深度学习模型 目前,我的观察序列的形状如下:Python 为TensorFlow重塑健身房阵列,python,tensorflow,reinforcement-learning,tflearn,openai-gym,Python,Tensorflow,Reinforcement Learning,Tflearn,Openai Gym,我正在学习如何使用健身房环境来训练用TFLearn构建的深度学习模型 目前,我的观察序列的形状如下:(210、160、3) 关于重塑该阵列以便将其用于TensorFlow分类模型的最佳方法的任何建议?标准方法(如DeepMing所述)为: 将其转换为灰度,以(210160)结束。在这里,你最好检查一下,没有有用的信息丢失,在一些游戏中可能会发生这种情况。(例如,球变成与背景相同的“颜色”)。在这里,您可以使用以下内容: processed=np.mean(第2帧,keepdims=False)
(210、160、3)
关于重塑该阵列以便将其用于TensorFlow分类模型的最佳方法的任何建议?标准方法(如DeepMing所述)为:
processed=np.mean(第2帧,keepdims=False)
resized=cv2.resize(已处理(110,84),插值=cv2.CV\u INTER\u LINEAR)
result=resized[13:97]
processed=np.mean(第2帧,keepdims=False)
crapped=processed[35:195]
result=crapped[::2,::2]
使用多个帧(通常为4帧)的堆栈作为网络输入,以及跳过帧(在获取一帧后跳过接下来的3帧)也很有用,因为它们通常不包含太多有用的信息。请注意,Gym本身有一个
AtariPreprocessing
包装器,可用于预处理Atari环境。我相信包装纸的作用与Asakruukin提到的DQN纸类似
您可以这样使用它:
导入健身房
从gym.wrappers导入或重新处理
环境=健身房品牌('Pong-v0')
env=AtariPreprocessing(env,frame_skip=1)
有关包装器的更多信息,请访问。非常感谢,我将查看博客和文章!为什么你要裁剪中心部分,并且知道你需要的正是
[35:195]
@SebM这是Karpathy在他的博客中使用的,但是你可以使用不同的区域,这对你更有效,或者根本不裁剪,只需减少样本。这种想法是,在许多游戏中,顶部和底部区域不包含有用的信息,主要动作发生在靠近中心的地方。因此,在训练图像之前,您应该始终检查已处理的输出,以确保没有丢失任何有用的信息。