import tensorflow as tf

            self.loss = tf.squared_difference(self.value_estimate, self.target)
            self.optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)
            self.train_op = self.optimizer.minimize(
                                    self.loss, global_step=tf.contrib.framework.get_global_step())

    def predict(self, state, sess=None):
