type="int", default=0, help="Skip this many steps between samples") parser.add_option( "--alsoprint", dest="ALSO_PRINT", type="string", default="None", help= "A function of a hypothesis we can also print at the start of a line to see things we " "want. E.g. --alsoprint='lambda h: h.get_knower_pattern()' ") (options, args) = parser.parse_args() from LOTlib.Miscellaneous import display_option_summary display_option_summary(options) # ======================================================================================================== # Load the model specified on the command line # ======================================================================================================== from LOTlib.Examples import load_example make_hypothesis, make_data = load_example(options.MODEL) # ======================================================================================================== # Run the example's standard sampler with these parameters # ======================================================================================================== from LOTlib.Inference.Samplers.StandardSample import standard_sample
# ======================================================================================================== # Process command line arguments # ======================================================================================================== from optparse import OptionParser parser = OptionParser() parser.add_option("--model", dest="MODEL", type="string", default="Number", help="Which model do we run? (e.g. 'Number', 'Magnetism.Simple', etc.") parser.add_option("--skip", dest="SKIP", type="int", default=0, help="Skip this many steps between samples") parser.add_option("--alsoprint", dest="ALSO_PRINT", type="string", default="None", help="A function of a hypothesis we can also print at the start of a line to see things we " "want. E.g. --alsoprint='lambda h: h.get_knower_pattern()' ") (options, args) = parser.parse_args() display_option_summary(options) # ======================================================================================================== # Load the model specified on the command line # ======================================================================================================== from LOTlib.Examples.ExampleLoader import load_example make_hypothesis, make_data = load_example(options.MODEL) # ======================================================================================================== # Run the example's standard sampler with these parameters # ======================================================================================================== # This is just a wrapper that nicely prints information standard_sample(make_hypothesis, make_data, alsoprint=options.ALSO_PRINT, skip=options.SKIP)
parser.add_option("--top", dest="TOP_COUNT", type="int", default=20, help="Top number of hypotheses to store") parser.add_option("--finite", dest="FINITE", type="int", default=10, help="specify the max_length to make language finite") parser.add_option("--name", dest="NAME", type="string", default='', help="name of file") parser.add_option("--N", dest="N", type="int", default=3, help="number of inner hypotheses") parser.add_option("--terminal", dest="TERMINALS", type="string", default='', help="extra terminals") parser.add_option("--bound", dest="BOUND", type="int", default=5, help="recursion bound") (options, args) = parser.parse_args() prefix = 'out/' # prefix = '/home/lijm/WORK/yuan/lot/' suffix = time.strftime('_' + options.NAME + '_%m%d_%H%M%S', time.localtime()) # set the output codec -- needed to display lambda to stdout sys.stdout = codecs.getwriter('utf8')(sys.stdout) if rank == 0: display_option_summary(options); fff() # you need to run 12 machine on that DATA_RANGE = np.arange(0, 70, 6) # DATA_RANGE = np.arange(70, 140, 6) language = instance(options.LANG, options.FINITE) args = list(itertools.product([make_hypothesis], [language], DATA_RANGE)) # run on MPI # results = MPI_map(run, args) hypotheses = simple_mpi_map(run, args) # ======================================================================================================== # Get stats # ========================================================================================================
mpiexec -n 12 python my_search_stp.py --language=Dyck --finite=8 --N=2 --terminal=b --bound=7 --steps=100000 mpiexec -n 12 python my_search_stp.py --language=SimpleEnglish --finite=8 --N=3 --bound=5 --steps=100000 """ # ======================================================================================================== # Process command line arguments / # ======================================================================================================== fff = sys.stdout.flush parser = OptionParser() parser.add_option("--language", dest="LANG", type="string", default='An', help="name of a language") parser.add_option("--steps", dest="STEPS", type="int", default=40000, help="Number of samples to run") parser.add_option("--top", dest="TOP_COUNT", type="int", default=20, help="Top number of hypotheses to store") parser.add_option("--finite", dest="FINITE", type="int", default=10, help="specify the max_length to make language finite") parser.add_option("--name", dest="NAME", type="string", default='', help="name of file") parser.add_option("--N", dest="N", type="int", default=3, help="number of inner hypotheses") parser.add_option("--terminal", dest="TERMINALS", type="string", default='', help="extra terminals") parser.add_option("--bound", dest="BOUND", type="int", default=5, help="recursion bound") (options, args) = parser.parse_args() prefix = 'out/' # prefix = '/home/lijm/WORK/yuan/lot/' suffix = time.strftime('_' + options.NAME + '_%m%d_%H%M%S', time.localtime()) sys.stdout = codecs.getwriter('utf8')(sys.stdout) if rank == 0: display_option_summary(options); fff() DATA_RANGE = np.arange(0, 70, 6) language = instance(options.LANG, options.FINITE) args = list(itertools.product([make_hypothesis], [language], DATA_RANGE)) hypotheses = simple_mpi_map(run, args)
fff = sys.stdout.flush parser = OptionParser() parser.add_option("--language", dest="LANG", type="string", default='An', help="name of a language") parser.add_option("--steps", dest="STEPS", type="int", default=40000, help="Number of samples to run") parser.add_option("--skip", dest="SKIP", type="int", default=100, help="Print out every this many") parser.add_option("--top", dest="TOP_COUNT", type="int", default=20, help="Top number of hypotheses to store") parser.add_option("--name", dest="NAME", type="string", default='', help="name of file") parser.add_option("--N", dest="N", type="int", default=3, help="number of inner hypotheses") parser.add_option("--terminal", dest="TERMINALS", type="string", default='', help="extra terminals") parser.add_option("--bound", dest="BOUND", type="int", default=5, help="recursion bound") parser.add_option("--out", dest="OUT", type="str", default="out/", help="Output directory") (options, args) = parser.parse_args() global prefix prefix = options.OUT global suffix suffix = time.strftime('_' + options.NAME + '_%m%d_%H%M%S', time.localtime()) sys.stdout = codecs.getwriter('utf8')(sys.stdout) if rank == 0: display_option_summary(options); fff() #DATA_RANGE = np.arange(120, 264, 12) DATA_RANGE = np.arange(100, 50000, 100) random.shuffle(DATA_RANGE) # run in random order args = list(itertools.product([options], DATA_RANGE)) # run(options, 1000) hypotheses = simple_mpi_map(run, args)