jmercat's picture
Removed history to avoid any unverified information being released
5769ee4
raw
history blame
4.93 kB
from risk_biased.config.paths import (
log_path,
)
# WandB Project Name
project = "RiskBiased"
entity = "tri"
# Scene Parameters
dt = 0.1
time_scene = 5.0
sample_times = [t * dt for t in range(0, int(time_scene / dt))]
ego_ref_speed = 14.0
ego_length = 4.0
ego_width = 1.75
fast_speed = 2.0
slow_speed = 1.0
p_change_pace = 0.2
proportion_fast = 0.5
# Data Parameters
file_name = "scene_data"
datasets_sizes = {"train": 100000, "val": 10000, "test": 30000}
datasets = list(datasets_sizes.keys())
state_dim = 2
dynamic_state_dim = 2
num_steps = 5
num_steps_future = len(sample_times) - num_steps
ego_speed_init_low = 4.0
ego_speed_init_high = 16.0
ego_acceleration_mean_low = -1.5
ego_acceleration_mean_high = 1.5
ego_acceleration_std = 3.0
perception_noise_std = 0.05
map_state_dim = 0
max_size_lane = 0
num_blocks = 3
interaction_type = None
mcg_dim_expansion = 0
mcg_num_layers = 0
num_attention_heads = 4
# Model Hyperparameters
model_type = "encoder_biased"
condition_on_ego_future = True
latent_dim = 2
hidden_dim = 64
num_vq = 256
latent_distribution = "gaussian" # "gaussian" or "quantized"
num_hidden_layers = 3
sequence_encoder_type = "MLP" # one of "MLP", "LSTM", "maskedLSTM"
sequence_decoder_type = "MLP" # one of "MLP", "LSTM", "maskedLSTM"
is_mlp_residual = True
# Variational Loss Hyperparameters
kl_weight = 0.5 # For the didactic example with gaussian latent kl_weight = 0.5 is a good value, with quantized latent kl_weight = 0.1 is a good value
kl_threshold = 0.1
latent_regularization = 0.1
# Risk distribution should be one of the following types :
# {"type": "uniform", "min": 0, "max": 1},
# {"type": "normal", "mean": 0, "sigma": 1},
# {"type": "bernoulli", "p": 0.5, "min": 0, "max": 1},
# {"type": "beta", "alpha": 2, "beta": 5, "min": 0, "max": 1},
# {"type": "chi2", "k": 3, "min": 0, "scale": 1},
# {"type": "log-normal", "mu": 0, "sigma": 1, "min": 0, "scale": 1}
# {"type": "log-uniform", "min": 0, "max": 1, "scale": 1}
risk_distribution = {"type": "log-uniform", "min": 0, "max": 1, "scale": 3}
# Monte Carlo risk estimator should be one of the following types :
# {"type": "entropic", "eps": 1e-4}
# {"type": "cvar", "eps": 1e-4}
risk_estimator = {"type": "cvar", "eps": 1e-3}
if latent_distribution == "quantized":
# Number of samples used to estimate the risk from the unbiased distribution
n_mc_samples_risk = num_vq
# Number of samples used to estimate the averaged cost of the biased distribution
n_mc_samples_biased = num_vq
else:
# Number of samples used to estimate the risk from the unbiased distribution
n_mc_samples_risk = 512
# Number of samples used to estimate the averaged cost of the biased distribution
n_mc_samples_biased = 256
# Risk Loss Hyperparameters
risk_weight = 1
risk_assymetry_factor = 200
use_risk_constraint = True # For encoder_biased only
risk_constraint_update_every_n_epoch = (
1 # For encoder_biased only, not used if use_risk_constraint == False
)
risk_constraint_weight_update_factor = (
1.5 # For encoder_biased only, not used if use_risk_constraint == False
)
risk_constraint_weight_maximum = (
1e5 # For encoder_biased only, not used if use_risk_constraint == False
)
# Training Hyperparameters
learning_rate = 1e-4
batch_size = 512
num_epochs_cvae = 100
num_epochs_bias = 100
gpus = [0]
seed = 0 # Give an integer value to seed will set seed for pseudo-random number generators in: pytorch, numpy, python.random
early_stopping = False
accumulate_grad_batches = 1
num_workers = 4
log_weights_and_grads = False
num_samples_min_fde = 16
val_check_interval_epoch = 1
plot_interval_epoch = 1
histogram_interval_epoch = 1
# State Cost Hyperparameters
cost_scale = 10
cost_reduce = (
"mean" # choose in "discounted_mean", "mean", "min", "max", "now", "final"
)
discount_factor = 0.95 # only used if cost_reduce == "discounted_mean", discounts the cost by this factor at each time step
distance_bandwidth = 2
time_bandwidth = 0.5
min_velocity_diff = 0.03
# List all above parameters that make a difference in the dataset to distringuish datasets once generated
dataset_parameters = {
"dt": dt,
"time_scene": time_scene,
"sample_times": sample_times,
"ego_ref_speed": ego_ref_speed,
"ego_speed_init_low": ego_speed_init_low,
"ego_speed_init_high": ego_speed_init_high,
"ego_acceleration_mean_low": ego_acceleration_mean_low,
"ego_acceleration_mean_high": ego_acceleration_mean_high,
"ego_acceleration_std": ego_acceleration_std,
"fast_speed": fast_speed,
"slow_speed": slow_speed,
"p_change_pace": p_change_pace,
"proportion_fast": proportion_fast,
"file_name": file_name,
"datasets_sizes": datasets_sizes,
"state_dim": state_dim,
"num_steps": num_steps,
"num_steps_future": num_steps_future,
"perception_noise_std": perception_noise_std,
}
# List files that should be saved as log
files_to_log = []