code: def create_inverse_model(self, encoded_state, encoded_next_state):
          
          combined_input = tf.concat([encoded_state, encoded_next_state], axis=1)
          hidden = tf.layers.dense(combined_input, 256, activation=self.swish)
          if self.brain.vector_action_space_type == "continuous":
              pred_action = tf.layers.dense(hidden, self.act_size[0], activation=None)
              squared_difference = tf.reduce_sum(tf.squared_difference(pred_action, self.selected_actions), axis=1)
              self.inverse_loss = tf.reduce_mean(tf.dynamic_partition(squared_difference, self.mask, 2)[1])
          else:
              pred_action = tf.concat(
                  [tf.layers.dense(hidden, self.act_size[i], activation=tf.nn.softmax)
                   for i in range(len(self.act_size))], axis=1)
              cross_entropy = tf.reduce_sum(-tf.log(pred_action + 1e-10) * self.selected_actions, axis=1)
              self.inverse_loss = tf.reduce_mean(tf.dynamic_partition(cross_entropy, self.mask, 2)[1])
docs: Creates inverse model TensorFlow ops for Curiosity module.
          Predicts action taken given current and future encoded states.
          :param encoded_state: Tensor corresponding to encoded current state.
          :param encoded_next_state: Tensor corresponding to encoded next state.