28 lines
883 B
Python
28 lines
883 B
Python
from __future__ import annotations
|
|
|
|
from coolrl_lost_cities.games.classic.deep_cfr.encoding import input_dim
|
|
from coolrl_lost_cities.games.classic.game import GameState, LostCitiesConfig
|
|
|
|
from coolrl_lost_cities.games.classic.deep_cfr.networks import DeepCFRMLP
|
|
from coolrl_lost_cities.games.classic.deep_cfr.policy_gradient import (
|
|
fine_tune_strategy_policy_gradient,
|
|
)
|
|
|
|
|
|
def test_policy_gradient_fine_tune_smoke() -> None:
|
|
config = LostCitiesConfig(seed=71)
|
|
state = GameState.new_game(config, seed=71)
|
|
network = DeepCFRMLP(input_dim(state), 2 * config.hand_size + 1 + config.n_colors, 16)
|
|
|
|
metrics = fine_tune_strategy_policy_gradient(
|
|
network,
|
|
config,
|
|
episodes=1,
|
|
seed=71,
|
|
max_steps=64,
|
|
)
|
|
|
|
assert metrics.episodes == 1
|
|
assert isinstance(metrics.avg_reward, float)
|
|
assert isinstance(metrics.loss, float)
|