def iterate_over_experiments_suite_span_output_demo_local(start_index, stop_index):
    ann = NeocorticalNetwork(49, 30, 49, 0.01, 0.9)

    for exp_index in range(start_index, stop_index):
        current_chaotic_patterns, current_pseudopatterns = \
            Tools.retrieve_patterns_for_consolidation(exp_index, exp_index%4 + 2)  # 2-5 looped
        training_set = []

        t0 = time.time()
        ann.reset()
        for cp_subset in current_chaotic_patterns:
            training_subset = []
            for cp in cp_subset:
                training_subset.append([cp[1], cp[1]])
            for i in range(15):
                ann.train(training_subset)

        results_line = 'Neocortical module consolidation. Output as IO. Exp#'+str(exp_index)+\
                       '\n'+str(i+1)+' iters: g='+str(evaluate_goodness_of_fit(ann, get_target_patterns(exp_index%4+2)))

        ann.reset()
        for cp_subset in current_chaotic_patterns:
            training_subset = []
            for cp in cp_subset:
                training_subset.append([cp[1], cp[1]])
            for i in range(200):
                ann.train(training_subset)

        results_line += '\n'+str(i+1)+' iters: g=' + str(evaluate_goodness_of_fit(ann, get_target_patterns(exp_index % 4 + 2)))
        t1 = time.time()
        print 'Trained and evaluated performance in '+'{:8.3f}'.format(t1-t0), 'seconds'
        print results_line
        Tools.append_line_to_log(results_line)

    return ann
def iterate_over_experiments_suite(start_index, stop_index, scheme_num):
    ann = NeocorticalNetwork(49, 30, 49, 0.01, 0.9)

    for exp_index in range(start_index, stop_index):
        current_chaotic_patterns, current_pseudopatterns = \
            Tools.retrieve_patterns_for_consolidation(exp_index, exp_index%4 + 2)  # 2-5 looped
        training_set = get_training_set_from_patterns_in_scheme_full_set(current_chaotic_patterns,
                                                                         current_pseudopatterns, scheme_num)
        t0 = time.time()
        ann.reset()
        for i in range(15):
            ann.train(training_set)
        results_line = 'Neocortical module consolidation. Scheme: '+str(scheme_num)+'. Exp#'+str(exp_index)+ \
                       '\n'+str(i+1)+' iters: g='+str(evaluate_goodness_of_fit(ann, get_target_patterns(exp_index%4+2)))

        ann.reset()
        for i in range(200):
            ann.train(training_set)
        results_line += '\n'+str(i+1)+' iters: g=' + str(evaluate_goodness_of_fit(ann, get_target_patterns(exp_index % 4 + 2)))
        t1 = time.time()
        print 'Trained and evaluated performance in '+'{:8.3f}'.format(t1-t0), 'seconds'
        print results_line
        Tools.append_line_to_log(results_line)