def setup_default_args(self):
        """
        Setup the default arguments used by neon
        """

        self.add_argument('--version', action='version', version=neon_version)
        self.add_argument('-c', '--config', is_config_file=True,
                          help='Read values for these arguments from the '
                               'configuration file specified here first.')
        self.add_argument('-v', '--verbose', action='count', default=1,
                          help="verbosity level.  Add multiple v's to "
                               "further increase verbosity")
        # we store the negation of no_progress_bar in args.progress_bar during
        # parsing
        self.add_argument('--no_progress_bar',
                          action="store_true",
                          help="suppress running display of progress bar and "
                               "training loss")

        # runtime specifc options
        rt_grp = self.add_argument_group('runtime')
        rt_grp.add_argument('-w', '--data_dir',
                            default=os.path.join(self.work_dir, 'data'),
                            help='working directory in which to cache '
                                 'downloaded and preprocessed datasets')
        rt_grp.add_argument('-e', '--epochs', type=int, default=10,
                            help='number of complete passes over the dataset to run')
        rt_grp.add_argument('-s', '--save_path', type=str,
                            help='file path to save model snapshots')
        rt_grp.add_argument('--serialize', nargs='?', type=int,
                            default=0, const=1, metavar='N',
                            help='serialize model every N epochs')
        rt_grp.add_argument('--model_file', help='load model from pkl file')
        rt_grp.add_argument('-l', '--log', dest='logfile', nargs='?',
                            const=os.path.join(self.work_dir, 'neon_log.txt'),
                            help='log file')
        rt_grp.add_argument('-o', '--output_file', default=None,
                            help='hdf5 data file for metrics computed during '
                                 'the run, optional.  Can be used by nvis for '
                                 'visualization.')
        rt_grp.add_argument('-eval', '--eval_freq', type=int, default=None,
                            help='frequency (in epochs) to test the eval set.')
        rt_grp.add_argument('-H', '--history', type=int, default=1,
                            help='number of checkpoint files to retain')

        be_grp = self.add_argument_group('backend')
        be_grp.add_argument('-b', '--backend', choices=['cpu', 'gpu', 'mgpu', 'argon'],
                            default='gpu' if get_compute_capability() >= 3.0
                                    else 'cpu',
                            help='backend type. Multi-GPU support is a premium '
                                 'feature available exclusively through the '
                                 'Nervana cloud. Please contact '
                                 'info@nervanasys.com for details.')
        be_grp.add_argument('-i', '--device_id', type=int, default=0,
                            help='gpu device id (only used with GPU backend)')
        be_grp.add_argument('-m', '--max_devices', type=int, default=get_device_count(),
                            help='max number of GPUs (only used with mgpu backend')

        be_grp.add_argument('-r', '--rng_seed', type=int,
                            default=None, metavar='SEED',
                            help='random number generator seed')
        be_grp.add_argument('-u', '--rounding',
                            const=True,
                            type=int,
                            nargs='?',
                            metavar='BITS',
                            default=False,
                            help='use stochastic rounding [will round to BITS number '
                                 'of bits if specified]')
        be_grp.add_argument('-d', '--datatype', choices=['f16', 'f32', 'f64'],
                            default='f32', metavar='default datatype',
                            help='default floating point '
                            'precision for backend [f64 for cpu only]')
        be_grp.add_argument('-z', '--batch_size', type=int, default=128,
                            help='batch size')
        be_grp.add_argument('--caffe', action='store_true',
                            help='match caffe when computing conv and pool layer output '
                                 'sizes and dropout implementation')
        be_grp.add_argument('--deterministic', action='store_true',
                            help='Use deterministic kernels where applicable')
        return
dataset/ETHPy150Open NervanaSystems/neon/neon/util/argparser.py/NeonArgparser.setup_default_args/original