exp_prefix: psro
env_config:
  lib: expground.envs.poker
  env_id: leduc_poker
  params:
    fixed_player: True
    players: 2

learner_config:
  type: psro
  params:
    seed: 1
    meta_solver: fictitious_play
    use_learnable_dist: False
    episodic_training: False
    train_every: 10
    learning_mode: off_policy
    ray_mode: True
    mixed_at_every_step: False
    # evaluation_worker_num: 30
    # evaluation_worker_total_cpu_num: 3
    # for sub learner
    resource_limit:
      GPU: 0.4
      CPU: 10
      evaluation_worker_num: 30
      evaluation_worker_total_cpu_num: 15
  stop_conditions:
    max_iteration: 100
  inner_stop_conditions:
    max_episode: 10000

# ============ copy from dqn yaml ===============
rollout_config:
  type: sequential
  # control the evalution frequency by timesteps
  fragment_length: 100  # maximum time steps of one batched data, should lower than total_timesteps
  max_step: 20  # maximum step of one episode
  # control the episode num used for evaluation
  num_simulation: 1000
  max_episode: 10

training_config:
  critic_lr: 0.01
  batch_size: 32
  checkpoint_freq: 1000 # does not work yet
  gamma: 1.0
  optimizer: Adam
  tau: 0.01
  # for exploration
  total_timesteps: 100000
  exploration_fraction: 0.1
  exploration_final_eps: 0.1
  param_noise: False

sampler_config:
  sampler_type: simple
  params:
    capacity: 10000
    learning_starts: 1000
    prioritized_replay: False
    prioritized_replay_alpha: 0.6
    prioritized_replay_beta0: 0.4
    # prioritized_replay_beta_iters: None
    prioritized_replay_eps: 1.0e-6

algorithm:
  name: DQN
  policy: dqn.DQN
  trainer: dqn.DQNTrainer
  loss: dqn.loss.DQNLoss

model_config:
  critic:
    network: mlp
    layers:
      - units: 256
        activation: ReLU
      - units: 256
        activation: ReLU
      - units: 256
        activation: ReLU
      - units: 256
        activation: ReLU
    output:
      activation: False

custom_config:
  use_cuda: False
