title: openai gym custom environment action_space and observation_space howto
body: <p>I am trying ti implement custom openai gym environment. Both action space and observation space contains a combination of list of values and discrete spaces. 
  Did I model it correctly?
  For example:</p>
  
  <pre><code>        self.action_space = spaces.Tuple((
                                              spaces.Tuple((self.actions)),                                  
                                              spaces.Discrete(101)                                                
                                          ))
  </code></pre>
  
  <p>where self.actions is a list of values of possible actions, for each there may of may not be additional discrete action of range 100. 
  observation space is the same with combination of list of values and discrete values. Is this the correct way to model it?
  In addition, I use keras-rl to run agents and it requires:</p>
  
  <pre><code>        nb_actions = env.action_space.n and
          model.add(Flatten(input_shape=(1,) + env.observation_space.shape))
  </code></pre>
  
  <p>How do I implement n and shape for tuple spaces?
  I tried: nb_actions = len(env.action_space.spaces)
  Is this the same as n?
  How do I replace env.observation_space.shape?</p>