code: def create_vector_observation_encoder(observation_input, h_size, activation, num_layers, scope,
                                            reuse):
          
          with tf.variable_scope(scope):
              hidden = observation_input
              for i in range(num_layers):
                  hidden = tf.layers.dense(hidden, h_size, activation=activation, reuse=reuse,
                                           name="hidden_{}".format(i),
                                           kernel_initializer=c_layers.variance_scaling_initializer(
                                               1.0))
          return hidden
docs: Builds a set of hidden state encoders.
          :param reuse: Whether to re-use the weights within the same scope.
          :param scope: Graph scope for the encoder ops.
          :param observation_input: Input vector.
          :param h_size: Hidden layer size.
          :param activation: What type of activation function to use for layers.
          :param num_layers: number of hidden layers to create.
          :return: List of hidden layer tensors.