def main()

in simulation/decai/simulation/simulate_entry_point.py [0:0]


def main():
    global agents

    # This file is set up to use different models and datasets.
    dataset = 'offensive'
    model_type = 'nb'

    assert dataset in datasets
    assert model_type in models

    train_size = datasets[dataset]['train_size']
    test_size = datasets[dataset]['test_size']
    if train_size is None:
        init_train_data_portion = 0.08
    else:
        init_train_data_portion = 100 / train_size

    # No caller (assume free to call).
    agents = agents[:-1]

    # Set up the data, model, and incentive mechanism.
    inj = Injector([
        DefaultCollaborativeTrainerModule,
        datasets[dataset]['module'],
        MurmurHash3Module,
        LoggingModule,
        models[model_type]['module'],
        StakeableImModule,
    ])
    s = inj.get(Simulator)

    # Start the simulation.
    s.simulate(agents,
               baseline_accuracy=models[model_type]['baseline_accuracy'].get(dataset),
               init_train_data_portion=init_train_data_portion,
               train_size=train_size,
               test_size=test_size,
               filename_indicator=f"{dataset}-{model_type}"
               )