Example #1
0
    def test_iter_grid(self):
        grid = dict(a=[], b=[])
        self.assertCountEqual(list(utils_impl.iter_grid(grid)), [])

        grid = dict(a=[1])
        self.assertCountEqual(list(utils_impl.iter_grid(grid)), [dict(a=1)])

        grid = dict(a=[1, 2])
        self.assertCountEqual(list(utils_impl.iter_grid(grid)),
                              [dict(a=1), dict(a=2)])

        grid = dict(a=[1, 2], b='b', c=[3.0, 4.0])
        self.assertCountEqual(list(utils_impl.iter_grid(grid)), [
            dict(a=1, b='b', c=3.0),
            dict(a=1, b='b', c=4.0),
            dict(a=2, b='b', c=3.0),
            dict(a=2, b='b', c=4.0)
        ])
Example #2
0
def main(argv):
    if len(argv) > 1:
        raise app.UsageError('Too many command-line arguments.')

    target = '//tensorflow_federated/python/research/gans/experiments/emnist:train'
    executable = 'bazel run {} --'.format(target)

    grid_iter = utils_impl.iter_grid({
        'filtering': ['by_user'],
        'invert_imagery_probability': ['0p0', '0p5'],
        'accuracy_threshold': ['lt0p882', 'gt0p939'],
        'num_client_disc_train_steps': [6],
        'num_server_gen_train_steps': [6],
        'num_clients_per_round': [10],
        'num_rounds': [1000],
        'use_dp': [True],
        'dp_l2_norm_clip': [0.1],
        'dp_noise_multiplier': [0.01],
        'num_rounds_per_eval': [10],
        'num_rounds_per_save_images': [10]
    })

    utils_impl.launch_experiment(executable,
                                 grid_iter,
                                 root_output_dir='/tmp/exp',
                                 short_names={
                                     'filtering': 'filt',
                                     'invert_imagery_probability': 'inv_lik',
                                     'accuracy_threshold': 'acc',
                                     'num_client_disc_train_steps': 'n_disc',
                                     'num_server_gen_train_steps': 'n_gen',
                                     'dp_l2_norm_clip': 'dp_clip',
                                     'dp_noise_multiplier': 'dp_noise',
                                     'num_rounds_per_eval': 'n_rds_eval',
                                     'num_rounds_per_save_images':
                                     'n_rds_images'
                                 },
                                 max_workers=1)
    print('Experiments launched.')