167 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
# This is only an example. Most values are dummy placeholders just to match the
 | 
						|
# types; they are often not optimal and must be tuned.
 | 
						|
 | 
						|
[control]
 | 
						|
version = 4
 | 
						|
online = false
 | 
						|
 | 
						|
state_file = '/path/to/mortal.pth'
 | 
						|
best_state_file = '/path/to/best.pth'
 | 
						|
tensorboard_dir = '/path/to/dir'
 | 
						|
 | 
						|
device = 'cuda:0'
 | 
						|
enable_cudnn_benchmark = false
 | 
						|
enable_amp = false
 | 
						|
enable_compile = false
 | 
						|
 | 
						|
batch_size = 512
 | 
						|
opt_step_every = 1
 | 
						|
 | 
						|
save_every = 400
 | 
						|
test_every = 20000
 | 
						|
submit_every = 400
 | 
						|
 | 
						|
# using env `TRAIN_PLAY_PROFILE`
 | 
						|
[train_play.default]
 | 
						|
games = 800
 | 
						|
log_dir = '/path/to/train_play'
 | 
						|
boltzmann_epsilon = 0.005
 | 
						|
boltzmann_temp = 0.05
 | 
						|
top_p = 1.0
 | 
						|
repeats = 1
 | 
						|
 | 
						|
[test_play]
 | 
						|
games = 3000
 | 
						|
log_dir = '/path/to/test_play'
 | 
						|
 | 
						|
[dataset]
 | 
						|
globs = ['/path/to/dataset/**/*.json.gz']
 | 
						|
file_index = '/path/to/file_index.pth'
 | 
						|
file_batch_size = 15
 | 
						|
reserve_ratio = 0.0
 | 
						|
num_workers = 1
 | 
						|
player_names_files = []
 | 
						|
num_epochs = 1
 | 
						|
enable_augmentation = false
 | 
						|
augmented_first = false
 | 
						|
 | 
						|
[env]
 | 
						|
gamma = 1
 | 
						|
pts = [6.0, 4.0, 2.0, 0.0]
 | 
						|
 | 
						|
[resnet]
 | 
						|
conv_channels = 192
 | 
						|
num_blocks = 40
 | 
						|
 | 
						|
[cql]
 | 
						|
min_q_weight = 5
 | 
						|
 | 
						|
[aux]
 | 
						|
next_rank_weight = 0.2
 | 
						|
 | 
						|
[freeze_bn]
 | 
						|
# `true` in online training
 | 
						|
mortal = false
 | 
						|
 | 
						|
[optim]
 | 
						|
eps = 1e-8
 | 
						|
betas = [0.9, 0.999]
 | 
						|
weight_decay = 0.1
 | 
						|
max_grad_norm = 0
 | 
						|
 | 
						|
[optim.scheduler]
 | 
						|
peak = 1e-4
 | 
						|
final = 1e-4
 | 
						|
warm_up_steps = 0
 | 
						|
max_steps = 0
 | 
						|
 | 
						|
[baseline.train]
 | 
						|
device = 'cuda:0'
 | 
						|
enable_compile = false
 | 
						|
state_file = '/path/to/baseline.pth'
 | 
						|
 | 
						|
[baseline.test]
 | 
						|
device = 'cuda:0'
 | 
						|
enable_compile = false
 | 
						|
state_file = '/path/to/baseline.pth'
 | 
						|
 | 
						|
[online]
 | 
						|
history_window = 50
 | 
						|
enable_compile = false
 | 
						|
 | 
						|
[online.remote]
 | 
						|
host = '127.0.0.1'
 | 
						|
port = 5000
 | 
						|
 | 
						|
[online.server]
 | 
						|
buffer_dir = '/path/to/buffer'
 | 
						|
drain_dir = '/path/to/drain'
 | 
						|
sample_reuse_rate = 0
 | 
						|
sample_reuse_threshold = 0
 | 
						|
capacity = 1600
 | 
						|
force_sequential = false
 | 
						|
 | 
						|
[1v3]
 | 
						|
seed_key = -1
 | 
						|
games_per_iter = 2000
 | 
						|
iters = 500
 | 
						|
log_dir = '/path/to/1v3'
 | 
						|
 | 
						|
[1v3.challenger]
 | 
						|
device = 'cuda:0'
 | 
						|
name = 'mortal'
 | 
						|
state_file = '/path/to/challenger.pth'
 | 
						|
stochastic_latent = false
 | 
						|
enable_compile = false
 | 
						|
enable_amp = true
 | 
						|
enable_rule_based_agari_guard = true
 | 
						|
 | 
						|
[1v3.champion]
 | 
						|
device = 'cuda:0'
 | 
						|
name = 'baseline'
 | 
						|
state_file = '/path/to/baseline.pth'
 | 
						|
stochastic_latent = false
 | 
						|
enable_compile = false
 | 
						|
enable_amp = true
 | 
						|
enable_rule_based_agari_guard = true
 | 
						|
 | 
						|
[1v3.akochan]
 | 
						|
enabled = false
 | 
						|
dir = '/path/to/akochan'
 | 
						|
tactics = '/path/to/tactics.json'
 | 
						|
 | 
						|
[grp]
 | 
						|
state_file = '/path/to/grp.pth'
 | 
						|
 | 
						|
[grp.network]
 | 
						|
hidden_size = 64
 | 
						|
num_layers = 2
 | 
						|
 | 
						|
[grp.control]
 | 
						|
device = 'cuda:0'
 | 
						|
enable_cudnn_benchmark = false
 | 
						|
tensorboard_dir = 'grp_v2/log'
 | 
						|
 | 
						|
batch_size = 512
 | 
						|
save_every = 2000
 | 
						|
val_steps = 400
 | 
						|
 | 
						|
[grp.dataset]
 | 
						|
train_globs = [
 | 
						|
    '/path/to/dataset/2019/**/*.json.gz',
 | 
						|
    '/path/to/dataset/2020/**/*.json.gz',
 | 
						|
    '/path/to/dataset/2021/01/**/*.json.gz',
 | 
						|
    '/path/to/dataset/2021/02/**/*.json.gz',
 | 
						|
    # ...
 | 
						|
]
 | 
						|
val_globs = [
 | 
						|
    '/path/to/dataset/2021/10/**/*.json.gz',
 | 
						|
    '/path/to/dataset/2021/11/**/*.json.gz',
 | 
						|
    # ...
 | 
						|
]
 | 
						|
file_index = '/path/to/grp_file_index.pth'
 | 
						|
file_batch_size = 50
 | 
						|
 | 
						|
[grp.optim]
 | 
						|
lr = 1e-5
 |