glmcdona / LuxPythonEnvGym

Matching python environment code for Lux AI 2021 Kaggle competition, and a gym interface for RL models.
MIT License
73 stars 38 forks source link

Random generator error #76

Closed glmcdona closed 2 years ago

glmcdona commented 2 years ago

Maybe it's running of random values? Seems to be frequently ocurring error.

Traceback (most recent call last):
  File "./personal/train.py", line 210, in <module>
    train(local_args)
  File "./personal/train.py", line 161, in train
    callback=[checkpoint_callback, TensorboardCallback()])  # 20M steps
  File "C:\Users\glmcd\anaconda3\envs\kaggle_lux2\lib\site-packages\stable_baselines3-1.2.1a1-py3.7.egg\stable_baselines3\ppo\ppo.py", line 310, in learn
    reset_num_timesteps=reset_num_timesteps,
  File "C:\Users\glmcd\anaconda3\envs\kaggle_lux2\lib\site-packages\stable_baselines3-1.2.1a1-py3.7.egg\stable_baselines3\common\on_policy_algorithm.py", line 237, in learn
    continue_training = self.collect_rollouts(self.env, callback, self.rollout_buffer, n_rollout_steps=self.n_steps)
  File "C:\Users\glmcd\anaconda3\envs\kaggle_lux2\lib\site-packages\stable_baselines3-1.2.1a1-py3.7.egg\stable_baselines3\common\on_policy_algorithm.py", line 178, in collect_rollouts
    new_obs, rewards, dones, infos = env.step(clipped_actions)
  File "C:\Users\glmcd\anaconda3\envs\kaggle_lux2\lib\site-packages\stable_baselines3-1.2.1a1-py3.7.egg\stable_baselines3\common\vec_env\base_vec_env.py", line 162, in step
    return self.step_wait()
  File "C:\Users\glmcd\anaconda3\envs\kaggle_lux2\lib\site-packages\stable_baselines3-1.2.1a1-py3.7.egg\stable_baselines3\common\vec_env\dummy_vec_env.py", line 49, in step_wait
    obs = self.envs[env_idx].reset()
  File "C:\Users\glmcd\anaconda3\envs\kaggle_lux2\lib\site-packages\stable_baselines3-1.2.1a1-py3.7.egg\stable_baselines3\common\monitor.py", line 79, in reset
    return self.env.reset(**kwargs)
  File "C:\Users\glmcd\anaconda3\envs\kaggle_lux2\lib\site-packages\luxai2021-0.1.0-py3.7.egg\luxai2021\env\lux_env.py", line 88, in reset
    self.match_controller.reset()
  File "C:\Users\glmcd\anaconda3\envs\kaggle_lux2\lib\site-packages\luxai2021-0.1.0-py3.7.egg\luxai2021\game\match_controller.py", line 127, in reset
    self.game.reset()
  File "C:\Users\glmcd\anaconda3\envs\kaggle_lux2\lib\site-packages\luxai2021-0.1.0-py3.7.egg\luxai2021\game\game.py", line 105, in reset
    self.map.generate_map(self)
  File "C:\Users\glmcd\anaconda3\envs\kaggle_lux2\lib\site-packages\luxai2021-0.1.0-py3.7.egg\luxai2021\game\game_map.py", line 133, in generate_map
    half_height
  File "C:\Users\glmcd\anaconda3\envs\kaggle_lux2\lib\site-packages\luxai2021-0.1.0-py3.7.egg\luxai2021\game\game_map.py", line 291, in _generate_all_resources
    if rng.random() < 0.05:
  File "C:\Users\glmcd\anaconda3\envs\kaggle_lux2\lib\site-packages\luxai2021-0.1.0-py3.7.egg\luxai2021\game\game_map.py", line 72, in _rng
    ret = rng_values[idx]
IndexError: list index out of range
StoneT2000 commented 2 years ago

yeah someone opened an issue about this. I was going to fix it soon

royerk commented 2 years ago

Right, the following does the trick in game_map.py (credit to @StoneT2000 )

def js_rng(seed):
    idx = 0
    rng_values = get_n_values(seed, N=1000000)
    ...
StoneT2000 commented 2 years ago

Ok fixed with f2dd9d3