Cannot call env.step() before calling reset()

楼主最近在跑DQN程序出现的报错
win10系统
py3.6

Traceback (most recent call last):
  File "C:/Users/2107/Desktop/**/DQN-tensorflow-master/main.py", line 87, in 
    tf.app.run()
  File "D:\Anaconda\lib\site-packages\tensorflow\python\platform\app.py", line 125, in run
    _sys.exit(main(argv))
  File "C:/Users/2107/Desktop/**/DQN-tensorflow-master/main.py", line 82, in main
    agent.train()
  File "C:\Users\2107\Desktop\**\DQN-tensorflow-master\dqn\agent.py", line 44, in train
    screen, reward, action, terminal = self.env.new_random_game()
  File "C:\Users\2107\Desktop\**\DQN-tensorflow-master\dqn\environment.py", line 29, in new_random_game
    self.new_game(True)
  File "C:\Users\2107\Desktop\**\DQN-tensorflow-master\dqn\environment.py", line 24, in new_game
    self._step(0)
  File "C:\Users\2107\Desktop\**\DQN-tensorflow-master\dqn\environment.py", line 36, in _step
    self._screen, self.reward, self.terminal, _ = self.env.step(action)
  File "D:\Anaconda\lib\site-packages\gym\wrappers\time_limit.py", line 15, in step
    assert self._elapsed_steps is not None, "Cannot call env.step() before calling reset()"

上面是报错

def _step(self, action):

定位到这一行
实际解决问题的方法应该是
在environment.py文件中的def init语句内把

self._screen = None

更改为

self._screen = self.env.reset()

解决

你可能感兴趣的:(遇到的问题)