in empose/helpers/configuration.py [0:0]
def parse_cmd():
parser = argparse.ArgumentParser()
# General.
parser.add_argument('--experiment_id', default=None, help='Use this experiment ID or create a new one.')
parser.add_argument('--seed', type=int, default=None, help='Random generator seed.')
parser.add_argument('--data_workers', type=int, default=4, help='Number of parallel threads for data loading.')
parser.add_argument('--print_every', type=int, default=25, help='Print stats to console every so many iters.')
parser.add_argument('--eval_every', type=int, default=700, help='Evaluate validation set every so many iters.')
parser.add_argument('--tag', default='', help='A custom tag for this experiment.')
parser.add_argument('--test', action='store_true', help='Will tag this run as a test run.')
# Model configurations.
parser.add_argument('--m_type', default='rnn', choices=['rnn', 'resnet', 'ief', 'lgd'], help='The type of model.')
parser.add_argument('--m_estimate_shape', action='store_true', help='The model estimates the body shape.')
parser.add_argument('--m_shape_hidden_size', default=256, help='Size of the network estimating the shape.') # Only used in RNN/ResNet.
parser.add_argument('--m_fk_loss', type=float, default=0.0, help='Add an FK loss, requires shape estimate.')
parser.add_argument('--m_dropout', type=float, default=0.0, help='Dropout applied on inputs.')
parser.add_argument('--m_hidden_size', type=int, default=1024, help='Number of hidden units.')
parser.add_argument('--m_num_layers', type=int, default=2, help='Number of layers.')
parser.add_argument('--m_learn_init_state', action='store_true', help='Learn initial hidden state.')
parser.add_argument('--m_bidirectional', action='store_true', help='Bidirectional RNN.')
# IEF model specific.
parser.add_argument('--m_num_iterations', type=int, default=4, help='Number of iterations for IEF.')
parser.add_argument('--m_dropout_hidden', type=float, default=0.0, help='Dropout applied inside layers.')
parser.add_argument('--m_step_size', type=float, default=0.1, help='Step size for IEF update.')
parser.add_argument('--m_reprojection_loss_weight', type=float, default=0.01, help='Reprojection loss weight.')
parser.add_argument('--m_shape_loss_weight', type=float, default=1.0, help='Loss for the shape weight.')
parser.add_argument('--m_pose_loss_weight', type=float, default=1.0, help='Loss for the shape weight.')
parser.add_argument('--m_average_shape', action='store_true', help='Average the shape per sequence.')
parser.add_argument('--m_use_gradient', action='store_true', help='Feed dL/dtheta to the network.')
parser.add_argument('--m_skip_connections', action='store_true', help='Skip connections in the MLP.')
parser.add_argument('--m_no_batch_norm', action='store_true', help="Don't use batch norm.")
parser.add_argument('--m_rnn_init', action='store_true', help="Initial estimate is provided by an RNN.")
parser.add_argument('--m_rnn_denoiser', action='store_true', help="Use an RNN to de-noise the markers.")
parser.add_argument('--m_rnn_bidirectional', action='store_true', help="BiRNN or not.")
parser.add_argument('--m_rnn_hidden_size', type=int, default=512, help="Hidden size for the init RNN.")
parser.add_argument('--m_rnn_num_layers', type=int, default=2, help="Number of layers for the init RNN.")
# Input data.
parser.add_argument('--use_marker_pos', action='store_true', help='Feed marker positions.')
parser.add_argument('--use_marker_ori', action='store_true', help='Feed marker orientations.')
parser.add_argument('--use_marker_nor', action='store_true', help='Feed marker normal instead of orientation.')
parser.add_argument('--use_real_offsets', action='store_true', help='Sampling is informed by real offset distribution.')
parser.add_argument('--offset_noise_level', type=int, default=0, help='How much noise to add to real offsets.')
parser.add_argument('--n_markers', type=int, default=12, help='Subselect a number of markers for the input.')
# Data augmentation.
parser.add_argument('--noise_num_markers', type=int, default=1, help='How many markers are affected by the noise.')
parser.add_argument('--spherical_noise_strength', type=float, default=0.0, help='Magnitude of noise in %.')
parser.add_argument('--spherical_noise_length', type=float, default=0.0, help='Temporal length of noise in %.')
parser.add_argument('--suppression_noise_length', type=float, default=0.0, help='Marker suppression length.')
parser.add_argument('--suppression_noise_value', type=float, default=0.0, help='Marker suppression value.')
# Learning configurations.
parser.add_argument('--lr', type=float, default=0.001, help='Learning rate.')
parser.add_argument('--n_epochs', type=int, default=50, help='Number of epochs.')
parser.add_argument('--bs_train', type=int, default=16, help='Batch size for the training set.')
parser.add_argument('--bs_eval', type=int, default=16, help='Batch size for valid/test set.')
parser.add_argument('--eval_window_size', type=int, default=None, help='Window size for evaluation on test set.')
parser.add_argument('--window_size', type=int, default=120, help='Number of frames to extract per sequence.')
parser.add_argument('--load', action='store_true', help='Whether to load the model with the given ID.')
config = parser.parse_args()
return Configuration(vars(config))