Source code for demo_cli

import argparse

[docs] def main(): parser = argparse.ArgumentParser() # dataset synthesis / loading settings parser.add_argument('--dataset', type=str, default='speechcommands', choices=['speechcommands', 'mnist', 'mante']) parser.add_argument('--top_n', type=int, default=10) parser.add_argument('--nbatch', type=int, default=100) parser.add_argument('--seqlen', type=int, default=200000) parser.add_argument('--stoch', type=str, default='stim', choices=['stim', 'delay', 'none'], ) parser.add_argument('--dim_ring', type=int, default=6) parser.add_argument('--sigma', type=float, default=1) # input preprocessing parser.add_argument('--center', action='store_true') parser.add_argument('--unit_std', action='store_true') parser.add_argument('--orthgonalize', action='store_true') parser.add_argument('--whiten', action='store_true') parser.add_argument('--zero_phase', action='store_true') parser.add_argument('--skip_normed_trial', action='store_true') # tau extraction methods parser.add_argument('--skip_spaced', action='store_true') parser.add_argument('--num_tau0', type=int, default=10) parser.add_argument('--filt', action='store_true') parser.add_argument('--first_unstream', action='store_true') parser.add_argument('--flattening_method', type=str, default='flat') # network and heterogeneity setup parser.add_argument('--Nnet', type=int, default=10) parser.add_argument('--N', type=int, default=250) parser.add_argument('--p', type=float, default=.1) parser.add_argument('--J', type=float, default=1.) parser.add_argument('--Ju', type=float, default=1.) parser.add_argument('--af', type=str, default='tanh') parser.add_argument('--h', type=str, default='uniform') parser.add_argument('--h_is_additive', action='store_true') parser.add_argument('--dt', type=float, default=1.) # parser.add_argument('--tau_min', type=float, default=0.) # parser.add_argument('--tau_max', type=float, default=1.) # pooling method parser.add_argument('--pooling', type=list, default=['go', 'avg', 'snapshot']) parser.add_argument('--go_length', type=int, default=10) parser.add_argument('--nsnapshot', type=int, default=10) # training settings parser.add_argument('--njobs', type=int, default=2) parser.add_argument('--cv', type=int, default=0) parser.add_argument('--Creg', type=float, nargs='+', default=[0.01, 0.1, 1., 10, 100]) parser.add_argument('--clf_name', type=str, default='logreg') # plotting parser.add_argument('--skip_plot_uvx', action='store_true') parser.add_argument('--skip_plot_man', action='store_true') # naming parser.add_argument('--name', type=str, default='test_cli') parser.add_argument('--seed', type=int, default=1234) args = parser.parse_args() demo_cfg = dict( # dataset synthesis / loading settings dataset_name=args.dataset, top_n = args.top_n, Nbatch=args.nbatch, seq_len=args.seqlen, dim_ring=args.dim_ring, sigma = args.sigma, # input preprocessing normed_trial= not args.skip_normed_trial, center=args.center, unit_std=args.unit_std, orthgonalize=args.orthgonalize, zero_phase=args.zero_phase, whiten=args.whiten, # tau extraction methods num_tau0 = args.num_tau0, filt=args.filt, first_unstream=args.first_unstream, flattening_method=args.flattening_method, # network and heterogeneity set up N = args.N, p = args.p, J = args.J, Ju= args.Ju, af=args.af, dt=args.dt, h = args.h, h_is_multiplicative = not args.h_is_additive, # tau_min = args.tau_min, # tau_max = args.tau_max, # pooling pooling_funcs = args.pooling, golength = args.go_length, nsnapshot = args.nsnapshot, # training n_jobs=args.njobs, cv=args.cv, Creg = args.Creg, clf_name = args.clf_name, # naming, seed, and the nubmer of realizations prefix = args.name, seed = args.seed, Nnet = args.Nnet, # plotting plot_uvx = not args.skip_plot_uvx, plot_man = not args.skip_plot_man, ) # machine learning demos if args.dataset in ['mnist', 'speechcommands']: import ml if not args.skip_spaced: ml.run_spaced_tau0_multinet(**demo_cfg) else: ml.run_multinet(**demo_cfg) # neuroscience demos elif args.dataset == 'mante': import ns if args.stoch == 'stim': demo_cfg['stim_period'] = [50, 10, 250] demo_cfg['delay_period']= 100 elif args.stoch == 'delay': demo_cfg['stim_period'] = 100 demo_cfg['delay_period']= [50, 10, 250] elif args.stoch == 'none': demo_cfg['stim_period'] = 100 demo_cfg['delay_period']= 1 if not args.skip_spaced: ns.run_spaced_tau0_multinet(**demo_cfg) else: ns.run_multinet(**demo_cfg) else: raise ValueError(f'Dataset name {args.dataset} not recognized.')
if __name__ == '__main__': main()