forked from Applied-Machine-Learning-Lab/LinRec
-
Notifications
You must be signed in to change notification settings - Fork 0
/
overall.yaml
62 lines (57 loc) · 4.17 KB
/
overall.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# Environment Settings
gpu_id: '0' # (str) The id of GPU device(s).
worker: 0 # (int) The number of workers processing the data.
use_gpu: True # (bool) Whether or not to use GPU.
seed: 2000 # (int) Random seed.
state: INFO # (str) Logging level.
reproducibility: True # (bool) Whether or not to make results reproducible.
data_path: 'dataset/' # (str) The path of input dataset.
checkpoint_dir: 'saved' # (str) The path to save checkpoint file.
show_progress: True # (bool) Whether or not to show the progress bar of every epoch.
save_dataset: False # (bool) Whether or not to save filtered dataset.
dataset_save_path: ~ # (str) The path of saved dataset.
save_dataloaders: False # (bool) Whether or not save split dataloaders.
dataloaders_save_path: ~ # (str) The path of saved dataloaders.
log_wandb: False # (bool) Whether or not to use Weights & Biases(W&B).
wandb_project: 'recbole' # (str) The project to conduct experiments in W&B.
shuffle: True # (bool) Whether or not to shuffle the training data before each epoch.
# Training Settings
epochs: 100 # (int) The number of training epochs.
train_batch_size: 2048 # (int) The training batch size.(default:2048)
learner: adam # (str) The name of used optimizer.
learning_rate: 0.001 # (float) Learning rate.
train_neg_sample_args: # (dict) Negative sampling configuration for model training.
distribution: uniform # (str) The distribution of negative items.
sample_num: 1 # (int) The sampled num of negative items.
alpha: 1.0 # (float) The power of sampling probability for popularity distribution.
dynamic: False # (bool) Whether to use dynamic negative sampling.
candidate_num: 0 # (int) The number of candidate negative items when dynamic negative sampling.
eval_step: 1 # (int) The number of training epochs before an evaluation on the valid dataset.
stopping_step: 10 # (int) The threshold for validation-based early stopping.
clip_grad_norm: ~ # (dict) The args of clip_grad_norm_ which will clip gradient norm of model.
weight_decay: 0.0 # (float) The weight decay value (L2 penalty) for optimizers.
loss_decimal_place: 4 # (int) The decimal place of training loss.
require_pow: False # (bool) Whether or not to perform power operation in EmbLoss.
enable_amp: False # (bool) Whether or not to use mixed precision training.
enable_scaler: False # (bool) Whether or not to use GradScaler in mixed precision training.
transform: ~ # (str) The transform operation for batch data process.
# Evaluation Settings
# eval_args: # (dict) 4 keys: group_by, order, split, and mode
# split: {'RS':[0.8,0.1,0.1]} # (dict) The splitting strategy ranging in ['RS','LS'].
# group_by: user # (str) The grouping strategy ranging in ['user', 'none'].
# order: RO # (str) The ordering strategy ranging in ['RO', 'TO'].
# mode: full # (str) The evaluation mode ranging in ['full','unixxx','popxxx','labeled'].
eval_args:
split: {'LS': 'valid_and_test'}
group_by: user
order: TO
mode: pop100
repeatable: False # (bool) Whether to evaluate results with a repeatable recommendation scene.
metrics: ["Recall","MRR","NDCG","Hit","Precision"] # (list or str) Evaluation metrics. metrics: ["Recall","MRR","NDCG","Hit","Precision"]
topk: [10] # (list or int or None) The value of k for topk evaluation metrics.
# valid_metric: MRR@10 # (str) The evaluation metric for early stopping.
valid_metric: NDCG@10
valid_metric_bigger: True # (bool) Whether to take a bigger valid metric value as a better result.
eval_batch_size: 4096 # (int) The evaluation batch size.
# eval_batch_size: 40960000 # ml-1m
metric_decimal_place: 4 # (int) The decimal place of metric scores.