예제 #1
0
def main():
    seed = int(sys.argv[1]) if str.isdigit(sys.argv[1]) else 0
    ignore_index = [int(x) for x in sys.argv[2].split(',') if str.isdigit(x)]
    type = sys.argv[3]
    rnn_file = sys.argv[4]
    sequence_file = sys.argv[5]

    rnn_runner.init_genrand(seed)
    runner = rnn_runner.RNNRunner()
    runner.init(rnn_file)
    runner.set_time_series_id()

    p = re.compile(r'(^#)|(^$)')
    out_state_queue = []
    for line in open(sequence_file, 'r'):
        if p.match(line) == None:
            input = map(float, line[:-1].split())
            if len(out_state_queue) >= runner.delay_length():
                out_state = out_state_queue.pop(0)
                for i in ignore_index:
                    input[i] = out_state[i]
            runner.in_state(input)
            runner.update()
            out_state = runner.out_state()
            if type == 'o':
                print '\t'.join([str(x) for x in out_state])
            elif type == 'c':
                c_state = runner.c_state()
                print '\t'.join([str(x) for x in c_state])
            elif type == 'a':
                c_state = runner.c_state()
                print '\t'.join([str(x) for x in out_state + c_state])
            out_state_queue.append(out_state)
예제 #2
0
def main():
    seed, length, samples, truncate_length, block_length, divide_num = \
            map(lambda x: int(x) if str.isdigit(x) else 0, sys.argv[1:7])
    rnn_file = sys.argv[7]
    rnn_runner.init_genrand(seed)
    runner = rnn_runner.RNNRunner()
    runner.init(rnn_file)
    print get_KL_div(length, samples, truncate_length, block_length,
                     divide_num, runner, sys.argv[8:])
예제 #3
0
파일: rnn_kl_div.py 프로젝트: SunLinJie/rnn
def main():
    seed, length, samples, truncate_length, block_length, divide_num = \
            [int(x) if str.isdigit(x) else 0 for x in sys.argv[1:7]]
    rnn_file = sys.argv[7]
    rnn_runner.init_genrand(seed)
    runner = rnn_runner.RNNRunner()
    runner.init(rnn_file)
    print(get_KL_div(length, samples, truncate_length, block_length,
            divide_num, runner, sys.argv[8:]))
예제 #4
0
def main():
    seed = int(sys.argv[1]) if str.isdigit(sys.argv[1]) else 0
    ignore_index = [int(x) for x in sys.argv[2].split(',') if str.isdigit(x)]
    type = sys.argv[3]
    rnn_file = sys.argv[4]
    sequence_file = sys.argv[5]

    rnn_runner.init_genrand(seed)
    runner = rnn_runner.RNNRunner()
    runner.init(rnn_file)
    runner.set_time_series_id(-1)

    ignore_index = [i for i in ignore_index if i >= 0 and i <
            runner.in_state_size() and i < runner.out_state_size()]

    p = re.compile(r'(^#)|(^$)')
    out_state_queue = []
    for line in open(sequence_file, 'r'):
        if p.match(line) == None:
            input = list(map(float, line[:-1].split()))
            if len(out_state_queue) >= runner.delay_length():
                out_state = out_state_queue.pop(0)
                for i in ignore_index:
                    input[i] = out_state[i]
            runner.in_state(input[:runner.in_state_size()])
            runner.update()
            out_state = runner.out_state()
            if type == 'o':
                print('\t'.join([str(x) for x in out_state]))
            elif type == 'c':
                c_state = runner.c_state()
                print('\t'.join([str(x) for x in c_state]))
            elif type == 'a':
                c_state = runner.c_state()
                print('\t'.join([str(x) for x in out_state + c_state]))
            out_state_queue.append(out_state)