in lm_human_preferences/rewards.py [0:0]
def _build(self, tokens, do_dropout=False, name=None):
with tf.variable_scope(self.scope, reuse=self.built, auxiliary_name_scope=not self.built, use_resource=self.use_resource):
lm_output = self.model(X=tokens, do_dropout=do_dropout, padding_token=self.padding_token)
reward = lm_output['reward'][:, -1]
with tf.variable_scope('reward_norm'):
if not self.built:
self.reward_gain = tf.get_variable('gain', shape=(), initializer=tf.constant_initializer(1))
self.reward_bias = tf.get_variable('bias', shape=(), initializer=tf.constant_initializer(0))
self._reward_gain_p = tf.placeholder(name='gain_p', dtype=tf.float32, shape=())
self._reward_bias_p = tf.placeholder(name='bias_p', dtype=tf.float32, shape=())
self._set_reward_norm = tf.group(self.reward_gain.assign(self._reward_gain_p),
self.reward_bias.assign(self._reward_bias_p))
if reward is not None:
reward = self.reward_gain * reward + self.reward_bias
if not self.built:
self._set_initializers()
self.built = True
return reward