from __future__ import absolute_import import tensorflow as tf class ValueFunctionBase(object): """ base class of value functions. Children include state values V(s) and action values Q(s, a) """ def __init__(self, value_tensor, observation_placeholder): self.observation_placeholder = observation_placeholder self._value_tensor = tf.squeeze(value_tensor) # canonical values has shape (batchsize, ) def eval_value(self, **kwargs): """ :return: batch of corresponding values in numpy array """ raise NotImplementedError() @property def value_tensor(self): """ :return: tensor of the corresponding values """ return self._value_tensor