Commit 5eb83bc0 authored by leswing's avatar leswing
Browse files

yapf

parent 788fd9f8
Loading
Loading
Loading
Loading
+68 −58
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ from deepchem.models.tensorgraph.layers import Flatten, Dense, SoftMax, \


class TicTacToePolicy(dc.rl.Policy):

  def create_layers(self, state, **kwargs):
    d1 = Flatten(in_layers=state)
    d2 = Dense(
@@ -40,7 +41,10 @@ class TicTacToePolicy(dc.rl.Policy):
    return {'action_prob': probs, 'value': value}


def eval_tic_tac_toe(value_weight, num_epoch_rounds=1, games=10 ** 4, rollouts=10 ** 5):
def eval_tic_tac_toe(value_weight,
                     num_epoch_rounds=1,
                     games=10**4,
                     rollouts=10**5):
  """
    Returns the average reward over 1k games after 10k rollouts
    :param value_weight:
@@ -56,8 +60,14 @@ def eval_tic_tac_toe(value_weight, num_epoch_rounds=1, games=10 ** 4, rollouts=1

  avg_rewards = []
  for j in range(num_epoch_rounds):
        a3c = dc.rl.A3C(env, policy, entropy_weight=0.01, value_weight=value_weight, model_dir=model_dir)
        a3c.optimizer = dc.models.tensorgraph.TFWrapper(tf.train.AdamOptimizer, learning_rate=0.01)
    a3c = dc.rl.A3C(
        env,
        policy,
        entropy_weight=0.01,
        value_weight=value_weight,
        model_dir=model_dir)
    a3c.optimizer = dc.models.tensorgraph.TFWrapper(
        tf.train.AdamOptimizer, learning_rate=0.01)
    try:
      a3c.restore()
    except:
@@ -78,7 +88,7 @@ def eval_tic_tac_toe(value_weight, num_epoch_rounds=1, games=10 ** 4, rollouts=1

def main():
  value_weight = 6.0
    score = eval_tic_tac_toe(value_weight, num_epoch_rounds=10)
  score = eval_tic_tac_toe(value_weight, num_epoch_rounds=1)
  print(score)


+2 −1
Original line number Diff line number Diff line
@@ -22,7 +22,8 @@ class A3CLoss(Layer):

  def create_tensor(self, **kwargs):
    reward, action, prob, value = [layer.out_tensor for layer in self.in_layers]
    log_prob = tf.log(prob + 0.0001)
    prob = prob + np.finfo(np.float32).eps
    log_prob = tf.log(prob)
    policy_loss = -tf.reduce_sum(
        (reward - value) * tf.reduce_sum(action * log_prob))
    value_loss = tf.reduce_sum(tf.square(reward - value))