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 = []