yanpanlau / DDPG-Keras-Torcs

Using Keras and Deep Deterministic Policy Gradient to play TORCS
717 stars 267 forks source link

getting error for vision #26

Closed abhinavagarwal07 closed 7 years ago

abhinavagarwal07 commented 7 years ago

changing vision = True gives following error

  File "ddpg2.py", line 192, in <module>
    playGame()
  File "ddpg2.py", line 84, in playGame
    ob = env.reset(relaunch=True)   #relaunch TORCS every 3 episode because of the memory leak error
  File "/home/user/gym_torcs/gym_torcs.py", line 192, in reset
    self.observation = self.make_observaton(obs)
  File "/home/user/gym_torcs/gym_torcs.py", line 275, in make_observaton
    image_rgb = self.obs_vision_to_image_rgb(raw_obs[names[8]])
  File "/home/user/gym_torcs/gym_torcs.py", line 232, in obs_vision_to_image_rgb
    r = image_vec[0:len(image_vec):3]
TypeError: object of type 'float' has no len()
amritas02 commented 6 years ago

I'm getting the same error. How did you resolve this?

hamzameur commented 6 years ago

Hi, I'm getting the exact same bug in "simple_how_to.py". Did you resolve this issue?

abhinavagarwal07 commented 6 years ago

There is a bug in the code.

This is my gym_torcs.py

ferhatmelih commented 5 years ago

change gym_torcs.py from line 265 to end should be as below

else:
        names = ['focus',
                 'speedX', 'speedY', 'speedZ', 'angle',
                 'opponents',
                 'rpm',
                 'track',
                 'trackPos',
                 'wheelSpinVel',
                 'img']
        Observation = col.namedtuple('Observaion', names)

        # Get RGB from observation
        #pdb.set_trace()
        image_rgb = self.obs_vision_to_image_rgb(raw_obs['img'])

        return Observation(focus=np.array(raw_obs['focus'], dtype=np.float32)/200.,
                           speedX=np.array(raw_obs['speedX'], dtype=np.float32)/self.default_speed,
                           speedY=np.array(raw_obs['speedY'], dtype=np.float32)/self.default_speed,
                           speedZ=np.array(raw_obs['speedZ'], dtype=np.float32)/self.default_speed,
                           angle=np.array(raw_obs['angle'], dtype=np.float32)/3.1416,
                           opponents=np.array(raw_obs['opponents'], dtype=np.float32)/200.,
                           rpm=np.array(raw_obs['rpm'], dtype=np.float32),
                           track=np.array(raw_obs['track'], dtype=np.float32)/200.,
                           trackPos=np.array(raw_obs['trackPos'], dtype=np.float32)/1.,
                           wheelSpinVel=np.array(raw_obs['wheelSpinVel'], dtype=np.float32),
                           img=image_rgb)
Aarnnity commented 3 years ago

change gym_torcs.py from line 265 to end should be as below

else:
        names = ['focus',
                 'speedX', 'speedY', 'speedZ', 'angle',
                 'opponents',
                 'rpm',
                 'track',
                 'trackPos',
                 'wheelSpinVel',
                 'img']
        Observation = col.namedtuple('Observaion', names)

        # Get RGB from observation
        #pdb.set_trace()
        image_rgb = self.obs_vision_to_image_rgb(raw_obs['img'])

        return Observation(focus=np.array(raw_obs['focus'], dtype=np.float32)/200.,
                           speedX=np.array(raw_obs['speedX'], dtype=np.float32)/self.default_speed,
                           speedY=np.array(raw_obs['speedY'], dtype=np.float32)/self.default_speed,
                           speedZ=np.array(raw_obs['speedZ'], dtype=np.float32)/self.default_speed,
                           angle=np.array(raw_obs['angle'], dtype=np.float32)/3.1416,
                           opponents=np.array(raw_obs['opponents'], dtype=np.float32)/200.,
                           rpm=np.array(raw_obs['rpm'], dtype=np.float32),
                           track=np.array(raw_obs['track'], dtype=np.float32)/200.,
                           trackPos=np.array(raw_obs['trackPos'], dtype=np.float32)/1.,
                           wheelSpinVel=np.array(raw_obs['wheelSpinVel'], dtype=np.float32),
                           img=image_rgb)

Hello, did your ddpg algorithm with images as input work?