diff --git a/fluid/Recommender/gru4rec/data_preprocess.py b/fluid/Recommender/gru4rec/data_preprocess.py deleted file mode 100644 index 930ffcc1cbdbe30951ff57a7956491252c285237..0000000000000000000000000000000000000000 --- a/fluid/Recommender/gru4rec/data_preprocess.py +++ /dev/null @@ -1,79 +0,0 @@ -""" -imikolov's simple dataset. -This module will download dataset from -http://www.fit.vutbr.cz/~imikolov/rnnlm/ and parse training set and test set -into paddle reader creators. -""" - -from __future__ import print_function - -import paddle.dataset.common -import collections -import tarfile -import six - -__all__ = ['train', 'test', 'build_dict', 'convert'] - - - -class DataType(object): - SEQ = 2 - - -def word_count(f, word_freq=None): - if word_freq is None: - word_freq = collections.defaultdict(int) - - for l in f: - for w in l.strip().split(): - word_freq[w] += 1 - - return word_freq - - -def build_dict(min_word_freq=50,train_filename="",test_filename=""): - """ - Build a word dictionary from the corpus, Keys of the dictionary are words, - and values are zero-based IDs of these words. - """ - with open(train_filename) as trainf: - with open(test_filename) as testf: - word_freq = word_count(testf, word_count(trainf)) - - if '' in word_freq: - # remove for now, since we will set it as last index - del word_freq[''] - - word_freq = [ - x for x in six.iteritems(word_freq) if x[1] > min_word_freq - ] - word_freq_sorted = sorted(word_freq, key=lambda x: (-x[1], x[0])) - words, _ = list(zip(*word_freq_sorted)) - word_idx = dict(list(zip(words, six.moves.range(len(words))))) - - return word_idx - - -def reader_creator(filename, word_idx, n, data_type): - def reader(): - with open(filename) as f: - for l in f: - if DataType.SEQ == data_type: - l = l.strip().split() - l = [word_idx.get(w) for w in l] - src_seq = l[:len(l)-1] - trg_seq = l[1:] - if n > 0 and len(src_seq) > n: continue - yield src_seq, trg_seq - else: - assert False, 'error data type' - - return reader - - -def train(filename,word_idx, n, data_type=DataType.SEQ): - return reader_creator(filename, word_idx, n, - data_type) -def test(filename,word_idx, n, data_type=DataType.SEQ): - return reader_creator(filename, word_idx, n, - data_type) diff --git a/fluid/Recommender/gru4rec/infer.py b/fluid/Recommender/gru4rec/infer.py deleted file mode 100644 index a4667f9308bb0c312df3fa5c0a41719d36d9fabc..0000000000000000000000000000000000000000 --- a/fluid/Recommender/gru4rec/infer.py +++ /dev/null @@ -1,66 +0,0 @@ -import sys -import time -import math -import unittest -import contextlib -import numpy as np -import six -import paddle.fluid as fluid -import paddle - -import utils - -def infer(test_reader, use_cuda, model_path): - """ inference function """ - place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace() - exe = fluid.Executor(place) - - with fluid.scope_guard(fluid.core.Scope()): - infer_program, feed_target_names, fetch_vars = fluid.io.load_inference_model(model_path, exe) - accum_num_recall = 0.0 - accum_num_sum = 0.0 - t0 = time.time() - step_id = 0 - for data in test_reader(): - step_id += 1 - src_wordseq = utils.to_lodtensor([dat[0] for dat in data], place) - label_data = [dat[1] for dat in data] - dst_wordseq = utils.to_lodtensor(label_data, place) - para = exe.run( - infer_program, - feed={"src_wordseq": src_wordseq, - "dst_wordseq": dst_wordseq}, - fetch_list=fetch_vars, - return_numpy=False) - - acc_ = para[1]._get_float_element(0) - data_length = len(np.concatenate(label_data, axis=0).astype("int64")) - accum_num_sum += (data_length) - accum_num_recall += (data_length*acc_) - if step_id % 100 == 0: - print("step:%d " % (step_id), accum_num_recall/accum_num_sum) - t1 = time.time() - print("model:%s recall@20:%.3f time_cost(s):%.2f" % - (model_path, accum_num_recall/accum_num_sum, t1 - t0)) - - -if __name__ == "__main__": - if len(sys.argv) != 4: - print("Usage: %s model_dir start_epoch last_epoch(inclusive)") - exit(0) - - model_dir = sys.argv[1] - try: - start_index = int(sys.argv[2]) - last_index = int(sys.argv[3]) - except: - iprint("Usage: %s model_dir start_ipoch last_epoch(inclusive)") - exit(-1) - train_file = "small_train.txt" - test_file = "small_test.txt" - vocab, train_reader, test_reader = utils.prepare_data(train_file, test_file, - batch_size=5, buffer_size=1000, word_freq_threshold=0) - - for epoch in xrange(start_index, last_index + 1): - epoch_path = model_dir + "/epoch_" + str(epoch) - infer(test_reader=test_reader, use_cuda=True, model_path=epoch_path) diff --git a/fluid/Recommender/gru4rec/small_test.txt b/fluid/Recommender/gru4rec/small_test.txt deleted file mode 100644 index d0f4730a3425c016ec938a14c67a539a714a62f7..0000000000000000000000000000000000000000 --- a/fluid/Recommender/gru4rec/small_test.txt +++ /dev/null @@ -1,1000 +0,0 @@ -214586805 214509260 -214857547 214857268 214857260 -214859848 214857787 -214687963 214531502 214687963 -214696532 214859034 214858850 -214857570 214857810 214857568 214857787 214857182 -214857562 214857570 214857562 214857568 -214859132 214545928 214859132 214551913 -214858843 214859859 214858912 214858691 214859900 -214561888 214561888 -214688430 214688435 214688430 -214536302 214531376 214531659 214531440 214531466 214513382 214550996 -214854930 214854930 -214858856 214690775 214859306 -214859872 214858912 214858689 -214859310 214859338 214859338 214859942 214859293 214859889 214859338 214859889 214859075 214859338 214859338 214859889 -214574906 214574906 -214859342 214859342 214858777 214851155 214851152 214572433 -214537127 214857257 -214857570 214857570 214857568 214857562 214857015 -214854352 214854352 214854354 -214738466 214855010 214857605 214856552 214574906 214857765 214849299 -214858365 214859900 214859126 214858689 214859126 214859126 214857759 214858850 214859895 214859300 -214857260 214561481 214848995 214849052 214865212 -214857596 214819412 214819412 -214849342 214849342 -214859902 214854845 214854845 214854825 -214859306 214859126 214859126 -214644962 214644960 214644958 -214696432 214696434 -214708372 214508287 214684093 -214857015 214857015 214858847 214690130 -214858787 214859855 -214858847 214696532 214859304 214854845 -214586805 214586805 -214857568 214857570 -214696532 214858850 214859034 214569238 214568120 214854165 214684785 214854262 214567327 -214602729 214857568 214857596 -214859122 214858687 214859122 214859872 -214555607 214836225 214836225 214836223 -214849299 214829724 214855010 214829801 214574906 214586722 214684307 214857570 -214859872 214695525 -214845947 214586722 214829801 -214829312 214546123 -214849055 214849052 -214509260 214587932 214596435 214644960 214696432 214696434 214545928 214857030 214636329 214832604 214574906 -214586805 214586805 -214587932 214587932 -214857568 214857549 214854894 -214836819 214836819 214595855 214595855 -214858787 214858787 -214854860 214857701 -214848750 214643908 -214858847 214859872 214859038 214859855 214690130 -214847780 214696817 214717305 -214509260 214509260 -214853122 214853122 214853122 214853323 -214858847 214858631 214858691 -214859859 214819807 214853072 214853072 214819730 -214820450 214705115 214586805 -214858787 214859036 -214829842 214864967 -214846033 214850949 -214587932 214586805 214509260 214696432 214855110 214545928 -214858856 214859081 214859306 214858854 -214690839 214690839 214711277 214839607 214582942 214582942 -214857030 214832604 -214857570 214855046 214859870 214577475 214858687 214656380 -214854845 214854845 214854684 214859893 214854845 214854778 -214850630 214848159 214848159 214848159 214848159 214848159 214848159 214848159 -214856248 214856248 -214858365 214858905 214858905 -214712274 214855046 -214845947 214845947 214831946 214717511 214846014 214854729 -214561462 214561462 214561481 214561481 -214836819 214853250 -214858854 214859915 214859306 214854300 -214857660 214857787 214539307 214855010 214855046 214849299 214856981 214849055 -214855046 214854877 214568102 214539523 214579762 214539347 214641127 214600995 214833733 214600995 214684633 214645121 214658040 214712276 214857660 214687895 214854313 214857517 -214845962 214853165 214846119 -214854146 214859034 -214819412 214819412 214819412 214819412 -214849747 214578350 214561991 -214854341 214854341 -214644855 214644857 214531153 -214644960 214862167 -214640490 214600918 214600922 -214854710 214857759 214859306 -214858843 214859297 214858631 214859117 214858689 214858912 214859902 214690127 -214586805 214586805 -214859306 214859306 214859126 -214859034 214696532 214858850 214859126 214859859 214859034 214859859 214858850 -214857782 214849048 214857787 -214854148 214857787 214854877 -214858631 214858631 214690127 214859034 214858850 214859117 214858631 214859300 214858843 214859859 214859859 -214646036 214646036 -214858847 214858631 214690127 214859297 -214861603 214700002 214700000 214835117 214700000 214857830 214700000 214712235 214700000 214700002 214510700 214835713 214712235 214853321 -214854855 214854815 214854815 -214857185 214854637 214829765 214848384 214829765 214856546 214848596 214835167 214563335 214553837 214536185 214855982 214845515 214550844 214712006 -214718160 214516142 214848596 214848384 214849314 214829765 214561475 214718160 214718160 214718160 214854924 214856546 214558258 214856546 214718160 214717888 214846125 214580351 214516147 214846125 -214857260 214857268 -214855046 214849299 214856552 214857182 -214858689 214690727 214859117 214858631 214858365 214858856 -214854774 214854774 -214840762 214840762 214844195 214586983 214840762 214840762 214586983 214842347 214842345 214842350 214842347 214844195 214844184 -214587952 214587952 214644960 214840740 214840740 -214857549 214849052 214857549 214857568 -214586805 214509260 -214509013 214509013 214509013 214509013 -214648252 214854872 -214700885 214531550 214531550 214711965 214711965 -214748289 214839950 214848995 -214819472 214819472 -214857257 214857257 -214857260 214857260 214857268 214857268 214857268 -214855046 214855010 214855010 -214829724 214849299 214586722 214849299 214850280 -214854774 214854774 -214857260 214857268 -214636329 214636329 -214859919 214859872 214859900 214690127 214690127 214858631 214859117 214858843 214859859 214858914 214858689 -214857787 214539307 -214859122 214688677 214696434 -214853128 214536187 214853165 -214696434 214644962 214855110 214586805 214696434 -214858847 214690127 214859117 214859872 214859897 214859126 214577505 214858843 -214857257 214857562 214857568 214857570 214857562 -214695326 214696337 214696337 -214849052 214849052 -214587932 214586805 -214857568 214857549 214857549 214857810 214857570 214848995 -214509260 214586810 -214829765 214829765 -214532038 214840382 -214680371 214712235 -214859034 214859034 214858850 214859895 214859300 214857757 214859919 214858854 214690727 214858856 214690775 214859126 214540301 214540299 214859092 214690727 214690775 214858854 214858691 -214858856 214859919 214858854 214859915 214858854 214859081 214859306 214857050 214859036 -214572433 214854872 -214857787 214539307 -214857570 214854894 214857570 -214859876 214854845 214854845 214854778 214819772 -214864498 214858680 -214712244 214712244 -214858687 214859942 214859122 214859889 214858687 214859889 214859092 214859122 214859122 214859036 214857050 214858693 214859942 214859889 214859124 214857759 214859897 214858785 214859940 214859940 214859094 214858847 214859038 214858794 -214858843 214858843 -214851281 214859310 214859126 -214516738 214639299 214518555 -214857260 214644639 -214859126 214859895 214859300 -214854915 214854915 -214853250 214551913 214691531 214855198 -214857547 214857268 -214857257 214857260 214857182 214571413 214684205 214857182 -214851326 214852978 214853094 -214859915 214859915 214859855 -214859242 214835126 214835126 214835126 214835126 214835126 -214861603 214704182 214853355 214646653 -214853437 214697912 214697917 214849605 214849652 214774674 214829034 214651419 214838075 214827069 -214858631 214859117 214858689 214858843 214858691 214858847 -214853102 214854804 -214690775 214690727 214858854 214857757 214859915 214858847 214858856 214858854 214568111 214690775 -214859306 214858856 214690775 214858856 -214859859 214859859 214859859 214858631 214858847 214858631 214858631 214858631 214858631 214859859 214859859 -214690127 214858631 214859117 214858631 214577503 214859859 214859859 214859859 -214575377 214854722 -214858856 214690775 214690727 214857757 214859915 214859306 214858914 214859034 214696532 214859034 214858850 214859300 214859300 214859300 214858691 214859034 214858691 214858903 214859126 214859859 214858912 214859306 214858633 214859081 214859908 214859876 214858779 214858790 214857005 214857005 214859090 214859090 214859882 214858687 214859075 214858363 214858691 214858363 214858691 214858363 214858779 214859908 -214710159 214850291 -214850945 214853135 -214553426 214854962 214859092 214859122 -214857172 214865117 -214853100 214854782 -214859034 214859300 214858689 214859126 -214586805 214586810 -214858856 214690775 214857757 214696532 214859034 214858903 -214748289 214865212 -214821386 214857182 -214586805 214531153 214644857 214644855 214835392 -214859895 214859126 214859919 214859915 214858794 214859872 214859870 214859293 214861455 214861455 214861455 214859895 214859915 214859870 214857557 -214859872 214859900 214859293 214859293 -214643036 214848324 214848324 214643060 214643036 -214858687 214859872 214858785 214690730 214690727 214859094 214690775 214859306 -214857570 214857570 214859870 214859870 214858787 214858787 -214644962 214644960 -214829820 214510057 -214690730 214858631 214859094 214858847 214690130 214859094 214568124 214851097 214690127 214859117 214568117 -214696434 214696432 214696432 214696432 -214859859 214859859 214859859 214858914 -214858847 214858631 214690127 214859859 214858914 214858912 214585676 214859293 -214854894 214854894 -214580462 214712242 214819811 -214859306 214859034 -214857570 214857570 -214857757 214587952 -214858847 214859094 214858794 214859872 214858691 214858843 214858689 214859859 -214859240 214859240 214676606 214859139 -214857605 214712274 214857605 214712274 -214587932 214587932 -214838615 214696627 -214712235 214862317 214700000 -214712235 214700000 -214857260 214857260 214857568 -214854733 214697306 214857172 214857757 214859915 214854733 214857757 214859915 214858365 -214859117 214859117 214854358 214853726 214853726 214690775 214853848 -214854894 214665277 -214688115 214845395 214857596 214572230 -214832604 214832604 -214858365 214857587 214858852 -214704180 214704180 214704180 -214849052 214849048 -214560622 214857268 -214853250 214535649 -214535649 214853250 -214853090 214853090 -214858903 214858903 -214691531 214691531 -214857562 214857562 214857774 214857562 214857562 214857562 -214586805 214586805 -214748289 214858333 -214849055 214849048 -214857570 214839950 214858854 214690727 214859919 -214858794 214858631 214690127 214858631 214858843 214858794 -214587932 214509260 -214587932 214586805 -214857547 214857260 214865212 -214567327 214859915 214586805 -214644159 214853402 -214859872 214858691 214858912 214858689 214859859 214858790 -214587952 214644962 214587952 214644962 -214851122 214854538 214714779 214717247 214853713 214854731 214820345 -214606387 214606387 214859240 -214853090 214853090 -214586805 214840740 214509842 214534693 214840740 214853139 214853282 214853139 214853139 214534693 -214857757 214857759 214859895 214859126 -214602322 214711822 -214586805 214586722 214705115 -214858856 214859306 -214858856 214859034 214859126 214859859 -214560510 214560510 -214586805 214586805 -214853072 214859872 214857759 214858847 214859908 214859876 -214859859 214858914 214859859 -214561462 214561462 -214857568 214854877 214859908 214859293 -214853422 214829882 -214857015 214859872 214859306 214859126 214858689 214859126 214858905 -214859034 214858850 214859855 -214708271 214859859 -214854845 214854845 -214859859 214859859 -214859859 214859859 -214859857 214859857 214858365 214858365 214858856 214858856 -214853754 214853754 -214748295 214748295 214748304 214748304 214748291 -214829822 214540575 214853304 214686056 -214864967 214864967 -214572433 214849299 214690734 214854810 -214586805 214586805 214509260 -214857759 214828970 -214859139 214859139 -214838128 214582935 -214864847 214864845 -214859846 214859846 -214857568 214857568 214857562 214857570 214854877 -214858850 214858850 214858850 -214859034 214859034 214858850 -214854915 214571246 -214857568 214848995 214859908 214858790 214857005 -214857182 214856552 -214820383 214820383 214820227 -214705991 214705991 -214857570 214857562 -214858779 214859075 214858687 214858687 214859870 214854920 214858363 214859090 214859942 214859338 -214857695 214857695 214861464 -214857260 214857568 214857268 214857260 -214686879 214686879 -214844347 214844347 214844347 214851290 214677615 214849312 214844347 214832747 214844347 214829366 214832747 214844347 214829366 214844347 -214857568 214857570 -214690775 214858856 214858856 -214858631 214859859 214858691 214819412 214819412 -214858856 214858854 214690727 214858854 214859859 214858691 214690775 214858854 214690727 214858854 214819412 -214819412 214857587 214857268 214857260 214561481 214849055 -214853094 214853707 -214820450 214857787 -214857268 214849052 214853891 214857660 214855046 214829724 214712276 214857596 214819412 214858333 214690734 -214712276 214857182 214849299 214857579 214850280 -214855198 214691531 214855198 -214700000 214700000 214680371 214680371 214700000 214700000 214680371 214680371 214680371 -214854637 214854637 -214819730 214819807 214819730 -214596435 214587932 214587932 214587932 214587932 214587932 -214859859 214858914 214858843 214858691 214858631 214859117 214859306 214858365 214857172 214855057 214859859 214858633 -214854330 214854583 214687685 -214858856 214690775 -214859038 214858785 214859855 214859855 214858794 214576468 214859876 214859908 214859882 214858779 214857562 -214859859 214858843 -214690130 214858847 214690130 214858856 214690775 214859872 214854701 214857776 214857830 -214820201 214859859 214858914 214859859 214858856 214858856 214690775 -214656240 214714715 214854804 -214710159 214849048 214710159 -214617015 214617015 -214853090 214851326 -214853072 214565557 214510460 214857540 -214714715 214714715 214847780 214705723 214675925 214510460 -214859306 214859872 214854510 214859876 214859908 214859876 214859122 214859092 214859036 214859120 -214854894 214853887 214855095 -214846727 214846727 -214856880 214857399 214658004 -214708271 214690130 214708271 214690130 -214587952 214836819 214595855 -214837417 214837417 -214859117 214859297 214858912 214858787 -214858689 214851077 214851077 214851077 214854174 214744775 214744775 214753515 214714755 214854733 214851013 214853732 214853724 214854731 214839311 214854845 214859904 214854825 214550996 214551000 214550998 214542326 214586687 214829278 214708631 214859904 214854825 214851077 214760606 214858905 -214859872 214858843 214858912 214859126 214858689 214854778 214854845 214859904 214854703 214859893 -214858843 214858912 -214854791 214857568 214857568 214856231 -214858687 214859882 214859942 214858363 214857005 214690130 214859855 214859038 214859124 214858785 214859085 214859940 214859940 214858794 214859870 214859090 214857759 214854920 214854920 214858687 214859124 -214854733 214859300 214859034 214859895 -214687895 214687895 -214850865 214850874 -214857547 214857268 214857260 214713401 -214691531 214691531 -214848596 214561775 214574906 214855012 214857765 -214853122 214853122 -214644962 214644960 214587952 -214853102 214854782 214853102 -214857557 214849055 214848995 214819412 214648603 -214836819 214595855 214596435 -214857260 214855046 -214678196 214744265 214678196 -214859876 214859338 214688677 -214857596 214857575 -214859859 214859859 214859859 214859859 214859859 -214851099 214836330 -214859139 214859139 214850947 -214586805 214586805 -214859122 214858687 -214864843 214820450 -214690727 214859915 214690775 214851163 214856908 214859859 214858914 214859895 214853992 214858856 214696532 214859126 214859297 214859300 214858856 214690727 -214849736 214850364 214849136 -214859081 214859081 -214696736 214858787 214859870 -214857257 214857257 -214537151 214651571 214677545 214643672 214849532 -214561462 214561462 -214858847 214859038 214859855 214859872 214858794 214857568 214857570 -214857210 214532955 -214646651 214567078 -214859919 214859895 214859876 214859908 214859870 214859882 -214854894 214857596 214849052 214857596 214857596 214854894 214854894 214854894 214853102 214849376 214853090 214853094 214853094 214852980 214853090 214859919 214583670 214853996 214849466 214851735 -214854110 214854110 214849554 214849550 -214859306 214858689 214858631 214859855 -214849361 214853437 -214853072 214839200 214850724 214696627 -214857570 214857268 214857774 214856550 214857570 214857262 214857257 -214848324 214848746 -214849299 214746386 -214586805 214509260 214586805 214509260 214509260 -214550409 214515823 214550398 214550409 214515823 214550409 214515823 214550398 214574141 -214857568 214854877 -214850945 214846014 214850945 -214854332 214848159 -214832604 214852155 214708303 214864880 214850942 214850942 214850942 214846012 214829882 214853422 214829102 214849747 214852292 -214857568 214857570 214857260 214857568 214572907 214574726 214561500 214854808 -214859895 214859870 214858787 214859870 214859900 214859855 214859857 214858787 214859900 -214858847 214858794 214859872 214858687 214859870 -214858689 214859908 -214517445 214517445 -214834925 214851152 214851152 214851155 -214858912 214684942 214716746 214853865 214820396 214851236 214849320 214853242 -214510689 214835713 214835120 -214829887 214859297 214858856 214858365 214859306 214859855 214685049 214858912 214858794 214859855 214848605 214859300 214820769 214854146 214859857 214859857 214690775 214858854 214854510 214851077 214858792 214857005 214854510 214858903 214858365 214855982 214854637 214856546 214853715 214858914 214859859 214859300 214859297 214716746 214849320 214853865 214820396 214851236 214859859 214859306 214859300 214859126 -214858903 214859859 214858691 214858691 214858903 214857549 -214746457 214687959 214687959 -214638474 214638474 -214858914 214858914 214858914 214858914 -214857568 214862167 214853887 214857596 -214844070 214843528 214843460 214843528 214844070 -214849440 214853199 214709722 214701086 -214690127 214859117 214858689 214859117 214690127 -214628923 214676486 214676486 214853657 214676486 -214858363 214859882 214859908 214859092 214859870 214858363 214859942 -214628923 214676486 214853657 214676486 214544355 214544550 214695667 214544550 214676486 214628923 214851609 214628923 -214512675 214512680 214859062 -214857570 214857568 214857570 -214819577 214854579 214848658 214854527 -214857260 214640012 214586805 214703904 214857575 -214859242 214586805 214587932 214835000 214704182 214857830 214839950 214819807 214572433 214836819 214836819 214704182 214858854 214859081 214851032 214859139 214859139 214857757 214851032 214858365 214851032 214859297 214704180 214696432 214696432 214572433 214677465 214858852 214687895 214714715 214854780 214743367 214854230 214853327 214856981 214835117 214859240 214859242 214859240 214859242 214650508 214864432 214859872 -214859126 214696532 214859034 -214829724 214849299 214856552 214855010 214850280 214572433 214858852 214571246 214855020 214854915 -214849052 214854877 214854960 214858333 214571246 214571246 214554510 214708305 214554510 214708305 -214717777 214834914 214834914 214834914 -214857562 214857570 -214829807 214691531 214853887 214644962 214644960 -214858914 214859859 214859081 214859081 214690727 -214859094 214690730 214858854 214858847 -214858847 214690130 214859094 214859872 214858847 214690127 214859117 -214587932 214586805 -214851281 214656240 -214748289 214748289 214819412 214858852 -214850743 214718169 -214690775 214858856 214859081 -214849052 214849052 -214668759 214677875 -214849295 214570517 214854508 -214676480 214577709 214854774 214580462 214819730 214853072 214849132 -214690730 214858854 214859919 -214691531 214696432 -214571246 214854872 214571246 214571246 -214854894 214857570 214857787 214854825 214857787 -214510820 214672948 214836800 214702809 214702811 -214857549 214857568 -214644962 214644958 -214858854 214859893 214690727 -214857268 214857549 -214587932 214644962 -214691531 214691338 214838390 214840779 214840779 214691349 214840779 214843376 214840918 214714880 214691396 214840811 214691357 214691471 214691342 -214853657 214853657 -214586805 214509260 214586810 214509260 -214696532 214858914 214859859 -214859859 214859859 214858914 -214587932 214535649 214853887 -214853085 214851326 214853090 -214858850 214696532 214859034 -214829844 214829844 214846340 214844053 214832413 214832417 214853707 214716110 214753515 214588830 214716080 214716073 214716073 214691190 214556942 214554283 214839971 214554283 214857810 214576693 -214850949 214556212 214538201 214530922 -214857260 214857549 -214859900 214859895 214859895 214856550 214851585 214851577 214557009 214846333 -214858854 214858856 214859081 214858847 214858847 214690127 214858631 214859117 214858631 214858631 214690127 214859297 214854845 214568124 214567215 -214859300 214581637 214857442 214857446 214858365 214859034 214858850 214859300 214859297 214829842 -214551930 214774678 -214602240 214602225 -214509260 214587932 -214858691 214854825 -214859859 214859300 214858777 -214858687 214859870 -214546027 214545879 214545883 214545851 214853218 214545851 -214851845 214857787 -214851135 214858687 214859075 214854819 214854298 214820345 214853730 214854352 -214853754 214577709 214853754 -214855046 214854913 214857182 214849299 214820450 214705115 214857605 214712274 214574906 214829801 214857765 -214859915 214859085 214859124 214850940 214744779 214853113 214854300 214861498 -214854707 214854707 -214849052 214854710 214835126 -214857268 214738466 214856552 214855018 214858856 214859122 214857172 214691475 -214691246 214691246 -214644960 214644962 -214858631 214858905 214859902 -214705012 214705012 -214685797 214546100 214685797 214546100 -214859908 214859870 214854778 -214857262 214857260 -214857765 214857579 214857182 -214858785 214858790 214859094 214859908 214858363 214858854 214859034 -214644960 214644960 -214854731 214857262 214857557 214857557 -214857568 214857570 214857587 -214832387 214832387 -214857050 214857005 214858693 214854962 -214859126 214859126 -214849055 214849055 -214849136 214849136 -214857568 214854540 214854731 214854540 -214858856 214859094 214858854 214859857 214690727 214859940 -214560480 214645104 -214851714 214644159 -214848995 214848995 -214857260 214857260 -214857757 214859034 214859126 214696532 -214859117 214859117 -214857810 214853887 -214640012 214640012 -214859859 214858914 214858691 214858843 214858903 214859895 214858850 214859034 214859300 214690127 214859306 214859034 214858850 214859034 214858850 214859895 214859300 214858691 214858903 214859859 214858843 214858912 214859126 214858914 214858689 214859897 214859034 -214854894 214857596 214857596 214819412 214849299 214857596 214859908 214859889 214858363 214858687 214859075 214851129 214859906 214854825 214857187 214848658 -214568102 214577535 214853072 214854922 214848847 214510460 214716673 214676480 -214540035 214854774 -214849299 214857596 -214854707 214854707 214854707 214854707 -214857568 214858847 214859094 214859094 214859094 214858847 214690130 214859094 214690730 214858794 214690127 214859117 214858850 214858843 214859075 214854845 -214837430 214545879 -214587932 214509260 214586810 -214857757 214859126 214859872 214858689 -214852978 214853094 214853077 214852980 -214857187 214856550 214856698 -214532955 214532957 214532955 214639483 214639509 214717867 214748327 214716945 214854626 214829102 214829102 214849747 214853100 214835000 214835000 214857830 214676570 -214849052 214857549 214855018 214859872 -214859859 214865212 -214857260 214738466 -214859859 214859859 -214859859 214859242 214853094 214859094 214859855 214859038 214859038 214859124 214857568 214857568 214554973 -214849055 214849055 -214712274 214509787 -214859876 214858693 -214859117 214859900 -214859081 214857757 214857759 214859870 214859036 214859122 -214586805 214586805 214586810 -214854785 214854785 -214848986 214686864 214848986 -214858847 214690130 -214857549 214857549 -214859876 214858693 214858779 214858790 214858792 214854845 214854731 -214849052 214849048 -214857253 214849055 214849048 -214854845 214859848 214717305 -214854877 214572433 214854877 -214854915 214849048 214849048 -214858687 214858790 214859908 -214857787 214857660 214854877 214539307 -214850405 214856908 214851165 214851748 -214856981 214855046 214849299 214738466 214855046 -214846391 214846391 214556840 214687475 214857268 214857268 214858792 -214839120 214839120 -214858914 214858847 -214854264 214854264 214567329 214859855 -214849055 214567329 214854264 214854845 214854778 214858847 214859855 214690727 214859872 214859094 214854354 -214857759 214859919 214857759 214857570 214857268 -214849052 214854960 214857765 214856981 214854915 -214691531 214855198 214853887 -214572433 214774676 214574777 -214859915 214859081 214859085 214859081 -214509260 214587932 214644962 -214836819 214596446 214596446 -214859942 214859889 214859310 -214859094 214690727 214858854 214690730 214857757 214859081 214859075 214859092 214854962 -214854860 214854860 -214857570 214857570 -214857253 214857253 -214826668 214554510 214554510 214554510 214554510 214554510 214554510 -214854774 214695523 214705659 214711614 214819779 214571276 214571276 214571276 -214854877 214712274 214574906 214571246 214858333 214571246 214854810 -214710159 214839950 214854710 214820450 214705115 -214554358 214717003 214717003 214717003 -214851120 214676480 214688589 214510445 -214859094 214690730 214859908 214859075 -214638478 214638482 -214858689 214858689 -214859094 214858631 -214857568 214854894 214857260 -214853887 214858850 -214857268 214857568 -214702895 214839911 214702895 -214857695 214854924 214857776 214856700 214849344 -214857260 214849048 214853122 214854877 214855012 214854877 -214851120 214853122 214845502 214864432 214676535 214845504 214836506 214845506 214530729 214845502 214845504 214864432 214856552 -214821390 214821390 -214857765 214850280 214856981 214857268 -214854264 214567329 214567329 214854264 214854268 214854268 -214700992 214839341 214774682 214717061 -214858914 214859872 214859306 214859876 214865117 214865120 -214859908 214858687 214859876 214854920 -214857570 214857562 -214850280 214855018 214703904 -214857568 214858856 214858847 214859126 214858903 214696532 214858365 -214853282 214859132 -214856550 214857187 214857187 214857568 -214857182 214850280 -214859306 214696532 -214857549 214857549 214857257 214857260 214857568 -214857549 214857260 214561462 214648252 214857568 -214853195 214859880 214859915 214851748 -214530575 214602356 -214717003 214565666 214565666 214857257 214857257 214853698 214853698 214853735 -214857568 214857568 -214855198 214855198 214853887 214691250 -214857757 214859915 214854920 -214849052 214640012 -214836819 214836819 -214859859 214858689 214858843 214858847 214854845 -214644962 214696434 214696434 -214851155 214853327 214854583 -214857570 214854894 -214718265 214844218 -214857568 214857570 214857568 214857568 214857568 214857570 214697844 -214851845 214856552 -214857255 214857257 -214853094 214853094 214853094 -214859859 214859859 -214859126 214858794 214859872 -214857570 214859857 214858365 214859908 -214850730 214850730 214850730 -214858847 214858785 214858365 -214857549 214857260 214857268 214857182 214855010 -214849048 214849048 -214829807 214545928 214551913 214855198 214853887 214691531 214691531 214842437 214691531 -214857570 214857568 -214578268 214858852 -214859919 214859915 214859306 -214854877 214552172 214854877 -214701787 214851032 214835713 214851032 -214854332 214854332 214859897 214859919 214859876 -214567331 214848283 214567331 214567331 214567331 -214669895 214846382 -214712274 214712274 -214859342 214859342 214859342 214859342 214859342 214859342 -214857570 214856552 214853072 -214857568 214857568 214857568 -214849299 214857596 214854915 -214852987 214852987 214850332 -214580360 214580360 -214859038 214859081 214858365 214859081 214859872 214858631 214859117 214859900 214858843 214859297 214858689 214858912 -214858850 214568120 -214854845 214859902 214854845 214717273 214530718 -214829312 214546123 -214596435 214596435 214595855 214596435 214595855 -214546022 214546025 214546022 214686071 214546025 214546022 214686067 214546018 -214674705 214674705 -214833789 214855012 214658252 214539279 214668795 214550855 214668795 214821386 214828905 214711267 214711267 214711267 -214850422 214716579 214702877 214851071 214851759 214857583 214534359 214547186 214711267 214711267 214539403 214833789 214658252 214657811 214640861 214684449 214586876 -214858852 214690734 214855018 214819412 214857596 -214857549 214857568 214857260 214821815 -214587932 214848596 -214859872 214690130 214854920 -214857570 214857570 -214712274 214857182 214855046 -214717288 214717288 214843372 214843372 -214842352 214842347 214586927 -214857568 214857568 -214819412 214857575 -214857774 214856550 214857187 214855982 214855057 214857774 214851099 214836330 214853730 214853730 214570871 214570877 -214859859 214859859 -214696434 214587952 214836819 -214836819 214595855 214644962 214644960 214587952 214596435 -214509260 214696432 214857575 214571246 -214691531 214864670 214844070 -214859122 214857776 -214854313 214857587 -214829724 214858852 -214690130 214858856 214857757 214858794 214858687 214859908 214859906 -214849299 214855046 214849299 214584797 214576839 214708235 214706150 -214853338 214853338 214853338 -214857575 214648603 -214586805 214586805 -214855048 214857185 214856702 214857695 214856700 214854637 214851129 214855982 214857776 -214857570 214857568 214857268 214857260 -214853096 214853096 -214857549 214857570 -214828882 214713954 214696177 214676342 214714342 214713872 214713999 214714014 214714014 214714014 214714014 -214645005 214586722 214856552 214648603 -214853120 214853120 -214853102 214836932 214854731 -214687959 214697432 214656382 214696826 -214859460 214559651 214859458 214859460 -214829840 214586722 214857575 -214859094 214690730 -214853184 214857262 -214846404 214846404 -214516138 214854804 214714715 -214644960 214644962 214596435 214836819 214596435 214596446 214596435 214596446 -214580276 214829034 -214857765 214572230 214857765 214857765 -214851242 214848990 -214696532 214859126 -214571900 214836729 214571900 214571932 214571900 214714740 214571904 214571904 214836842 -214849132 214849132 -214857015 214859857 -214849052 214849052 -214712274 214857605 214712274 214712274 214857605 -214859306 214859126 214854920 214858687 214859075 214859092 214859908 214859882 -214692868 214857568 214857260 214712274 214857605 214712274 214854915 -214829807 214551913 -214586805 214586810 -214858856 214690775 214859306 -214561481 214561481 -214829724 214849299 -214859872 214859908 214854920 214857172 214865120 -214849286 214849342 214743352 214853122 214859075 214858687 214859310 214859889 -214858903 214858689 214859034 214858631 -214850702 214854497 214857562 214857262 -214516708 214516708 214516708 -214856829 214856831 -214587932 214509260 214509260 214586805 214509260 214845077 214708256 214835250 -214690730 214859094 214690730 214858794 214858794 214859872 214859117 214858691 214858843 214858689 -214859117 214858843 214858691 214858691 214858689 -214690727 214690775 214858854 -214858856 214690775 214859915 214859034 214696532 214859882 -214691531 214842437 214855198 214853887 -214857570 214857570 214857568 -214509260 214586810 -214858847 214859872 214858631 214690127 214859117 214859900 214858691 214858912 214858689 214859859 214858914 214858847 214859094 -214705018 214705018 -214829724 214855010 -214855018 214859876 -214850735 214857765 -214586805 214586805 -214857257 214857257 -214855198 214853887 214862167 -214859034 214858912 214858914 214859085 214859126 -214836819 214596435 214596446 214587952 214644962 214644958 214587932 -214853081 214849048 -214859094 214859094 214858854 214690727 214690775 214690727 -214690734 214858333 214854810 214858687 -214851155 214691475 -214855010 214855010 214820450 214857182 214857660 214857787 214857660 -214539534 214539534 214569230 214569230 214539534 214569230 214569230 -214853420 214846033 214584092 214846033 214829880 214829878 214853420 214695253 214846033 214717511 214831946 214850945 214846029 214850947 214854785 214640353 214551892 214551885 -214663935 214851714 -214857549 214857549 214857568 214857260 -214857015 214857549 214857253 -214857759 214859872 214854920 214859908 214859876 -214586805 214586805 214829807 214696434 -214690775 214858790 214858687 214859075 214859122 214859857 214858633 214858365 214859034 214857757 214859034 214858691 214858903 214859859 214858914 214690775 214690775 -214587932 214587932 214595855 214596435 214595855 214836819 214696434 214836819 214829807 214586810 214586805 -214705370 214845917 214716667 -214554675 214854268 214853994 214851750 -214861498 214861498 214819742 214858777 214859304 214864680 214859848 214854701 214861498 -214857568 214857570 214857260 214857568 214857268 214857570 -214696532 214858850 -214840082 214707817 214644157 214851714 214849003 214849003 214849003 214851714 -214857587 214856981 214705115 214858852 -214859342 214853720 214559848 214838792 214533729 214838805 214838812 214680485 214709595 214838822 214839605 214838822 214587058 214602315 214856670 214717837 214856805 214531513 214602752 214531513 214602752 -214587952 214836819 214857414 -214857570 214857568 214857562 214857570 214837873 214542345 214652422 -214853094 214691295 214843931 214691295 214851249 214691248 214840871 214691246 214840871 -214857268 214857570 214857260 214857268 -214857570 214857562 214857268 -214854825 214854825 -214849048 214849299 214856981 214857765 214572433 214820450 214705115 -214821315 214612708 214844441 214533022 -214850578 214850578 -214859126 214859126 214858365 214859306 214859859 214859126 214859126 214858790 -214685049 214716714 -214851555 214851553 214540035 -214846312 214859122 -214559008 214690794 214613743 214584920 214539084 214857437 214827011 214836512 -214856552 214705494 -214644960 214644958 214644960 214835000 -214859293 214652422 -214853891 214851845 -214858631 214858843 214858691 -214857570 214857268 214857570 214857268 -214858852 214858852 -214858680 214821371 214554793 -214703904 214556563 214553426 214556563 -214717612 214856482 -214857800 214574147 214574147 -214859117 214690127 214858631 214858691 214858912 214858905 214857005 214859889 -214690130 214690730 214857759 214859855 -214858854 214858854 214858856 214690775 214857757 214859857 214859919 214859915 214859085 214859081 214858850 214696532 214859126 214859090 214859908 214577503 214859306 214859297 214859895 214572448 214695553 214686547 214854358 214532351 214690781 214854778 214856555 214834886 214856567 -214854860 214854860 214854860 -214859872 214858689 -214859094 214859306 -214857257 214857549 214857568 214857568 214849052 -214853887 214691250 -214857182 214857587 -214858856 214858856 214858905 -214587932 214587952 214644960 214853887 214832604 -214509260 214509260 214509260 -214857570 214857568 214854894 -214857257 214857257 214859038 214859038 -214859139 214700000 214680371 214857830 214639700 214639708 214639815 -214858850 214858850 214859306 214858856 214858854 214858850 214859859 214859126 214859034 214684942 -214851097 214859126 214859126 214854358 214858689 214859126 -214855003 214853754 -214690734 214703904 -214857257 214857570 214710159 -214857257 214854894 -214509260 214574606 214574604 214574606 214574606 -214844184 214844188 214844186 214844190 214844195 214639370 214842350 -214859902 214854701 214859904 214858777 214854701 -214857568 214857782 -214859859 214859859 214858631 214859117 -214857579 214857596 214857596 214648603 -214850287 214854853 214853454 214711682 214676364 214709630 214696545 214711903 214820306 214849747 214829102 214561991 214854853 214854853 -214858847 214690730 214859094 214690730 214690727 214858631 214858631 214858631 214858631 214859300 214859297 214858691 214859126 214859872 214857005 214857005 214857005 214690730 214859306 214859117 214690727 214858631 214858691 214858691 214859306 214859872 214859126 214858843 214858847 214859094 214690730 214690730 214858854 214690727 214859094 214690130 214859859 -214859034 214858847 214859094 214858794 214858850 214858691 214858903 214859859 214577505 214573310 214687905 -214857570 214857568 -214691475 214857268 -214857260 214857547 214703904 -214586805 214586805 214586810 214587932 -214857568 214857570 214854877 -214857596 214857596 214857596 214857596 -214717888 214718220 -214857257 214857262 -214857257 214857260 214690130 214859900 214859876 214857005 214858792 214857260 214857268 -214849048 214849048 214791707 -214531565 214531567 -214690775 214859034 214859034 214858850 214859034 214859895 214858903 214858850 214858850 214858850 214696532 214858691 214859300 214858691 214859126 -214854845 214859902 -214550383 214581898 214581817 214515834 214581817 214574124 214515834 214515834 214574124 214574124 214581815 214515883 214515830 214515883 214515834 214857797 -214644960 214595855 214596435 214836819 -214836819 214836819 214595855 214596435 214644960 214644960 -214595855 214595855 214836819 214836819 214596435 214596435 214644960 214644960 -214858856 214858856 214690727 214858854 214859915 214859306 214858850 214859126 214858689 214859300 214859117 214859117 214696532 214858856 214858856 214858856 -214858856 214859306 214859117 214858689 214859859 214859859 214854176 214853210 214859300 214851748 214567333 214854262 -214703904 214703904 214571246 -214820450 214855046 -214854778 214819772 -214832366 214832364 -214858854 214859857 214858850 214858914 -214858847 214848337 -214690127 214858631 214858689 214859297 214859117 -214716673 214716673 -214846402 214712681 214712822 214712820 214712822 214712681 214832422 214712681 214832394 -214857549 214857568 -214854962 214858787 214857172 -214836819 214836819 -214577477 214577477 -214535649 214602729 214865212 -214857570 214857568 214857568 -214854780 214859304 214854845 214854780 214854780 214859304 214854845 214859304 214854845 214854845 214859304 214854780 -214744779 214854577 214690796 214857759 214690796 214854577 214854577 214859302 214717562 214748336 -214705115 214856552 -214849048 214849055 214849048 214849055 -214853072 214578011 -214572433 214572433 -214857260 214857549 -214853852 214859297 214850855 214854148 214564387 -214859870 214854920 214859882 214858363 214851129 214851129 -214688630 214845947 214688610 -214857030 214696432 214696432 214587952 214696432 214857039 -214820345 214854540 214853730 214848658 214848658 -214858847 214859872 214858847 214859094 214858687 214859122 214859092 214859122 214854962 -214859126 214859300 -214586906 214857568 214857570 214857562 214857268 214575369 214640353 -214857562 214857570 214857257 -214696432 214857030 -214858854 214858854 -214836819 214696434 -214857570 214858847 214859094 214690730 214859872 -214854705 214854705 -214712274 214712274 214712274 214848159 214686069 214709604 214712036 214855012 214582380 214606963 214606777 214848941 214554714 214850775 214848941 214848941 214712274 214846865 214848039 214846865 214855012 214855012 -214709702 214709702 214677830 -214510445 214510445 -214857570 214857570 214857568 214857570 214854894 214857268 214857260 214857568 -214859036 214851281 -214690130 214690730 214859872 214859034 214858850 214859034 214859895 214859117 214858689 214858914 -214516012 214516012 214516012 214575146 214575146 -214857257 214828882 214858847 214690130 214859094 214690730 214859872 214859306 214858794 214859075 214854842 214854720 214853081 214690839 214859126 214858689 214859306 214684785 214854358 214686547 214695525 214567333 214854510 214853135 214854165 214853242 214857015 214677401 214859921 214849455 214709690 214709645 214716255 214846404 -214858847 214859094 214858689 214859859 214859038 214858785 214859940 214859897 214859908 -214829807 214829807 -214859034 214858850 214859126 -214849052 214849052 214572433 214854877 214829724 -214696644 214700992 -214853072 214580462 -214586805 214586810 -214836819 214586805 -214819412 214819412 214858852 214858852 -214691471 214691471 -214857257 214857257 -214690730 214690730 214690730 214859094 214859117 214858631 -214857782 214857782 214857782 -214857268 214857260 214857268 -214858847 214859872 214858794 214858689 214859872 -214859034 214858850 214858850 214859300 214858850 214859859 214858903 214859034 214859034 214696532 214859034 214696532 214696532 -214696432 214696432 -214688098 214854960 -214690130 214859117 214690127 214696532 214859126 214858689 214858912 214858912 214858850 214858912 214858912 -214684730 214853102 214854785 214864880 -214855785 214855820 -214859859 214858689 214858912 214858691 214859900 214859297 -214587932 214509260 214586722 -214857812 214865120 -214577385 214647553 -214847876 214853222 -214858856 214859075 214859908 214858856 -214586805 214586805 214586805 -214858365 214859940 214859897 214858847 214858856 214857759 214858687 214857172 214858363 214717305 -214849052 214856552 -214857570 214857568 -214853092 214853092 -214859038 214858785 214859872 214859306 214859117 -214834931 214856520 -214714912 214714910 214852198 214714907 214852220 214852230 214852222 214848236 -214850280 214574906 -214857255 214748289 214856981 214572433 214857765 -214838261 214857564 -214587932 214853771 -214645003 214677922 -214567329 214854264 -214857701 214690734 -214853497 214717498 214717498 214854347 214854347 214748257 214836947 214857260 214857260 -214858856 214859908 214854920 214859075 -214856576 214687907 214856574 -214853122 214853122 214853122 -214858905 214858905 -214835120 214696425 214862317 -214847150 214844392 214855010 214844392 214855010 214844392 214846262 214855010 214855010 214738466 214855010 214574906 214572230 214857575 214846378 -214690775 214858856 214857757 214859940 214859897 214859085 214858854 214858633 214859919 214859306 214847034 -214856700 214856550 214856702 214857187 -214819412 214849299 214829724 -214857257 214857257 214857549 214857257 -214857562 214854845 -214587952 214587932 -214857549 214857570 -214716982 214716982 214854570 214854622 -214858856 214690775 214857757 214858365 214696532 214859034 214858903 214859034 -214858905 214858905 214851155 214851155 214851155 -214854701 214854701 -214845407 214845407 214845407 214845407 -214859870 214859908 -214854913 214712274 214857765 -214859034 214858850 214859895 214859126 214858903 214858689 -214858779 214859942 -214572433 214572433 214572433 214572433 214857570 214857568 -214857812 214857812 -214856552 214586805 214855010 214857575 214819412 214853887 214855095 214853887 -214859094 214859075 214859908 214690730 214859038 214859855 214859872 214858794 214857587 -214669817 214669884 -214857570 214857568 -214854313 214839339 214774676 214827020 214819747 214570547 214746386 214569729 214854296 214854215 214854311 214717063 214849295 214717427 214709634 -214857810 214857557 214857557 -214848995 214857549 214857257 214865212 -214858856 214858850 214858687 -214849055 214857262 -214858854 214690727 214858854 214859306 -214857555 214857810 -214576468 214576468 -214694752 214694257 214694720 -214509260 214650508 214853122 214676480 214851845 214645005 214577535 214587193 214865120 -214849048 214849048 214849048 214857547 214854810 -214644960 214586805 -214574906 214746457 214846978 -214849327 214828970 -214854845 214760595 214844782 214760535 214760617 -214540020 214855170 214510453 214819815 214819723 214540020 -214853102 214859857 214859919 214859306 -214858856 214857757 214859857 214857757 214859857 214859915 214859915 214859306 214859126 214859908 214857005 214859304 214859878 214859846 214865117 214832398 214716069 214849393 214857257 214857557 214857570 214857568 214857810 214855012 214854853 214853147 214711040 -214854920 214854920 214854962 214854920 214711952 214748257 214854347 214711952 214851077 214861464 214674427 214854920 214857562 214857570 214857568 214854920 214854920 -214854920 214857570 214848596 214854920 214748257 214854920 -214668791 214829662 214829662 214819412 214703904 214690770 -214844396 214849734 214846415 -214703904 214577302 -214717721 214717625 214853360 -214849052 214645005 214645005 214851845 214851845 214853891 214851845 -214857562 214859306 -214690730 214690730 214859094 214859117 214858689 214859872 214859075 -214836320 214836320 214836320 214836320 -214544782 214848107 -214714586 214714586 214714586 -214551913 214557268 214551913 214850400 214551930 -214859870 214858790 -214853263 214853263 214851129 214851281 214856936 214586591 214536311 214646192 214646188 214856932 -214559077 214859117 214859117 -214857268 214857260 -214849052 214690775 214859859 214696532 214858691 214696532 214859859 214859117 -214854778 214854778 -214828970 214839911 214839911 214853072 214687742 214833782 214834914 -214753650 214753650 -214854913 214849299 214820450 214705115 214712274 214829801 214854877 214850280 214850280 214850280 -214854877 214709687 -214857596 214690734 214854920 214859342 214696432 -214859857 214859306 -214849052 214849052 214859293 214859293 -214859900 214690775 214859915 214859919 214859124 214859085 214858633 214858785 214858847 214690727 214859094 214859855 214859857 214859306 214859872 214858365 214859038 214859038 -214858689 214857005 -214595855 214596435 214644962 214644960 -214858631 214858631 214690127 214690127 214859872 -214819777 214826904 214836885 214846367 214561775 214554707 214857547 214826711 -214854894 214849052 -214854148 214853094 214853096 -214568117 214859094 214858847 -214541660 214849170 214858710 214848808 214709685 214848851 214848851 -214690775 214859306 214858850 214859126 214858687 214854845 214854825 214856660 -214657457 214684545 -214857549 214857568 214857549 214690730 214859094 214690730 -214853705 214853705 -214859859 214851165 214858914 214859859 214690775 214858856 214859306 -214857787 214854960 214855046 214556563 214553426 214865212 214855012 -214848845 214849012 -214857759 214854920 -214517443 214848650 214517445 214602480 214517443 -214858856 214690775 214858365 214858792 -214820450 214819412 214819412 214857596 214857596 214556563 214556563 -214700000 214744258 -214565623 214557234 -214857204 214835000 -214859919 214859919 214857172 214857570 214846475 214845590 214853347 214850709 214853135 214854152 214859917 214850709 214854579 214819577 214857262 214859915 214859919 214859919 214850709 214859917 214859917 214854534 214854534 214642779 214509125 214864498 -214854915 214857701 -214508287 214508287 -214705991 214705991 -214580360 214580360 -214859904 214854825 -214857568 214854894 -214690130 214858631 214858689 214858689 214858689 214858689 214859117 214858631 -214643036 214509013 214643942 -214854311 214836827 -214856807 214856807 214687907 214856576 214687907 -214712102 214695238 214695238 214695238 -214858689 214858631 214859117 -214820345 214854731 -214848755 214560534 214643036 214697330 214697364 -214859859 214858689 214859859 -214859094 214690730 214859094 214690730 214859094 214858854 214690727 214690775 214859306 214858850 214696532 214696532 214858850 214859034 214859859 214859895 214859859 214859126 214859895 214859300 214859300 214690127 214859126 214858912 214858912 214690127 214690127 214859859 214858689 214859300 214690775 214696532 214858912 214858365 214696532 214858691 -214858787 214859891 214851281 -214835000 214853100 -214859038 214859081 -214857570 214854894 214857260 214857268 214849048 214853122 -214587932 214701787 214587932 -214707817 214826820 -214857570 214857570 214857568 214857568 214857570 214857570 -214859092 214820450 -214836819 214595855 214836819 214596446 214836819 -214855046 214829724 214857587 -214676480 214676480 -214864680 214709649 214829878 214846033 214695225 214695225 214850282 214567417 -214832126 214859117 -214849052 214829724 214849299 -214587932 214509260 214587932 -214849052 214829724 214857596 -214550627 214550627 diff --git a/fluid/Recommender/gru4rec/small_train.txt b/fluid/Recommender/gru4rec/small_train.txt deleted file mode 100644 index 6859153cc936001154feb494468bcf3bf4a33bd2..0000000000000000000000000000000000000000 --- a/fluid/Recommender/gru4rec/small_train.txt +++ /dev/null @@ -1,1000 +0,0 @@ -214536502 214536500 214536506 214577561 -214662742 214662742 214825110 214757390 214757407 214551617 -214716935 214774687 214832672 -214836765 214706482 -214701242 214826623 -214826835 214826715 -214838855 214838855 -214576500 214576500 214576500 -214821275 214821275 214821371 214821371 214821371 214717089 214563337 214706462 214717436 214743335 214826837 214819762 -214717867 214717867 -214836761 214684513 214836761 -214577732 214587013 214577732 -214826897 214820441 -214684093 214684093 214684093 -214561790 214561790 214611457 214611457 -214577732 214577732 -214838503 214838503 214838503 214838503 214838503 214548744 -214718203 214718203 214718203 214718203 -214837485 214837485 214837485 214837487 214837487 214821315 214586711 214821305 214821307 214844357 214821341 214821309 214551617 214551617 214612920 214837487 -214613743 214613743 214539110 214539110 -214827028 214827017 214537796 214840762 214707930 214707930 214585652 214536197 214536195 214646169 -214579288 214714790 214676070 214601407 -214532036 214700432 -214836789 214836789 214710804 -214537967 214537967 -214718246 214826835 -214835257 214835265 -214834865 214571188 214571188 214571188 214820225 214820225 214820225 214820225 214820225 214820225 214820225 214820225 214706441 214706441 214706441 214706441 -214652878 214716737 214652878 -214684721 214680356 -214551594 214586970 -214826769 214537967 -214819745 214819745 -214691587 214587915 -214821277 214821277 214821277 214821277 214821277 -214716932 214716932 214716932 214716932 214716932 214716932 -214712235 214581489 214602605 -214820441 214826897 214826702 214684513 214838100 214544357 214551626 214691484 -214545935 214819438 214839907 214835917 214836210 -214698491 214523692 -214695307 214695305 214538317 214677448 -214819468 214716977 214716977 214716977 214716977 214716939 -214544355 214601212 214601212 214601212 -214716982 214716984 -214844248 214844248 -214515834 214515830 -214717318 214717318 -214832557 214559660 214559660 214819520 214586540 -214587797 214835775 214844109 -214714794 214601407 214826619 214746427 214821300 214717562 214826927 214748334 214826908 214800262 -214709645 214709645 214709645 214709645 214709645 -214532072 214532070 -214827022 214840419 -214716984 214832657 -214662975 214537779 214840762 -214821277 214821277 214821277 -214748300 214748293 -214826955 214826606 214687642 -214832559 214832559 214832559 214821017 214821017 214572234 214826715 214826715 -214509135 214536853 214509133 214509135 214509135 214509135 214717877 214826615 214716982 -214819472 214687685 -214821285 214821285 214826801 214826801 -214826705 214826705 -214668590 214826872 -214652220 214840483 214840483 214717286 214558807 214821300 214826908 214826908 214826908 214554637 214819430 214819430 214826837 214826837 214820392 214820392 214586694 214819376 214553844 214601229 214555500 214695127 214819760 214717850 214718385 214743369 214743369 -214648475 214648340 214648438 214648455 214712936 214712887 214696149 214717097 214534352 214534352 214717097 -214560099 214560099 214560099 214832750 214560099 -214685621 214684093 214546097 214685623 -214819685 214839907 214839905 214811752 -214717007 214717003 214716928 -214820842 214819490 -214555869 214537185 -214840599 214835735 -214838100 214706216 -214829737 214821315 -214748293 214748293 -214712272 214820450 -214821380 214821380 -214826799 214827005 214718390 214718396 214826627 -214841060 214841060 -214687768 214706445 -214811752 214811754 -214594678 214594680 214594680 -214821369 214821369 214697771 214697512 214697413 214697409 214652409 214537127 214537127 214820237 214820237 214709645 214699213 214820237 214820237 214820237 214709645 214537127 -214554358 214716950 -214821275 214829741 -214829741 214820842 214821279 214703790 -214716954 214838366 -214821022 214820814 -214684721 214821369 214826833 214819472 -214821315 214821305 -214826702 214821275 -214717847 214819719 214748336 -214536440 214536437 -214512416 214512416 -214839313 214839313 214839313 -214826705 214826705 -214510044 214510044 214510044 214582387 214537535 214584812 214537535 214584810 -214600989 214704180 -214705693 214696824 214705682 214696817 214705691 214705693 214711710 214705691 214705691 214687539 214705687 214744796 214681648 214717307 214577750 214650382 214744796 214696817 214705682 214711710 -214821013 214821013 214572182 214572182 -214840762 214586983 -214820441 214826623 -214594633 214594592 214601010 214601010 214601015 214594592 214594592 -214821275 214827032 -214843370 214843370 214843370 -214595893 214595889 -214841060 214841060 214840378 214826955 214821275 214829285 -214826623 214826615 -214819719 214791688 214819472 -214826810 214826810 -214821377 214820201 -214587650 214535617 214535595 214587650 -214573312 214573312 214829257 214834987 -214826810 214840419 214840419 214560187 214716984 -214585397 214585397 -214821339 214844357 -214821020 214819547 214819547 214821024 214718160 214829282 -214551626 214821279 -214821022 214718169 214821024 214601233 214545500 214545455 214545440 214545455 -214820252 214582502 214836802 214672963 -214821020 214829282 -214684093 214684093 214684093 -214681104 214511092 -214706432 214708305 214587013 -214554358 214678916 -214837378 214828850 214828850 -214820942 214684093 -214839313 214840001 -214828867 214743497 214821392 -214674568 214645316 214536860 214639177 214820261 -214589518 214576665 -214709645 214820225 -214709792 214717046 -214532623 214557206 214826897 214826801 214576500 -214697690 214646349 214646250 -214685795 214630042 -214553735 214677969 214553735 214586874 214587937 214586874 214589600 -214840762 214575088 214550259 -214839373 214836765 214838100 -214717007 214716928 -214613865 214613865 214613870 -214716935 214716932 214716932 -214532070 214821285 214711333 214691604 -214565623 214557236 -214820387 214827035 -214535621 214535621 -214552243 214552464 -214820231 214820231 -214826837 214819430 -214826900 214826900 214664919 214826900 -214820456 214820456 -214827020 214821272 -214821367 214584808 214836761 214826893 214839849 -214835561 214835561 -214774685 214774685 214839997 214839313 214774685 -214826874 214826874 214821399 214826874 -214819552 214820938 214821380 -214826803 214826803 214826803 -214829282 214829282 -214687685 214556840 214601042 214691484 -214821397 214821397 214821397 214821397 -214821022 214819550 214826627 -214669730 214836281 -214821300 214690110 214753515 -214821277 214821277 -214540035 214577711 214708239 214517880 214577711 214578007 214819725 214819815 -214601462 214746386 -214708404 214708406 214725500 214839660 214833714 214714817 -214821290 214821290 214585395 214826700 214826700 214826801 214691366 214821377 214567410 214643657 214826608 214684513 214829312 214685795 214829312 214821298 -214821024 214587384 214718203 214832557 -214827022 214836341 -214652422 214567410 214567404 -214820192 214844297 214699301 -214717007 214717005 214717005 -214833802 214843382 214843385 214843387 214842420 214843477 214843955 214843950 214843494 214844310 214696802 214840599 -214833802 214820842 -214839313 214839313 214839995 -214716928 214717003 -214586711 214684160 -214539039 214539084 -214631008 214839995 214839313 -214829285 214826702 -214820938 214821037 -214826803 214821285 214826803 214820383 214826801 -214695345 214701302 214701287 214695386 214696352 -214820842 214840378 214705100 -214743341 214743341 214743341 214837820 214837764 214837762 214709685 214839257 214716341 214685152 214685152 214544945 214544936 -214744779 214743341 214744779 214820456 -214819385 214819378 214710090 214820938 214821022 -214540035 214819798 -214819811 214517880 -214839870 214839866 214705787 -214561991 214561991 214820938 -214745317 214745317 -214556270 214821339 214554384 214694139 -214586722 214826897 214681091 -214601233 214716932 214716930 214716932 -214820385 214820385 -214836958 214537826 214836958 214536577 214836958 214836958 214580790 214580790 214579749 214537856 214512152 214836960 214836960 214612760 -214819410 214700752 -214821275 214833800 -214706102 214800272 -214820402 214820400 -214607143 214640394 214607143 214640394 214607143 -214832557 214717888 -214839311 214820387 214819472 214819740 -214842446 214691602 214842446 214842446 214691600 214691597 214842446 214842442 214691604 -214819490 214828987 214684845 214826912 -214826998 214826998 214748334 214826934 -214821277 214821290 214821307 -214508942 214716982 214716984 214509013 214842290 214840762 214842287 214820441 -214561475 214532147 214539532 214511375 -214692791 214697990 214611283 -214684513 214684513 -214840541 214587508 214551581 -214826955 214826623 214827000 214811739 214650626 214650626 214827005 214834865 214577518 -214826816 214826705 214826816 214826705 214826816 -214839313 214602774 -214820182 214820192 214820182 214820225 214820237 -214510044 214582387 214510044 -214594637 214684513 214602821 214594637 -214826705 214826816 -214826801 214836761 214820255 -214602268 214602268 214602268 -214574777 214700992 214700990 -214826617 214826715 -214826900 214842577 -214576500 214839313 214820195 214709634 214699301 -214826955 214826955 -214545935 214820231 -214600625 214600625 214600625 -214821020 214821024 -214716935 214716932 214582950 -214676387 214676387 -214684513 214839373 214684513 214684513 -214717888 214838503 214685784 214684513 -214826705 214826705 214820383 214826803 214826803 214821285 214821285 214821285 214821285 -214510854 214510854 214672963 214510854 214702811 214510854 214537455 214510854 -214696434 214696434 214696434 -214582942 214582942 -214508942 214753659 -214717007 214838368 214716937 -214826912 214826912 214834865 214834865 -214820218 214547600 -214718169 214821024 -214594678 214594680 -214702740 214601441 214545967 -214640477 214640477 -214640477 214640477 -214821020 214820842 214826897 214535621 214821285 214821373 214821022 -214630042 214819502 -214512656 214512658 214512658 214694332 -214829737 214829737 214829737 214829737 214821309 -214712237 214704180 -214709792 214709792 -214640237 214640237 -214638480 214551570 214638480 -214709312 214664895 214587296 214664895 -214835760 214587785 214840599 214835760 214835585 214833802 214833800 214832730 214587800 214833802 214833802 214538030 214584939 -214838456 214508942 -214702702 214702704 -214706460 214706432 214821028 214821028 214539262 214821030 -214820240 214820240 -214684513 214691267 214691332 -214827062 214827062 -214717528 214717528 214594605 -214716947 214717010 214716975 214646308 -214601233 214601233 214833800 214833802 -214585100 214584808 214584808 214584808 214510738 -214748336 214748336 214819719 -214584920 214613743 214587384 214832557 214821017 214821017 214553936 -214821013 214829282 -214551285 214551287 214551285 -214826801 214826700 214840378 -214552498 214552625 214552625 -214534852 214534852 -214833800 214833800 -214748336 214819721 214601233 214819385 214819378 -214840378 214537037 -214684513 214684513 -214535705 214535705 -214820383 214820383 214841640 214691390 -214839313 214839313 -214602315 214554785 214698592 214698590 214698455 214698592 -214753515 214743369 214819721 214743495 214577450 214711657 214826872 214601233 214717890 -214691347 214691452 -214839812 214835422 214632367 214536367 214717003 -214546719 214678365 -214821290 214821290 -214839373 214539262 -214748285 214820218 -214717007 214717007 214716945 214554358 214717003 -214838977 214696434 -214594680 214594680 -214718160 214684513 -214539262 214820842 -214537775 214556840 214687685 -214572182 214821013 214587384 -214840412 214826212 214753693 214827015 214587028 214826619 214743335 214844357 214821307 214821341 214612721 214842450 -214826955 214716971 -214638480 214638480 214551594 214551594 -214600933 214600933 214835259 214835259 -214746427 214640017 214600989 214743515 214600989 -214589278 214589257 214718276 214587005 214591374 214819571 214586595 -214706441 214706441 -214638480 214638480 -214821307 214821309 214821339 -214551911 214564687 -214819781 214585644 214585644 214650609 214684498 214553540 214553540 214572538 214553540 214553540 214842412 214844030 214843993 214844030 214843492 214843492 214843492 214691537 214691332 -214826801 214651670 214744265 -214509084 214509084 -214839795 214523700 214839791 214708018 214517450 214714927 214712750 214712752 214840526 -214718203 214718203 214842352 214586983 214842347 -214748291 214748304 -214691484 214691396 214691321 214691426 214840822 -214835120 214835120 -214820345 214820385 214710090 214708370 -214596502 214596326 214596502 214596502 -214826810 214839373 -214738445 214738445 -214826810 214691426 -214821371 214821022 214821017 214832559 -214833782 214687742 214709807 214717757 214833782 214709807 214717730 214709807 214709807 214709807 -214546475 214546475 -214577518 214601407 -214748342 214584939 214748342 214748342 214748347 214748347 214748342 -214821022 214718169 214821022 214718169 214821015 -214748336 214826625 -214839313 214839313 -214826619 214821300 214826955 -214826705 214826816 214826705 214821290 214705757 -214509795 214539330 -214820441 214594590 -214687642 214748285 -214835647 214835645 -214829282 214821386 214708044 -214555142 214555140 -214684843 214743335 214819762 214819762 214819760 -214829282 214819547 214819547 214587384 214819552 214819552 -214821339 214551626 -214820814 214746339 214539262 -214744775 214769006 214842450 -214821367 214584808 214718197 -214552560 214552502 -214545980 214545962 -214839373 214684513 -214826810 214826623 214684841 214827007 -214826955 214820182 214820192 214820225 214709685 214829737 -214826955 214826623 214664919 214826625 214826799 214826891 214676580 214691390 214537037 214819745 -214718169 214821022 -214840412 214706124 -214838364 214838364 -214820385 214819526 -214832653 214832655 214832657 214832657 214717003 214717005 214716984 214717867 -214821015 214819547 -214708044 214648254 214832557 214648254 214832557 214648254 214648254 -214717410 214717410 -214837490 214837485 -214716930 214716982 214717003 -214835760 214839815 214587742 -214684093 214684093 214684093 214684093 -214839902 214820252 214644317 -214832557 214832559 214832559 214832557 214821020 214718169 214821022 214819552 214718203 214821017 214833802 214821030 -214581489 214602605 214680371 214581489 214680371 -214532072 214826801 214826627 214826715 214826627 214684513 214826627 214684513 214712126 -214835120 214839313 -214509084 214539845 214509084 214509084 214639211 214645835 214538002 214538002 -214587384 214832557 -214827052 214543545 -214717498 214821024 214567005 214567005 -214716924 214717614 -214833800 214833802 -214826810 214826705 214835940 -214839313 214827000 214826621 214826621 214826617 214826617 214821300 214821300 214826998 214826908 214826908 214821300 214827002 214753515 214826932 214826932 214662742 214698420 214574672 214554765 214690845 214716110 214819719 214819719 214717286 214819762 214819762 214819760 214819760 214826837 214826837 214826872 214826872 214826872 214826872 214826876 214826876 214837442 214821341 214753507 214748300 214548744 214548744 214537850 214717003 214691396 214670070 214832653 214716984 214832657 214840378 214668298 214639903 214629459 214629165 214629292 214629135 214629122 214629120 214629120 214629328 214629324 214544904 214544904 214676570 214676570 214676516 214696423 214696423 214668275 214639702 214676570 214676570 214629120 214629122 214629260 214629260 214629264 214629264 214629292 214629324 214629324 214638977 214638977 214819719 214835120 214629120 214744779 214744779 214744779 214820458 214820458 214744779 214826872 214826872 -214820415 214820415 -214586469 214696897 214712130 -214576946 214576946 -214826810 214820441 214829285 214820842 -214718220 214821022 214826810 214821275 214821022 -214820274 214820231 214584939 -214551624 214586561 -214512416 214587545 -214554510 214821028 214832559 214832557 -214691428 214691428 214691428 214691390 214691293 214836761 -214645835 214509084 214645835 -214832657 214717003 214554358 214717003 214717005 214717005 214717003 214832657 214717003 214717007 214717003 214716984 214717003 214582502 214672963 214582502 214587898 -214821819 214827015 214760897 214601407 214577518 214746427 214826955 -214820938 214556210 -214551626 214551626 -214684513 214716928 214832653 214716984 -214682135 214683298 214683300 214826705 214587167 -214714927 214523606 214714927 214517450 214714929 214518555 214639297 214639299 214516794 -214821275 214826627 214826893 214826612 -214819412 214716982 -214827020 214827020 214821272 214821272 214827020 214821272 214821272 214827020 214827020 -214706460 214821030 214706460 214701684 214701495 -214540035 214517880 -214826803 214826803 214821277 214821277 214821285 214826801 -214535102 214819528 214819528 -214829312 214774685 214837391 214828867 214700968 214700966 214678215 214652882 -214567410 214567410 -214819526 214819547 -214826606 214826606 214837020 214837003 214837014 214714597 214596105 -214547595 214539148 214678509 214644339 -214708372 214708372 214596647 214843464 214843464 214694334 214694334 214629060 214840899 214842459 214840901 214646709 214840899 214708372 214840944 214691550 214691550 214694402 214711903 214694334 214694334 214572688 214572729 214753588 214753588 214596647 214583190 214596647 214837558 214716088 214820237 214820225 214820225 -214711078 214711082 -214535621 214821313 -214708367 214820201 214829737 214709685 214536502 -214672963 214672845 214672946 214821290 214672946 -214826897 214826897 214833800 214833800 214833800 214833800 -214839313 214839997 214839997 214839995 -214826906 214819535 -214561500 214561502 -214532072 214826897 -214717003 214717007 214676364 214676332 214676362 -214573001 214573001 -214691349 214691349 214691471 214691242 -214712107 214711541 -214819419 214580814 -214587740 214587740 214587740 214587740 214536864 214664694 214821388 214612901 214536864 -214826623 214826623 214826623 214826623 -214748295 214748291 -214826619 214826932 214826932 -214641967 214718372 -214557043 214648387 214648389 -214744530 214744530 -214821290 214821292 -214821277 214821277 -214840901 214842440 214835120 -214839313 214839997 214839313 214840001 214839995 -214834991 214827020 -214579288 214668590 214826617 214677697 214680369 214821011 214534798 214716080 214832557 214746382 214745317 214745315 214651430 214586694 214832559 214572234 214572182 -214748336 214819721 214748336 214717247 214819385 -214819472 214839311 214839311 214534907 214584920 214583190 214826747 -214556563 214821277 214556563 -214821373 214821377 214821380 -214820441 214737337 -214832557 214832557 214832557 214832559 214832559 214832557 214832557 214821024 214821024 214821022 214821022 -214582415 214582408 214582408 214582415 214582415 -214601197 214840762 -214826623 214826623 -214837404 214837404 214837404 -214677883 214827020 214821272 -214601810 214536907 214601810 214601810 214601812 214613893 214508852 214826780 214826780 214601810 -214753507 214753507 214753507 214753507 214753507 214753507 214753507 -214533026 214533022 -214821390 214718203 214821015 214821022 214821015 214718203 214718203 -214829312 214829312 214613743 -214684372 214613915 214684372 214684372 214684372 -214833800 214843667 214838456 -214705792 214839313 -214839373 214839373 -214821017 214820454 214684513 214840378 214829737 214820240 214709685 214820182 214761890 214669781 214832552 214716748 -214840378 214557410 -214827007 214826925 214827000 214716710 214716707 214716710 214563133 214563133 214827005 214827007 214834865 214827000 214827000 214826925 214827007 214826925 214706441 214821309 214821309 214821339 214821309 214821309 -214637025 214636355 -214835447 214835447 -214827022 214827022 -214612695 214612695 214672963 214717003 -214684841 214684841 -214700610 214644960 -214820413 214826702 214839313 214821285 214821290 214826816 214585395 -214579730 214509013 -214537867 214738447 214579730 214509013 214596645 214509013 214596645 -214684513 214684513 -214672946 214821290 214672946 214510802 214510044 214672946 214510802 214672946 -214684093 214708372 214708372 214708372 214684093 -214821024 214664919 -214800264 214706150 -214582502 214836806 214840449 -214821030 214821298 214630042 -214821277 214839373 214839373 -214826705 214826835 214711087 214638973 214819745 214716986 214716932 -214584939 214584939 -214644650 214650617 214664820 214644650 214650617 -214821022 214821022 -214821024 214819427 214668249 214819427 214668249 214668249 214668249 214718160 214718160 214821397 -214827020 214706216 -214821290 214585395 214826705 -214716984 214832657 214716982 214716984 -214791688 214819385 214748336 214744779 -214743335 214748334 214753515 -214509135 214832557 214718160 -214744528 214744528 214717742 -214532072 214532070 -214710090 214710090 -214684513 214839373 214684513 -214819562 214819562 -214819550 214718169 214821022 214821017 214821024 214819552 214572234 214819550 -214839311 214843541 214843526 -214840425 214600567 -214587913 214586842 214587911 -214835000 214532955 214532945 -214826705 214826934 -214826700 214826801 -214820842 214821305 -214821300 214551626 -214652460 214652460 214564687 214564687 214557497 214557497 -214832552 214743339 214832552 -214820413 214536440 -214711661 214711682 -214717412 214717412 214701309 214701309 214718158 214572463 214748257 214748257 -214509135 214509135 -214587384 214561475 -214579288 214826615 -214819640 214819640 -214820814 214820814 -214683712 214683712 214701605 214701605 214682921 -214651567 214651571 -214603138 214827007 214601233 214714755 214690110 -214743339 214569707 -214684730 214684730 -214839999 214829310 -214829282 214819547 -214586983 214840762 -214820261 214820261 214820261 -214821272 214821272 214821272 214821272 214821272 214827030 214820842 214820842 214709634 214833800 214833800 -214585397 214839313 214843665 214585397 -214842461 214691430 214840944 214826833 214691484 214840318 -214826705 214821024 -214716932 214581427 214639149 214718117 214690845 214711952 214714732 214716932 214716930 214716935 214716930 214716932 214716930 214716930 214716932 214716930 214544327 214838833 214838833 214710294 214554510 214516033 214712270 214516033 214677440 214516031 214709597 214712017 -214579730 214579730 -214551917 214551917 214551913 214551917 214551917 214551917 214551917 214551917 214551917 214551917 214551917 214551917 -214551917 214551917 214551917 -214643045 214643045 214546102 214829312 214684115 214839997 214746386 214546121 -214820441 214839995 -214551917 214551917 -214832559 214819550 214819550 214821020 214587384 -214821377 214821377 -214717007 214716928 214832655 214716984 214832657 214832657 214717007 214832657 214832657 -214545836 214545825 -214841060 214841060 -214826810 214839373 214600535 214839866 214600532 214596388 214596386 -214685795 214577567 214640893 214640893 214587898 -214580377 214580377 -214585397 214553936 -214833802 214587785 -214837490 214837487 214837490 214838831 214821341 214586711 214640017 -214835578 214536392 214833800 214833800 -214826801 214826702 -214826803 214532072 214820383 -214539845 214539842 214539845 214539845 214587643 -214835120 214821277 -214839313 214839995 214839999 214840001 214839997 214839313 -214532070 214820415 214820255 -214820842 214706441 -214684115 214833800 214833802 214587650 214535617 214535589 -214838100 214691267 214833802 214833800 214836761 -214601672 214601670 -214687867 214586720 214539527 -214827030 214827030 214711205 -214826803 214820383 -214828697 214828865 214587163 214701307 214644731 214687899 214644731 214696824 214696824 214644731 -214826606 214554350 214828697 214828697 214828697 214828697 -214718220 214819547 214718220 -214826705 214826705 214826816 214826810 214532070 -214532072 214839313 214839313 214839995 214839995 214839999 214839999 214839313 214636517 214565512 214565512 -214821390 214819552 214712272 -214664919 214664919 -214642625 214642625 214643893 214746365 214829741 -214718385 214601233 214819378 214819380 -214717007 214717007 -214820441 214820441 -214602605 214712235 -214708305 214839313 214839995 214839313 214586795 -214586711 214687642 214586711 214586711 -214839313 214839313 214717241 214717241 214717241 -214821277 214821277 -214832655 214832657 214716932 -214644956 214532036 -214685784 214840573 214532072 214685784 214840573 214532072 214685784 214840573 214532072 -214639903 214629165 -214694330 214694330 -214717331 214826810 214839373 214546102 214829312 214821272 -214535621 214820259 -214718216 214712107 -214820456 214699213 214706441 -214711297 214589632 214589634 214589627 214589632 214826750 -214716982 214717003 214717003 -214695073 214695071 214695073 214695069 214717406 214695069 214717406 214695069 -214523690 214692821 214508244 214508244 214508244 214526000 214526000 214507387 -214839313 214839313 214839313 -214587013 214832557 214717888 214832559 -214712323 214552080 214552080 214552117 214552125 -214718203 214821390 -214821392 214820454 214820812 214708044 -214819430 214819430 214819430 214819430 214717522 214609325 214609325 214826912 214684845 -214826608 214826608 214826801 214826801 -214718216 214748285 214718216 214718216 214748285 214718216 214826810 -214839313 214839313 214582391 -214820190 214820190 214820190 214820190 214820190 214820190 214820190 214820190 214820186 214711087 214711082 214711082 214711087 214711087 214711318 214684734 214820190 214820186 214820186 214820186 214820190 214820190 214820190 214711087 214819406 214718396 214684730 214684730 214820190 214684730 214820190 214711087 214711078 214711078 214684730 214711078 214711087 214711408 214820190 214684730 214718398 -214753505 214753505 -214744530 214744530 -214748345 214748342 214748345 214553745 214553743 -214591427 214821279 214829737 -214702852 214699884 -214533020 214821339 214821339 -214539845 214744530 214744530 214744530 214744530 214744530 214744530 214744530 214744530 214744530 214744530 -214676400 214546991 214551667 214579462 214552492 -214587384 214551665 214551667 214546991 214603145 214514640 214514640 214579464 214552535 214579464 -214826810 214833800 214826801 -214821277 214821277 -214748336 214748336 -214716990 214716990 -214821305 214821341 -214552080 214552117 -214533553 214819378 214819378 214839311 214839311 214839311 -214826801 214826801 -214826810 214716935 214716930 -214839851 214839808 214844132 214838460 -214826955 214826955 214826623 214826623 214826955 214826955 214826955 214819406 214711087 -214826955 214826955 214826623 214826623 214826627 214826955 -214826623 214826955 -214677399 214677403 214639841 214668285 214544925 -214561475 214567005 214558258 214581793 214581915 -214574145 214574145 -214744530 214601201 214538747 -214821377 214821380 214820814 214838366 -214821037 214704292 -214717867 214717003 -214838100 214838100 -214537417 214672835 -214545928 214545928 -214840599 214839695 -214685795 214709634 -214821367 214832672 214821367 214821367 -214585670 214585670 214585670 214585670 -214561477 214821037 214711661 214567404 214567410 -214821022 214821022 -214829737 214829737 -214530502 214530502 214695167 -214640415 214640415 -214698465 214698465 214698465 214698465 -214826891 214826955 -214687685 214840412 214826212 214642016 -214546121 214546102 -214826715 214718255 -214827032 214827032 214717003 214717003 214716984 214832657 -214594652 214537993 214594652 -214820392 214832559 -214550383 214581815 -214827020 214821272 -214601197 214601197 -214820415 214686086 214645179 214546121 214702787 214702787 -214573108 214573108 -214587384 214718203 -214829312 214829312 -214821388 214821388 -214638480 214551594 -214820252 214717312 214820252 -214821275 214746386 214601462 214746386 214601462 214587028 214717331 -214829737 214829737 -214826816 214826816 214826608 214826608 214821277 214821290 214821290 214826801 214691426 214664919 214664919 214687685 214536502 214826747 214712107 214838503 -214601233 214612730 -214839313 214839313 214839313 214839313 -214819427 214821024 -214820814 214658867 -214832653 214840762 -214667912 214584920 214826747 -214826803 214826803 214826803 214691390 214691293 214539193 214821388 214821388 214539193 214826722 214538820 214589606 214538820 214538820 -214697925 214697925 214697925 214697925 -214711682 214544492 -214546031 214546031 -214819775 214819775 -214746395 214832559 -214820233 214820227 214584907 -214839313 214839313 214839313 -214532072 214532072 214532070 -214717095 214717095 -214826803 214821285 214826897 214826801 -214601040 214601040 214601040 214601042 -214702907 214718158 214701309 -214832655 214832655 214716984 214717007 -214645618 214574777 -214532070 214684385 214552089 -214716971 214716941 -214716930 214716930 214716930 214716935 214832653 214832655 214832653 214832653 -214748336 214821377 -214718220 214821017 -214709685 214709685 214820240 214820240 214706441 214706441 -214748265 214549346 214553578 214553578 214549346 214708035 214708035 214821309 214821309 214551617 214821309 214821309 -214821037 214539262 214539262 -214586825 214613638 -214821373 214821373 214821373 214748287 214821373 214821373 214821373 214821373 214577302 214577302 214642560 214642560 -214843395 214839643 -214702702 214601424 -214827020 214827020 214821272 214821272 214821272 214821272 214827030 214827030 -214826955 214574777 -214820441 214586692 214829741 214820842 214820842 -214826925 214826925 214826925 214826837 214826837 -214582952 214582952 -214572182 214572234 214821017 214819547 214821015 214718167 214821020 214819550 -214644320 214644320 -214511334 214821343 214511334 214821343 214800266 214511334 -214841006 214841006 -214826705 214826705 214826705 -214837487 214837490 214837483 214837485 214717007 -214718246 214711290 -214596502 214596326 -214826906 214826906 214826906 214826955 214826955 214826627 214826627 214800262 214709741 214709741 214819738 214819738 214819738 -214826627 214826955 -214716982 214716928 214826927 -214826803 214839373 -214821377 214821373 -214586711 214716982 214716967 214717001 -214716973 214716926 -214580094 214596107 214580094 214596107 214596326 214596114 -214839995 214840001 214839995 -214821277 214821277 214826810 214709685 214706441 214706441 214709735 -214748334 214717562 -214531372 214531365 214531365 -214833800 214833802 214587650 214833802 214826925 214826619 -214710159 214691188 214688668 214541548 -214586912 214586912 -214710360 214710328 214678457 214678526 214692611 214697310 214587193 214697885 214537050 214697203 214697312 214697325 214697325 214697364 214646520 214844357 214821341 -214586923 214630042 214556840 214826619 -214829285 214829285 -214819385 214717247 214709996 -214743515 214580413 -214716928 214716973 -214826705 214835940 -214840378 214840378 214839909 -214826619 214826619 -214636505 214829679 214664767 214601805 214539845 214829679 214539845 -214702751 214712342 -214829255 214829252 -214710075 214829257 214710075 214710075 -214594678 214594680 214594678 -214508287 214571904 214545879 -214717860 214580413 214652270 214580413 -214826801 214556840 -214545928 214545928 214545928 214545928 214545928 -214545928 214545928 214545928 214545928 214545928 214545928 214545928 -214829312 214829312 -214835900 214838462 -214826705 214826705 214585397 -214587384 214829737 -214821300 214753515 214821307 -214710309 214691557 214691557 214691557 214840342 214843479 214691351 214843517 214843517 214840952 214840952 214690768 214843980 214843980 214843905 214843905 214840828 214840828 214843970 214843920 214843920 214843378 214843378 214691422 214840760 -214738445 214738445 214537867 214511402 -214821392 214820383 -214826702 214586923 -214821275 214601462 214546121 214686086 -214601460 214601462 -214826955 214826623 -214701819 214701819 -214548418 214548418 214826705 -214826810 214826810 214826627 214826835 214718246 214711290 214695412 214711087 214819410 214826606 -214510044 214672963 -214840483 214840483 214840483 214840483 214840483 214840483 -214826893 214572234 -214601407 214826621 214556025 214675890 214564380 214826617 -214601805 214601805 -214718160 214821022 214819547 214561475 -214821339 214821309 -214691293 214691390 -214716935 214716986 -214716935 214716984 -214821020 214819552 214819552 214684115 214546102 214840419 214827030 214746386 214746386 214829312 214706216 214601462 214746386 -214718276 214591515 -214717222 214717100 214702552 214661962 -214821013 214547668 214674568 214547668 -214531007 214538317 214714586 214707967 214695309 -214819719 214821022 -214821024 214718160 214718220 214832559 214699888 -214827009 214820225 -214821022 214821024 -214826900 214826904 214717410 -214826897 214826897 -214832557 214832559 214819552 214821024 -214531862 214531862 -214553636 214553636 -214586711 214821313 214821305 214821341 214821315 214672963 -214546277 214708151 214588830 -214545935 214545935 214716982 214716982 214826878 -214531862 214531862 -214839313 214677701 214704182 -214595893 214838923 -214826953 214832559 214717888 214836761 -214539845 214539832 -214829741 214551892 214551892 214551892 -214538278 214552543 214552494 214552490 214552545 214514709 214552562 214552524 214514709 214552524 214552517 214552625 214552517 214552498 214552494 214552490 214552498 214552517 -214826835 214826955 214684734 214684734 214711087 214820184 -214821024 214829285 -214586711 214821309 214551617 214551617 214584962 -214828987 214828987 214558192 214558192 214826912 214826912 214826912 214826912 -214534704 214687685 -214613743 214586610 -214718216 214827020 214702877 -214716984 214716937 214832657 214716965 214716965 -214820227 214820261 214584907 214820261 -214821037 214820456 214576500 -214538477 214707977 214538467 214826917 -214826625 214826900 214554277 -214685820 214819410 214819410 -214536697 214586983 214586983 214586983 -214821020 214821020 -214842281 214842268 214842380 214840760 -214574147 214580302 214680422 -214840378 214839313 -214744779 214748287 214744528 214706171 214744528 214717880 214717880 214706102 214819721 214819721 214717847 214712130 214819430 214819430 214820402 214601233 214556345 214826932 214800268 214587163 214690747 214576890 214576890 214826619 214826619 214819382 214748336 -214512431 214509084 214601805 -214609370 214609370 -214601805 214539845 214601805 214664767 214829679 -214836448 214601407 -214698581 214698577 214698581 214698577 214698581 214698577 214698581 214698581 -214839371 214684513 214684513 -214718169 214821015 -214586923 214826627 -214826816 214826705 214826705 214826816 214536962 -214821024 214718160 -214826803 214716924 -214509830 214510738 214509830 -214682717 214682717 -214821305 214821305 214826837 214826837 214551626 214551626 -214535621 214536320 214535621 214535621 214535621 -214820240 214712402 214826927 214712402 -214551617 214612920 -214509082 214645835 -214612695 214702787 214840382 214587898 214714597 214840378 214676010 214651556 214651552 214651610 214677285 214652407 214651582 214639592 214638566 214591680 214668534 214638566 214638958 214651582 214652960 214544840 214545005 214544840 214545032 214717070 214544355 214545005 214600989 -214691390 214691428 -214826816 214826816 -214712235 214581489 -214843492 214691587 -214709634 214826810 -214821020 214718160 -214826705 214826810 214532070 214819490 -214686086 214746386 -214838308 214711805 -214582387 214535621 214820842 -214551617 214612721 214586711 214586711 214821305 214821309 214551630 214821302 214533026 214533026 -214832550 214832550 214832550 214832550 214832550 214832550 214832550 214832550 -214821339 214821339 214821315 -214826955 214826955 214826955 214826835 -214839313 214839313 -214587384 214587028 -214551913 214551913 -214540635 214540635 -214683960 214546059 214546059 -214819721 214819745 -214646608 214576950 214821315 214821305 214586711 214612723 214612723 214827062 -214691390 214691293 -214829130 214547608 214829130 214829068 214829130 214829068 214539405 214829068 214712544 214712544 214712537 214712544 214712544 214829130 214829291 -214551890 214551890 214551890 -214557755 214630016 214573241 214557755 -214556840 214820842 214716461 -214821017 214826702 214826897 -214691426 214691267 214826893 -214717507 214826829 214819468 214716937 214716939 214550366 214791682 214711322 214669899 214669790 214595994 214712681 214712844 214826833 214709666 214581551 214712137 214696997 214819762 214743335 214602802 214819719 214554431 214668270 214707883 214717003 214819468 214716937 -214839905 214819685 214702749 214839902 214839902 -214702839 214702839 214702839 -214701242 214826816 214826705 214826700 -214639305 214509084 214537967 -214840415 214821307 214774682 -214539206 214589711 -214819550 214718167 214819550 214821015 -214575311 214638624 214820317 214575311 214552610 214552580 214716958 214716960 214530369 214642982 214578645 214836142 214682289 -214826955 214826955 -214744530 214821309 214744530 214560170 -214821305 214821305 -214826816 214826955 -214509084 214582387 -214539845 214639305 214639303 214512431 214826780 214829679 214601805 214539845 -214833800 214833802 214587650 214835585 214833802 -214687685 214840412 214840419 214840419 214840417 214840417 214840417 -214609442 214712488 214842298 214842300 214712488 -214586595 214586595 -214836761 214836761 214836761 214836761 214587864 214587864 214550863 214550863 214536317 214536317 214587864 -214691426 214826625 214826799 -214532070 214532072 -214820842 214685795 214826803 -214821022 214821024 214718160 -214820413 214703790 214613743 -214826608 214826705 -214826801 214826801 214826627 214687685 214826837 214826908 214717286 214826872 214826619 214826619 214826998 214826998 214680716 214667921 214820400 214601233 214716667 214819376 214819562 214819562 -214821024 214821017 214821024 -214829312 214829312 214826705 -214826835 214826810 -214842450 214842450 -214725508 214725508 214725508 214725508 214725508 214820231 -214832557 214717888 -214696556 214580372 -214819562 214819562 -214819721 214819721 214717247 214717247 214725532 214725532 214717247 -214832559 214674487 214712107 214712107 214838503 214508942 214540963 214546110 -214826927 214698420 -214716924 214716924 -214842450 214840775 -214832557 214832557 -214559672 214705119 214821024 214829282 -214826801 214826799 -214821300 214753515 214690110 214744775 -214826606 214826799 -214584920 214819552 214819547 214819552 -214705659 214560077 214560077 214644716 214705659 214717738 214531517 214644716 -214819777 214826750 -214837890 214820233 214828867 -214840378 214820814 214587935 214587935 214587898 214644915 214835255 214587898 214712062 -214678526 214678526 214678526 214678526 214678526 214678526 214678526 214678526 -214821028 214718220 214832559 214832557 -214695540 214695540 -214639335 214639342 214639333 214639348 214639346 -214715111 214651065 -214703906 214687982 214821373 214821373 214821377 214821373 214821373 -214548885 214709792 214746339 -214711297 214585395 214826835 214819745 214827015 214586711 214821339 214821341 214821315 -214820199 214676019 -214821386 214821386 -214696434 214602240 214700623 -214601233 214601233 214821017 214821017 214601233 -214509013 214509000 214696434 -214587384 214587384 214711661 214711661 214567410 214556210 214556210 -214826829 214826889 -214602605 214581489 214712235 -214696631 214696631 -214821277 214826955 214821277 -214820814 214820814 -214827030 214717331 -214594678 214594678 214594678 214587613 214594678 -214688668 214691117 214691117 -214587446 214640415 -214819721 214836761 -214717005 214717007 -214832559 214821017 214819552 214572234 214699888 214691390 214691426 214691428 214821279 214716935 214716932 -214821313 214537496 214717331 -214677493 214677457 -214556822 214508563 214838045 214725551 -214826705 214826705 -214712126 214674487 -214555005 214668122 -214717003 214717003 -214832559 214718203 -214821037 214821037 -214535006 214535038 214535006 214535038 214840762 214840762 -214602821 214594644 214684513 214684513 214839373 214613902 214613685 214613900 214613895 214613904 214838996 214839000 214838992 214596206 214835308 -214838503 214838503 -214826908 214826908 214820392 214820392 214674487 214826908 214821300 214821300 214694156 214676962 214819374 214826617 214556025 214564380 214554765 214640017 214716902 214651423 214709666 214695285 214819382 214582948 214555262 214640017 214820392 214820392 -214820231 214820231 -214586983 214586983 214840762 214840762 214840762 -214585395 214833800 214839834 -214540597 214540597 -214821022 214718160 214820942 -214602583 214833789 214572230 -214820441 214821309 214551626 214551617 214510044 214600502 214820439 214836748 214836782 214717325 -214821022 214718169 -214714903 214718304 214714603 -214558192 214827007 214834865 214826925 214827000 -214826715 214826606 214826606 214826606 214826606 -214826700 214826623 -214716932 214716932 214716973 214716971 214716937 214716973 214716973 -214826897 214691587 -214532072 214821285 214821275 214840762 214584907 -214826829 214826627 214821279 -214836388 214744779 -214826617 214826612 214826615 214717877 214826621 214586711 214821307 214821341 -214704180 214704180 -214840762 214586983 214840762 214508942 214695326 214538201 -214706432 214668596 214554131 214820218 214551930 214583852 214551930 214557270 214551930 214557270 214840558 214564687 214583852 -214819599 214532072 -214544820 214544846 214544846 -214826705 214826897 214585652 -214557581 214557581 214587390 214725551 -214774685 214827020 -214512416 214537972 -214718160 214821037 -214717003 214716937 -214551892 214652462 214551892 -214821277 214820231 214820231 214821277 214821277 -214819719 214819719 -214534736 214534736 214534736 214534736 214534736 214534736 214712113 214696980 214717089 214717089 -214836332 214836431 214836427 -214717005 214716984 214832653 214832657 214716986 214716984 -214587384 214832557 -214509752 214509752 -214826615 214826615 214826615 214554982 214826621 214826621 214826619 214826619 214826619 214826617 214826617 214826617 214826617 214826621 214826621 214640017 214826837 -214829017 214658156 214539362 214543592 214828948 214829055 214829015 214829023 214829017 214829010 214828957 214828955 214828946 214828944 214828935 214828922 214828914 214828910 214828899 214828897 214543513 214828895 -214821292 214826799 -214562021 214562021 -214840415 214840417 214840412 214642031 -214821024 214826608 214826608 214826801 -214827022 214582387 214691484 214843916 214842433 214842410 214843980 214843903 214840877 214691415 214691338 214691336 214582387 214820246 -214532072 214532070 214826810 214532072 -214555537 214718203 214555537 -214587898 214587898 -214826803 214711297 214826801 -214820450 214508942 214718272 214508942 214718270 214600132 214600134 214600132 214600132 214600132 214600132 214600132 -214580094 214557530 -214826953 214819526 -214686086 214686086 214686086 214685795 -214826810 214539845 214829679 214636505 214601805 214826780 214536868 214539825 -214702828 214702826 214702824 214702826 -214601040 214717003 214717003 214716984 -214601042 214601040 -214718409 214537899 -214602579 214601668 214613645 214841006 -214821272 214508563 -214601040 214601042 214601040 214717007 -214717003 214716984 214819408 -214826705 214826816 214826705 diff --git a/fluid/Recommender/gru4rec/sort_batch.py b/fluid/Recommender/gru4rec/sort_batch.py deleted file mode 100644 index 5077887d6ed457edc8cc7dd164706ee23352aea8..0000000000000000000000000000000000000000 --- a/fluid/Recommender/gru4rec/sort_batch.py +++ /dev/null @@ -1,43 +0,0 @@ -def batch(reader, batch_size, sort_group_size, drop_last=False): - """ - Create a batched reader. - :param reader: the data reader to read from. - :type reader: callable - :param batch_size: size of each mini-batch - :type batch_size: int - :param sort_group_size: size of partial sorted batch - :type sort_group_size: int - :param drop_last: drop the last batch, if the size of last batch is not equal to batch_size. - :type drop_last: bool - :return: the batched reader. - :rtype: callable - """ - - def batch_reader(): - r = reader() - b = [] - for instance in r: - b.append(instance) - if len(b) == sort_group_size: - sortl = sorted(b, key=lambda x:len(x[0]), reverse=True) - b = [] - c = [] - for sort_i in sortl: - c.append(sort_i) - if(len(c) == batch_size): - yield c - c = [] - if drop_last == False and len(b) != 0: - sortl = sorted(b, key=lambda x:len(x[0]), reverse=True) - c = [] - for sort_i in sortl: - c.append(sort_i) - if(len(c) == batch_size): - yield c - c = [] - # Batch size check - batch_size = int(batch_size) - if batch_size <= 0: - raise ValueError("batch_size should be a positive integeral value, " - "but got batch_size={}".format(batch_size)) - return batch_reader diff --git a/fluid/Recommender/gru4rec/utils.py b/fluid/Recommender/gru4rec/utils.py deleted file mode 100644 index 638e2e2e712f05ef0e7b7ac7c96940692e5df9a5..0000000000000000000000000000000000000000 --- a/fluid/Recommender/gru4rec/utils.py +++ /dev/null @@ -1,50 +0,0 @@ -import sys -import time -import numpy as np -import paddle.fluid as fluid -import paddle -import data_preprocess as dp -import sort_batch as sortb - -def to_lodtensor(data, place): - """ convert to LODtensor """ - seq_lens = [len(seq) for seq in data] - cur_len = 0 - lod = [cur_len] - for l in seq_lens: - cur_len += l - lod.append(cur_len) - flattened_data = np.concatenate(data, axis=0).astype("int64") - flattened_data = flattened_data.reshape([len(flattened_data), 1]) - res = fluid.LoDTensor() - res.set(flattened_data, place) - res.set_lod([lod]) - return res - -def prepare_data(train_filename, test_filename, batch_size, - buffer_size=1000, word_freq_threshold=0, enable_ce=False): - """ prepare the English Pann Treebank (PTB) data """ - print("start constuct word dict") - vocab = dp.build_dict(word_freq_threshold,train_filename,test_filename) - print("construct word dict done\n") - if enable_ce: - train_reader = paddle.batch( - dp.train(train_filename, - vocab, - buffer_size, - data_type=dp.DataType.SEQ), - batch_size) - else: - train_reader = sortb.batch( - paddle.reader.shuffle( - dp.train(train_filename, - vocab, - buffer_size, - data_type=dp.DataType.SEQ), - buf_size=buffer_size), - batch_size,batch_size*20) - test_reader = sortb.batch( - dp.test(test_filename, - vocab, buffer_size, data_type=dp.DataType.SEQ), - batch_size,batch_size*20) - return vocab, train_reader, test_reader diff --git a/fluid/recommendation/gru4rec/README.md b/fluid/recommendation/gru4rec/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d1c3b807e238c1152b23b99ec522ce9fdc521422 --- /dev/null +++ b/fluid/recommendation/gru4rec/README.md @@ -0,0 +1,218 @@ +# GRU4REC + +以下是本例的简要目录结构及说明: + +```text +. +├── README.md # 文档 +├── train.py # 训练脚本 +├── infer.py # 预测脚本 +├── utils # 通用函数 +├── convert_format.py # 转换数据格式 +├── small_train.txt # 小样本训练集 +└── small_test.txt # 小样本测试集 + +``` + + +## 简介 + +GRU4REC模型的介绍可以参阅论文[Session-based Recommendations with Recurrent Neural Networks](https://arxiv.org/abs/1511.06939),在本例中,我们实现了GRU4REC的模型。 + +## RSC15 数据下载及预处理 +运行命令 下载RSC15官网数据集 +``` +curl -Lo yoochoose-data.7z https://s3-eu-west-1.amazonaws.com/yc-rdata/yoochoose-data.7z +7z x yoochoose-data.7z +``` + +GRU4REC的数据过滤,下载脚本[https://github.com/hidasib/GRU4Rec/blob/master/examples/rsc15/preprocess.py](https://github.com/hidasib/GRU4Rec/blob/master/examples/rsc15/preprocess.py), + +注意修改文件路径 + +line12: PATH_TO_ORIGINAL_DATA = './' + +line13:PATH_TO_PROCESSED_DATA = './' + +注意使用python3 执行脚本 +``` +python preprocess.py +``` +生成的数据格式如下 + +``` +SessionId ItemId Time +1 214536502 1396839069.277 +1 214536500 1396839249.868 +1 214536506 1396839286.998 +1 214577561 1396839420.306 +2 214662742 1396850197.614 +2 214662742 1396850239.373 +2 214825110 1396850317.446 +2 214757390 1396850390.71 +2 214757407 1396850438.247 +``` + +数据格式需要转换 运行脚本 +``` +python convert_format.py +``` + +模型的训练及测试数据如下,一行表示一个用户按照时间顺序的序列 + +``` +214536502 214536500 214536506 214577561 +214662742 214662742 214825110 214757390 214757407 214551617 +214716935 214774687 214832672 +214836765 214706482 +214701242 214826623 +214826835 214826715 +214838855 214838855 +214576500 214576500 214576500 +214821275 214821275 214821371 214821371 214821371 214717089 214563337 214706462 214717436 214743335 214826837 214819762 +214717867 214717867 +``` + +## 训练 +GPU 环境 默认配置 +运行命令 `CUDA_VISIBLE_DEVICES=0 python train.py train_file test_file` 开始训练模型。 +```python +CUDA_VISIBLE_DEVICES=0 python train.py small_train.txt small_test.file +``` +CPU 环境 +运行命令 `python train.py train_file test_file` 开始训练模型。 +```python +python train.py small_train.txt small_test.txt +``` + +当前支持的参数可参见[train.py](./train.py) `train_net` 函数 +```python + batch_size = 50 # batch大小 推荐500() + args = parse_args() + vocab, train_reader, test_reader = utils.prepare_data( + train_file, test_file,batch_size=batch_size * get_cards(args),\ + buffer_size=1000, word_freq_threshold=0) # buffer_size 局部序列长度排序 + train( + train_reader=train_reader, + vocab=vocab, + network=network, + hid_size=100, # embedding and hidden size + base_lr=0.01, # base learning rate + batch_size=batch_size, + pass_num=10, # the number of passed for training + use_cuda=True, # whether to use GPU card + parallel=False, # whether to be parallel + model_dir="model_recall20", # directory to save model + init_low_bound=-0.1, # uniform parameter initialization lower bound + init_high_bound=0.1) # uniform parameter initialization upper bound +``` + +## 自定义网络结构 + +可在[train.py](./train.py) `network` 函数中调整网络结构,当前的网络结构如下: +```python +emb = fluid.layers.embedding( + input=src, + size=[vocab_size, hid_size], + param_attr=fluid.ParamAttr( + initializer=fluid.initializer.Uniform( + low=init_low_bound, high=init_high_bound), + learning_rate=emb_lr_x), + is_sparse=True) + +fc0 = fluid.layers.fc(input=emb, + size=hid_size * 3, + param_attr=fluid.ParamAttr( + initializer=fluid.initializer.Uniform( + low=init_low_bound, high=init_high_bound), + learning_rate=gru_lr_x)) +gru_h0 = fluid.layers.dynamic_gru( + input=fc0, + size=hid_size, + param_attr=fluid.ParamAttr( + initializer=fluid.initializer.Uniform( + low=init_low_bound, high=init_high_bound), + learning_rate=gru_lr_x)) + +fc = fluid.layers.fc(input=gru_h0, + size=vocab_size, + act='softmax', + param_attr=fluid.ParamAttr( + initializer=fluid.initializer.Uniform( + low=init_low_bound, high=init_high_bound), + learning_rate=fc_lr_x)) + +cost = fluid.layers.cross_entropy(input=fc, label=dst) +acc = fluid.layers.accuracy(input=fc, label=dst, k=20) +``` + +## 训练结果示例 + +我们在Tesla K40m单GPU卡上训练的日志如下所示 +```text +epoch_1 start +step:100 ppl:441.468 +step:200 ppl:311.043 +step:300 ppl:218.952 +step:400 ppl:186.172 +step:500 ppl:188.600 +step:600 ppl:131.213 +step:700 ppl:165.770 +step:800 ppl:164.414 +step:900 ppl:156.470 +step:1000 ppl:174.201 +step:1100 ppl:118.619 +step:1200 ppl:122.635 +step:1300 ppl:118.220 +step:1400 ppl:90.372 +step:1500 ppl:135.018 +step:1600 ppl:114.327 +step:1700 ppl:141.806 +step:1800 ppl:93.416 +step:1900 ppl:92.897 +step:2000 ppl:121.703 +step:2100 ppl:96.288 +step:2200 ppl:88.355 +step:2300 ppl:101.737 +step:2400 ppl:95.934 +step:2500 ppl:86.158 +step:2600 ppl:80.925 +step:2700 ppl:202.219 +step:2800 ppl:106.828 +step:2900 ppl:91.458 +step:3000 ppl:105.988 +step:3100 ppl:87.067 +step:3200 ppl:92.651 +step:3300 ppl:101.145 +step:3400 ppl:91.247 +step:3500 ppl:107.656 +step:3600 ppl:89.410 +... +... +step:15700 ppl:76.819 +step:15800 ppl:62.257 +step:15900 ppl:81.735 +epoch:1 num_steps:15907 time_cost(s):4154.096032 +model saved in model_recall20/epoch_1 +... +``` + +## 预测 +运行命令 `CUDA_VISIBLE_DEVICES=0 python infer.py model_dir start_epoch last_epoch(inclusive) train_file test_file` 开始预测,其中,start_epoch指定开始预测的轮次,last_epoch指定结束的轮次,例如 +```python +CUDA_VISIBLE_DEVICES=0 python infer.py model 1 10 small_train.txt small_test.txt# prediction from epoch 1 to epoch 10 small_train.txt small_test.txt +``` + +## 预测结果示例 +```text +model:model_r@20/epoch_1 recall@20:0.613 time_cost(s):12.23 +model:model_r@20/epoch_2 recall@20:0.647 time_cost(s):12.33 +model:model_r@20/epoch_3 recall@20:0.662 time_cost(s):12.38 +model:model_r@20/epoch_4 recall@20:0.669 time_cost(s):12.21 +model:model_r@20/epoch_5 recall@20:0.673 time_cost(s):12.17 +model:model_r@20/epoch_6 recall@20:0.675 time_cost(s):12.26 +model:model_r@20/epoch_7 recall@20:0.677 time_cost(s):12.25 +model:model_r@20/epoch_8 recall@20:0.679 time_cost(s):12.37 +model:model_r@20/epoch_9 recall@20:0.680 time_cost(s):12.22 +model:model_r@20/epoch_10 recall@20:0.681 time_cost(s):12.2 +``` diff --git a/fluid/recommendation/gru4rec/convert_format.py b/fluid/recommendation/gru4rec/convert_format.py new file mode 100644 index 0000000000000000000000000000000000000000..b5db511ef087e59724e765f9fc9275fda6428b27 --- /dev/null +++ b/fluid/recommendation/gru4rec/convert_format.py @@ -0,0 +1,33 @@ +import sys + + +def convert_format(input, output): + with open(input) as rf: + with open(output, "w") as wf: + last_sess = -1 + sign = 1 + i = 0 + for l in rf: + i = i + 1 + if i == 1: + continue + if (i % 1000000 == 1): + print(i) + tokens = l.strip().split() + if (int(tokens[0]) != last_sess): + if (sign): + sign = 0 + wf.write(tokens[1] + " ") + else: + wf.write("\n" + tokens[1] + " ") + last_sess = int(tokens[0]) + else: + wf.write(tokens[1] + " ") + + +input = "rsc15_train_tr.txt" +output = "rsc15_train_tr_paddle.txt" +input2 = "rsc15_test.txt" +output2 = "rsc15_test_paddle.txt" +convert_format(input, output) +convert_format(input2, output2) diff --git a/fluid/recommendation/gru4rec/infer.py b/fluid/recommendation/gru4rec/infer.py new file mode 100644 index 0000000000000000000000000000000000000000..ac1a63b42dd4937fcb5c08b85bd38db8043cb270 --- /dev/null +++ b/fluid/recommendation/gru4rec/infer.py @@ -0,0 +1,79 @@ +import sys +import time +import math +import unittest +import contextlib +import numpy as np +import six +import paddle.fluid as fluid +import paddle + +import utils + + +def infer(test_reader, use_cuda, model_path): + """ inference function """ + place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace() + exe = fluid.Executor(place) + + with fluid.scope_guard(fluid.core.Scope()): + infer_program, feed_target_names, fetch_vars = fluid.io.load_inference_model( + model_path, exe) + accum_num_recall = 0.0 + accum_num_sum = 0.0 + t0 = time.time() + step_id = 0 + for data in test_reader(): + step_id += 1 + src_wordseq = utils.to_lodtensor([dat[0] for dat in data], place) + label_data = [dat[1] for dat in data] + dst_wordseq = utils.to_lodtensor(label_data, place) + para = exe.run( + infer_program, + feed={"src_wordseq": src_wordseq, + "dst_wordseq": dst_wordseq}, + fetch_list=fetch_vars, + return_numpy=False) + + acc_ = para[1]._get_float_element(0) + data_length = len( + np.concatenate( + label_data, axis=0).astype("int64")) + accum_num_sum += (data_length) + accum_num_recall += (data_length * acc_) + if step_id % 100 == 0: + print("step:%d " % (step_id), accum_num_recall / accum_num_sum) + t1 = time.time() + print("model:%s recall@20:%.3f time_cost(s):%.2f" % + (model_path, accum_num_recall / accum_num_sum, t1 - t0)) + + +if __name__ == "__main__": + if len(sys.argv) != 6: + print( + "Usage: %s model_dir start_epoch last_epoch(inclusive) train_file test_file" + ) + exit(0) + train_file = "" + test_file = "" + model_dir = sys.argv[1] + try: + start_index = int(sys.argv[2]) + last_index = int(sys.argv[3]) + train_file = sys.argv[4] + test_file = sys.argv[5] + except: + iprint( + "Usage: %s model_dir start_ipoch last_epoch(inclusive) train_file test_file" + ) + exit(-1) + vocab, train_reader, test_reader = utils.prepare_data( + train_file, + test_file, + batch_size=5, + buffer_size=1000, + word_freq_threshold=0) + + for epoch in xrange(start_index, last_index + 1): + epoch_path = model_dir + "/epoch_" + str(epoch) + infer(test_reader=test_reader, use_cuda=True, model_path=epoch_path) diff --git a/fluid/recommendation/gru4rec/small_test.txt b/fluid/recommendation/gru4rec/small_test.txt new file mode 100644 index 0000000000000000000000000000000000000000..0cdaa7cc44d9371b849e47a575e9460d1f30531e --- /dev/null +++ b/fluid/recommendation/gru4rec/small_test.txt @@ -0,0 +1,100 @@ +214586805 214509260 +214857547 214857268 214857260 +214859848 214857787 +214687963 214531502 214687963 +214696532 214859034 214858850 +214857570 214857810 214857568 214857787 214857182 +214857562 214857570 214857562 214857568 +214859132 214545928 214859132 214551913 +214858843 214859859 214858912 214858691 214859900 +214561888 214561888 +214688430 214688435 214688430 +214536302 214531376 214531659 214531440 214531466 214513382 214550996 +214854930 214854930 +214858856 214690775 214859306 +214859872 214858912 214858689 +214859310 214859338 214859338 214859942 214859293 214859889 214859338 214859889 214859075 214859338 214859338 214859889 +214574906 214574906 +214859342 214859342 214858777 214851155 214851152 214572433 +214537127 214857257 +214857570 214857570 214857568 214857562 214857015 +214854352 214854352 214854354 +214738466 214855010 214857605 214856552 214574906 214857765 214849299 +214858365 214859900 214859126 214858689 214859126 214859126 214857759 214858850 214859895 214859300 +214857260 214561481 214848995 214849052 214865212 +214857596 214819412 214819412 +214849342 214849342 +214859902 214854845 214854845 214854825 +214859306 214859126 214859126 +214644962 214644960 214644958 +214696432 214696434 +214708372 214508287 214684093 +214857015 214857015 214858847 214690130 +214858787 214859855 +214858847 214696532 214859304 214854845 +214586805 214586805 +214857568 214857570 +214696532 214858850 214859034 214569238 214568120 214854165 214684785 214854262 214567327 +214602729 214857568 214857596 +214859122 214858687 214859122 214859872 +214555607 214836225 214836225 214836223 +214849299 214829724 214855010 214829801 214574906 214586722 214684307 214857570 +214859872 214695525 +214845947 214586722 214829801 +214829312 214546123 +214849055 214849052 +214509260 214587932 214596435 214644960 214696432 214696434 214545928 214857030 214636329 214832604 214574906 +214586805 214586805 +214587932 214587932 +214857568 214857549 214854894 +214836819 214836819 214595855 214595855 +214858787 214858787 +214854860 214857701 +214848750 214643908 +214858847 214859872 214859038 214859855 214690130 +214847780 214696817 214717305 +214509260 214509260 +214853122 214853122 214853122 214853323 +214858847 214858631 214858691 +214859859 214819807 214853072 214853072 214819730 +214820450 214705115 214586805 +214858787 214859036 +214829842 214864967 +214846033 214850949 +214587932 214586805 214509260 214696432 214855110 214545928 +214858856 214859081 214859306 214858854 +214690839 214690839 214711277 214839607 214582942 214582942 +214857030 214832604 +214857570 214855046 214859870 214577475 214858687 214656380 +214854845 214854845 214854684 214859893 214854845 214854778 +214850630 214848159 214848159 214848159 214848159 214848159 214848159 214848159 +214856248 214856248 +214858365 214858905 214858905 +214712274 214855046 +214845947 214845947 214831946 214717511 214846014 214854729 +214561462 214561462 214561481 214561481 +214836819 214853250 +214858854 214859915 214859306 214854300 +214857660 214857787 214539307 214855010 214855046 214849299 214856981 214849055 +214855046 214854877 214568102 214539523 214579762 214539347 214641127 214600995 214833733 214600995 214684633 214645121 214658040 214712276 214857660 214687895 214854313 214857517 +214845962 214853165 214846119 +214854146 214859034 +214819412 214819412 214819412 214819412 +214849747 214578350 214561991 +214854341 214854341 +214644855 214644857 214531153 +214644960 214862167 +214640490 214600918 214600922 +214854710 214857759 214859306 +214858843 214859297 214858631 214859117 214858689 214858912 214859902 214690127 +214586805 214586805 +214859306 214859306 214859126 +214859034 214696532 214858850 214859126 214859859 214859034 214859859 214858850 +214857782 214849048 214857787 +214854148 214857787 214854877 +214858631 214858631 214690127 214859034 214858850 214859117 214858631 214859300 214858843 214859859 214859859 +214646036 214646036 +214858847 214858631 214690127 214859297 +214861603 214700002 214700000 214835117 214700000 214857830 214700000 214712235 214700000 214700002 214510700 214835713 214712235 214853321 +214854855 214854815 214854815 +214857185 214854637 214829765 214848384 214829765 214856546 214848596 214835167 214563335 214553837 214536185 214855982 214845515 214550844 214712006 diff --git a/fluid/recommendation/gru4rec/small_train.txt b/fluid/recommendation/gru4rec/small_train.txt new file mode 100644 index 0000000000000000000000000000000000000000..a570fd292d8ebdbd607e83948dd4087b62a648b6 --- /dev/null +++ b/fluid/recommendation/gru4rec/small_train.txt @@ -0,0 +1,100 @@ +214536502 214536500 214536506 214577561 +214662742 214662742 214825110 214757390 214757407 214551617 +214716935 214774687 214832672 +214836765 214706482 +214701242 214826623 +214826835 214826715 +214838855 214838855 +214576500 214576500 214576500 +214821275 214821275 214821371 214821371 214821371 214717089 214563337 214706462 214717436 214743335 214826837 214819762 +214717867 214717867 +214836761 214684513 214836761 +214577732 214587013 214577732 +214826897 214820441 +214684093 214684093 214684093 +214561790 214561790 214611457 214611457 +214577732 214577732 +214838503 214838503 214838503 214838503 214838503 214548744 +214718203 214718203 214718203 214718203 +214837485 214837485 214837485 214837487 214837487 214821315 214586711 214821305 214821307 214844357 214821341 214821309 214551617 214551617 214612920 214837487 +214613743 214613743 214539110 214539110 +214827028 214827017 214537796 214840762 214707930 214707930 214585652 214536197 214536195 214646169 +214579288 214714790 214676070 214601407 +214532036 214700432 +214836789 214836789 214710804 +214537967 214537967 +214718246 214826835 +214835257 214835265 +214834865 214571188 214571188 214571188 214820225 214820225 214820225 214820225 214820225 214820225 214820225 214820225 214706441 214706441 214706441 214706441 +214652878 214716737 214652878 +214684721 214680356 +214551594 214586970 +214826769 214537967 +214819745 214819745 +214691587 214587915 +214821277 214821277 214821277 214821277 214821277 +214716932 214716932 214716932 214716932 214716932 214716932 +214712235 214581489 214602605 +214820441 214826897 214826702 214684513 214838100 214544357 214551626 214691484 +214545935 214819438 214839907 214835917 214836210 +214698491 214523692 +214695307 214695305 214538317 214677448 +214819468 214716977 214716977 214716977 214716977 214716939 +214544355 214601212 214601212 214601212 +214716982 214716984 +214844248 214844248 +214515834 214515830 +214717318 214717318 +214832557 214559660 214559660 214819520 214586540 +214587797 214835775 214844109 +214714794 214601407 214826619 214746427 214821300 214717562 214826927 214748334 214826908 214800262 +214709645 214709645 214709645 214709645 214709645 +214532072 214532070 +214827022 214840419 +214716984 214832657 +214662975 214537779 214840762 +214821277 214821277 214821277 +214748300 214748293 +214826955 214826606 214687642 +214832559 214832559 214832559 214821017 214821017 214572234 214826715 214826715 +214509135 214536853 214509133 214509135 214509135 214509135 214717877 214826615 214716982 +214819472 214687685 +214821285 214821285 214826801 214826801 +214826705 214826705 +214668590 214826872 +214652220 214840483 214840483 214717286 214558807 214821300 214826908 214826908 214826908 214554637 214819430 214819430 214826837 214826837 214820392 214820392 214586694 214819376 214553844 214601229 214555500 214695127 214819760 214717850 214718385 214743369 214743369 +214648475 214648340 214648438 214648455 214712936 214712887 214696149 214717097 214534352 214534352 214717097 +214560099 214560099 214560099 214832750 214560099 +214685621 214684093 214546097 214685623 +214819685 214839907 214839905 214811752 +214717007 214717003 214716928 +214820842 214819490 +214555869 214537185 +214840599 214835735 +214838100 214706216 +214829737 214821315 +214748293 214748293 +214712272 214820450 +214821380 214821380 +214826799 214827005 214718390 214718396 214826627 +214841060 214841060 +214687768 214706445 +214811752 214811754 +214594678 214594680 214594680 +214821369 214821369 214697771 214697512 214697413 214697409 214652409 214537127 214537127 214820237 214820237 214709645 214699213 214820237 214820237 214820237 214709645 214537127 +214554358 214716950 +214821275 214829741 +214829741 214820842 214821279 214703790 +214716954 214838366 +214821022 214820814 +214684721 214821369 214826833 214819472 +214821315 214821305 +214826702 214821275 +214717847 214819719 214748336 +214536440 214536437 +214512416 214512416 +214839313 214839313 214839313 +214826705 214826705 +214510044 214510044 214510044 214582387 214537535 214584812 214537535 214584810 +214600989 214704180 +214705693 214696824 214705682 214696817 214705691 214705693 214711710 214705691 214705691 214687539 214705687 214744796 214681648 214717307 214577750 214650382 214744796 214696817 214705682 214711710 diff --git a/fluid/Recommender/gru4rec/train.py b/fluid/recommendation/gru4rec/train.py similarity index 76% rename from fluid/Recommender/gru4rec/train.py rename to fluid/recommendation/gru4rec/train.py index 8656b9b87b818d75cba37d80d09dfbf442aa9cf8..2dee093226111267c03021d61cdb2b39959b5b0c 100644 --- a/fluid/Recommender/gru4rec/train.py +++ b/fluid/recommendation/gru4rec/train.py @@ -9,24 +9,26 @@ import paddle.fluid as fluid import paddle import time import utils - + SEED = 102 + def parse_args(): parser = argparse.ArgumentParser("gru4rec benchmark.") + parser.add_argument('train_file') + parser.add_argument('test_file') + parser.add_argument( '--enable_ce', action='store_true', help='If set, run \ the task with continuous evaluation logs.') parser.add_argument( - '--num_devices', - type=int, - default=1, - help='Number of GPU devices') + '--num_devices', type=int, default=1, help='Number of GPU devices') args = parser.parse_args() return args + def network(src, dst, vocab_size, hid_size, init_low_bound, init_high_bound): """ network definition """ emb_lr_x = 10.0 @@ -67,6 +69,7 @@ def network(src, dst, vocab_size, hid_size, init_low_bound, init_high_bound): acc = fluid.layers.accuracy(input=fc, label=dst, k=20) return cost, acc + def train(train_reader, vocab, network, @@ -96,8 +99,8 @@ def train(train_reader, # Train program avg_cost = None - cost, acc = network(src_wordseq, dst_wordseq, - vocab_size,hid_size, init_low_bound, init_high_bound) + cost, acc = network(src_wordseq, dst_wordseq, vocab_size, hid_size, + init_low_bound, init_high_bound) avg_cost = fluid.layers.mean(x=cost) # Optimization to minimize lost @@ -108,9 +111,10 @@ def train(train_reader, place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace() exe = fluid.Executor(place) exe.run(fluid.default_startup_program()) - if parallel : - train_exe = fluid.ParallelExecutor(use_cuda=use_cuda, loss_name=avg_cost.name) - else : + if parallel: + train_exe = fluid.ParallelExecutor( + use_cuda=use_cuda, loss_name=avg_cost.name) + else: train_exe = exe total_time = 0.0 fetch_list = [avg_cost.name] @@ -120,40 +124,40 @@ def train(train_reader, t0 = time.time() i = 0 - newest_ppl = 0 + newest_ppl = 0 for data in train_reader(): i += 1 - lod_src_wordseq = utils.to_lodtensor( - [dat[0] for dat in data], place) - lod_dst_wordseq = utils.to_lodtensor( - [dat[1] for dat in data], place) - ret_avg_cost = train_exe.run(feed={ + lod_src_wordseq = utils.to_lodtensor([dat[0] for dat in data], + place) + lod_dst_wordseq = utils.to_lodtensor([dat[1] for dat in data], + place) + ret_avg_cost = train_exe.run(feed={ "src_wordseq": lod_src_wordseq, "dst_wordseq": lod_dst_wordseq }, - fetch_list=fetch_list) + fetch_list=fetch_list) avg_ppl = np.exp(ret_avg_cost[0]) - newest_ppl = np.mean(avg_ppl) + newest_ppl = np.mean(avg_ppl) if i % 10 == 0: - print "step:%d ppl:%.3f" % (i, newest_ppl) + print("step:%d ppl:%.3f" % (i, newest_ppl)) t1 = time.time() total_time += t1 - t0 - print "epoch:%d num_steps:%d time_cost(s):%f" % (epoch_idx, i, - total_time / epoch_idx) + print("epoch:%d num_steps:%d time_cost(s):%f" % + (epoch_idx, i, total_time / epoch_idx)) - if pass_idx == pass_num - 1 and args.enable_ce: + if pass_idx == pass_num - 1 and args.enable_ce: #Note: The following logs are special for CE monitoring. #Other situations do not need to care about these logs. gpu_num = get_cards(args.enable_ce) if gpu_num == 1: - print("kpis rsc15_pass_duration %s" % + print("kpis rsc15_pass_duration %s" % (total_time / epoch_idx)) - print("kpis rsc15_avg_ppl %s" % newest_ppl) + print("kpis rsc15_avg_ppl %s" % newest_ppl) else: - print("kpis rsc15_pass_duration_card%s %s" % \ + print("kpis rsc15_pass_duration_card%s %s" % \ (gpu_num, total_time / epoch_idx)) - print("kpis rsc15_avg_ppl_card%s %s" % + print("kpis rsc15_avg_ppl_card%s %s" % (gpu_num, newest_ppl)) save_dir = "%s/epoch_%d" % (model_dir, epoch_idx) feed_var_names = ["src_wordseq", "dst_wordseq"] @@ -163,6 +167,7 @@ def train(train_reader, print("finish training") + def get_cards(args): if args.enable_ce: cards = os.environ.get('CUDA_VISIBLE_DEVICES') @@ -171,15 +176,16 @@ def get_cards(args): else: return args.num_devices + def train_net(): """ do training """ - train_file = "small_train.txt" - test_file = "small_test.txt" - batch_size = 50 args = parse_args() + train_file = args.train_file + test_file = args.test_file + batch_size = 50 vocab, train_reader, test_reader = utils.prepare_data( - train_file, test_file,batch_size=batch_size * get_cards(args),\ - buffer_size=1000, word_freq_threshold=0) + train_file, test_file,batch_size=batch_size * get_cards(args),\ + buffer_size=1000, word_freq_threshold=0) train( train_reader=train_reader, vocab=vocab, @@ -190,9 +196,10 @@ def train_net(): pass_num=10, use_cuda=True, parallel=False, - model_dir="model_recall20", + model_dir="model_recall20", init_low_bound=-0.1, init_high_bound=0.1) + if __name__ == "__main__": train_net() diff --git a/fluid/recommendation/gru4rec/utils.py b/fluid/recommendation/gru4rec/utils.py new file mode 100644 index 0000000000000000000000000000000000000000..f6c28c9db481ae013bf960d0a2fc492b28e35b7c --- /dev/null +++ b/fluid/recommendation/gru4rec/utils.py @@ -0,0 +1,159 @@ +import sys +import collections +import six +import time +import numpy as np +import paddle.fluid as fluid +import paddle + + +def to_lodtensor(data, place): + """ convert to LODtensor """ + seq_lens = [len(seq) for seq in data] + cur_len = 0 + lod = [cur_len] + for l in seq_lens: + cur_len += l + lod.append(cur_len) + flattened_data = np.concatenate(data, axis=0).astype("int64") + flattened_data = flattened_data.reshape([len(flattened_data), 1]) + res = fluid.LoDTensor() + res.set(flattened_data, place) + res.set_lod([lod]) + return res + + +def prepare_data(train_filename, + test_filename, + batch_size, + buffer_size=1000, + word_freq_threshold=0, + enable_ce=False): + """ prepare the English Pann Treebank (PTB) data """ + print("start constuct word dict") + vocab = build_dict(word_freq_threshold, train_filename, test_filename) + print("construct word dict done\n") + if enable_ce: + train_reader = paddle.batch( + train( + train_filename, vocab, buffer_size, data_type=DataType.SEQ), + batch_size) + else: + train_reader = sort_batch( + paddle.reader.shuffle( + train( + train_filename, vocab, buffer_size, data_type=DataType.SEQ), + buf_size=buffer_size), + batch_size, + batch_size * 20) + test_reader = sort_batch( + test( + test_filename, vocab, buffer_size, data_type=DataType.SEQ), + batch_size, + batch_size * 20) + return vocab, train_reader, test_reader + + +def sort_batch(reader, batch_size, sort_group_size, drop_last=False): + """ + Create a batched reader. + :param reader: the data reader to read from. + :type reader: callable + :param batch_size: size of each mini-batch + :type batch_size: int + :param sort_group_size: size of partial sorted batch + :type sort_group_size: int + :param drop_last: drop the last batch, if the size of last batch is not equal to batch_size. + :type drop_last: bool + :return: the batched reader. + :rtype: callable + """ + + def batch_reader(): + r = reader() + b = [] + for instance in r: + b.append(instance) + if len(b) == sort_group_size: + sortl = sorted(b, key=lambda x: len(x[0]), reverse=True) + b = [] + c = [] + for sort_i in sortl: + c.append(sort_i) + if (len(c) == batch_size): + yield c + c = [] + if drop_last == False and len(b) != 0: + sortl = sorted(b, key=lambda x: len(x[0]), reverse=True) + c = [] + for sort_i in sortl: + c.append(sort_i) + if (len(c) == batch_size): + yield c + c = [] + + # Batch size check + batch_size = int(batch_size) + if batch_size <= 0: + raise ValueError("batch_size should be a positive integeral value, " + "but got batch_size={}".format(batch_size)) + return batch_reader + + +class DataType(object): + SEQ = 2 + + +def word_count(input_file, word_freq=None): + """ + compute word count from corpus + """ + if word_freq is None: + word_freq = collections.defaultdict(int) + + for l in input_file: + for w in l.strip().split(): + word_freq[w] += 1 + + return word_freq + + +def build_dict(min_word_freq=50, train_filename="", test_filename=""): + """ + Build a word dictionary from the corpus, Keys of the dictionary are words, + and values are zero-based IDs of these words. + """ + with open(train_filename) as trainf: + with open(test_filename) as testf: + word_freq = word_count(testf, word_count(trainf)) + + word_freq = [x for x in six.iteritems(word_freq) if x[1] > min_word_freq] + word_freq_sorted = sorted(word_freq, key=lambda x: (-x[1], x[0])) + words, _ = list(zip(*word_freq_sorted)) + word_idx = dict(list(zip(words, six.moves.range(len(words))))) + return word_idx + + +def reader_creator(filename, word_idx, n, data_type): + def reader(): + with open(filename) as f: + for l in f: + if DataType.SEQ == data_type: + l = l.strip().split() + l = [word_idx.get(w) for w in l] + src_seq = l[:len(l) - 1] + trg_seq = l[1:] + if n > 0 and len(src_seq) > n: continue + yield src_seq, trg_seq + else: + assert False, 'error data type' + + return reader + + +def train(filename, word_idx, n, data_type=DataType.SEQ): + return reader_creator(filename, word_idx, n, data_type) + + +def test(filename, word_idx, n, data_type=DataType.SEQ): + return reader_creator(filename, word_idx, n, data_type) diff --git a/fluid/recommender/gru4rec/data_preprocess.py b/fluid/recommender/gru4rec/data_preprocess.py deleted file mode 100644 index fdd0de4a14b573be6c4136cbac3b14f5e0c5e64e..0000000000000000000000000000000000000000 --- a/fluid/recommender/gru4rec/data_preprocess.py +++ /dev/null @@ -1,57 +0,0 @@ -import collections -import six - -class DataType(object): - SEQ = 2 - -def word_count(input_file, word_freq=None): - """ - compute word count from corpus - """ - if word_freq is None: - word_freq = collections.defaultdict(int) - - for l in input_file: - for w in l.strip().split(): - word_freq[w] += 1 - - return word_freq - -def build_dict(min_word_freq=50, train_filename="", test_filename=""): - """ - Build a word dictionary from the corpus, Keys of the dictionary are words, - and values are zero-based IDs of these words. - """ - with open(train_filename) as trainf: - with open(test_filename) as testf: - word_freq = word_count(testf, word_count(trainf)) - - word_freq = [ - x for x in six.iteritems(word_freq) if x[1] > min_word_freq - ] - word_freq_sorted = sorted(word_freq, key=lambda x: (-x[1], x[0])) - words, _ = list(zip(*word_freq_sorted)) - word_idx = dict(list(zip(words, six.moves.range(len(words))))) - - return word_idx - -def reader_creator(filename, word_idx, n, data_type): - def reader(): - with open(filename) as f: - for l in f: - if DataType.SEQ == data_type: - l = l.strip().split() - l = [word_idx.get(w) for w in l] - src_seq = l[:len(l)-1] - trg_seq = l[1:] - if n > 0 and len(src_seq) > n: continue - yield src_seq, trg_seq - else: - assert False, 'error data type' - return reader - -def train(filename,word_idx, n, data_type=DataType.SEQ): - return reader_creator(filename, word_idx, n, data_type) - -def test(filename,word_idx, n, data_type=DataType.SEQ): - return reader_creator(filename, word_idx, n, data_type) diff --git a/fluid/recommender/gru4rec/infer.py b/fluid/recommender/gru4rec/infer.py deleted file mode 100644 index a4667f9308bb0c312df3fa5c0a41719d36d9fabc..0000000000000000000000000000000000000000 --- a/fluid/recommender/gru4rec/infer.py +++ /dev/null @@ -1,66 +0,0 @@ -import sys -import time -import math -import unittest -import contextlib -import numpy as np -import six -import paddle.fluid as fluid -import paddle - -import utils - -def infer(test_reader, use_cuda, model_path): - """ inference function """ - place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace() - exe = fluid.Executor(place) - - with fluid.scope_guard(fluid.core.Scope()): - infer_program, feed_target_names, fetch_vars = fluid.io.load_inference_model(model_path, exe) - accum_num_recall = 0.0 - accum_num_sum = 0.0 - t0 = time.time() - step_id = 0 - for data in test_reader(): - step_id += 1 - src_wordseq = utils.to_lodtensor([dat[0] for dat in data], place) - label_data = [dat[1] for dat in data] - dst_wordseq = utils.to_lodtensor(label_data, place) - para = exe.run( - infer_program, - feed={"src_wordseq": src_wordseq, - "dst_wordseq": dst_wordseq}, - fetch_list=fetch_vars, - return_numpy=False) - - acc_ = para[1]._get_float_element(0) - data_length = len(np.concatenate(label_data, axis=0).astype("int64")) - accum_num_sum += (data_length) - accum_num_recall += (data_length*acc_) - if step_id % 100 == 0: - print("step:%d " % (step_id), accum_num_recall/accum_num_sum) - t1 = time.time() - print("model:%s recall@20:%.3f time_cost(s):%.2f" % - (model_path, accum_num_recall/accum_num_sum, t1 - t0)) - - -if __name__ == "__main__": - if len(sys.argv) != 4: - print("Usage: %s model_dir start_epoch last_epoch(inclusive)") - exit(0) - - model_dir = sys.argv[1] - try: - start_index = int(sys.argv[2]) - last_index = int(sys.argv[3]) - except: - iprint("Usage: %s model_dir start_ipoch last_epoch(inclusive)") - exit(-1) - train_file = "small_train.txt" - test_file = "small_test.txt" - vocab, train_reader, test_reader = utils.prepare_data(train_file, test_file, - batch_size=5, buffer_size=1000, word_freq_threshold=0) - - for epoch in xrange(start_index, last_index + 1): - epoch_path = model_dir + "/epoch_" + str(epoch) - infer(test_reader=test_reader, use_cuda=True, model_path=epoch_path) diff --git a/fluid/recommender/gru4rec/small_test.txt b/fluid/recommender/gru4rec/small_test.txt deleted file mode 100644 index d0f4730a3425c016ec938a14c67a539a714a62f7..0000000000000000000000000000000000000000 --- a/fluid/recommender/gru4rec/small_test.txt +++ /dev/null @@ -1,1000 +0,0 @@ -214586805 214509260 -214857547 214857268 214857260 -214859848 214857787 -214687963 214531502 214687963 -214696532 214859034 214858850 -214857570 214857810 214857568 214857787 214857182 -214857562 214857570 214857562 214857568 -214859132 214545928 214859132 214551913 -214858843 214859859 214858912 214858691 214859900 -214561888 214561888 -214688430 214688435 214688430 -214536302 214531376 214531659 214531440 214531466 214513382 214550996 -214854930 214854930 -214858856 214690775 214859306 -214859872 214858912 214858689 -214859310 214859338 214859338 214859942 214859293 214859889 214859338 214859889 214859075 214859338 214859338 214859889 -214574906 214574906 -214859342 214859342 214858777 214851155 214851152 214572433 -214537127 214857257 -214857570 214857570 214857568 214857562 214857015 -214854352 214854352 214854354 -214738466 214855010 214857605 214856552 214574906 214857765 214849299 -214858365 214859900 214859126 214858689 214859126 214859126 214857759 214858850 214859895 214859300 -214857260 214561481 214848995 214849052 214865212 -214857596 214819412 214819412 -214849342 214849342 -214859902 214854845 214854845 214854825 -214859306 214859126 214859126 -214644962 214644960 214644958 -214696432 214696434 -214708372 214508287 214684093 -214857015 214857015 214858847 214690130 -214858787 214859855 -214858847 214696532 214859304 214854845 -214586805 214586805 -214857568 214857570 -214696532 214858850 214859034 214569238 214568120 214854165 214684785 214854262 214567327 -214602729 214857568 214857596 -214859122 214858687 214859122 214859872 -214555607 214836225 214836225 214836223 -214849299 214829724 214855010 214829801 214574906 214586722 214684307 214857570 -214859872 214695525 -214845947 214586722 214829801 -214829312 214546123 -214849055 214849052 -214509260 214587932 214596435 214644960 214696432 214696434 214545928 214857030 214636329 214832604 214574906 -214586805 214586805 -214587932 214587932 -214857568 214857549 214854894 -214836819 214836819 214595855 214595855 -214858787 214858787 -214854860 214857701 -214848750 214643908 -214858847 214859872 214859038 214859855 214690130 -214847780 214696817 214717305 -214509260 214509260 -214853122 214853122 214853122 214853323 -214858847 214858631 214858691 -214859859 214819807 214853072 214853072 214819730 -214820450 214705115 214586805 -214858787 214859036 -214829842 214864967 -214846033 214850949 -214587932 214586805 214509260 214696432 214855110 214545928 -214858856 214859081 214859306 214858854 -214690839 214690839 214711277 214839607 214582942 214582942 -214857030 214832604 -214857570 214855046 214859870 214577475 214858687 214656380 -214854845 214854845 214854684 214859893 214854845 214854778 -214850630 214848159 214848159 214848159 214848159 214848159 214848159 214848159 -214856248 214856248 -214858365 214858905 214858905 -214712274 214855046 -214845947 214845947 214831946 214717511 214846014 214854729 -214561462 214561462 214561481 214561481 -214836819 214853250 -214858854 214859915 214859306 214854300 -214857660 214857787 214539307 214855010 214855046 214849299 214856981 214849055 -214855046 214854877 214568102 214539523 214579762 214539347 214641127 214600995 214833733 214600995 214684633 214645121 214658040 214712276 214857660 214687895 214854313 214857517 -214845962 214853165 214846119 -214854146 214859034 -214819412 214819412 214819412 214819412 -214849747 214578350 214561991 -214854341 214854341 -214644855 214644857 214531153 -214644960 214862167 -214640490 214600918 214600922 -214854710 214857759 214859306 -214858843 214859297 214858631 214859117 214858689 214858912 214859902 214690127 -214586805 214586805 -214859306 214859306 214859126 -214859034 214696532 214858850 214859126 214859859 214859034 214859859 214858850 -214857782 214849048 214857787 -214854148 214857787 214854877 -214858631 214858631 214690127 214859034 214858850 214859117 214858631 214859300 214858843 214859859 214859859 -214646036 214646036 -214858847 214858631 214690127 214859297 -214861603 214700002 214700000 214835117 214700000 214857830 214700000 214712235 214700000 214700002 214510700 214835713 214712235 214853321 -214854855 214854815 214854815 -214857185 214854637 214829765 214848384 214829765 214856546 214848596 214835167 214563335 214553837 214536185 214855982 214845515 214550844 214712006 -214718160 214516142 214848596 214848384 214849314 214829765 214561475 214718160 214718160 214718160 214854924 214856546 214558258 214856546 214718160 214717888 214846125 214580351 214516147 214846125 -214857260 214857268 -214855046 214849299 214856552 214857182 -214858689 214690727 214859117 214858631 214858365 214858856 -214854774 214854774 -214840762 214840762 214844195 214586983 214840762 214840762 214586983 214842347 214842345 214842350 214842347 214844195 214844184 -214587952 214587952 214644960 214840740 214840740 -214857549 214849052 214857549 214857568 -214586805 214509260 -214509013 214509013 214509013 214509013 -214648252 214854872 -214700885 214531550 214531550 214711965 214711965 -214748289 214839950 214848995 -214819472 214819472 -214857257 214857257 -214857260 214857260 214857268 214857268 214857268 -214855046 214855010 214855010 -214829724 214849299 214586722 214849299 214850280 -214854774 214854774 -214857260 214857268 -214636329 214636329 -214859919 214859872 214859900 214690127 214690127 214858631 214859117 214858843 214859859 214858914 214858689 -214857787 214539307 -214859122 214688677 214696434 -214853128 214536187 214853165 -214696434 214644962 214855110 214586805 214696434 -214858847 214690127 214859117 214859872 214859897 214859126 214577505 214858843 -214857257 214857562 214857568 214857570 214857562 -214695326 214696337 214696337 -214849052 214849052 -214587932 214586805 -214857568 214857549 214857549 214857810 214857570 214848995 -214509260 214586810 -214829765 214829765 -214532038 214840382 -214680371 214712235 -214859034 214859034 214858850 214859895 214859300 214857757 214859919 214858854 214690727 214858856 214690775 214859126 214540301 214540299 214859092 214690727 214690775 214858854 214858691 -214858856 214859919 214858854 214859915 214858854 214859081 214859306 214857050 214859036 -214572433 214854872 -214857787 214539307 -214857570 214854894 214857570 -214859876 214854845 214854845 214854778 214819772 -214864498 214858680 -214712244 214712244 -214858687 214859942 214859122 214859889 214858687 214859889 214859092 214859122 214859122 214859036 214857050 214858693 214859942 214859889 214859124 214857759 214859897 214858785 214859940 214859940 214859094 214858847 214859038 214858794 -214858843 214858843 -214851281 214859310 214859126 -214516738 214639299 214518555 -214857260 214644639 -214859126 214859895 214859300 -214854915 214854915 -214853250 214551913 214691531 214855198 -214857547 214857268 -214857257 214857260 214857182 214571413 214684205 214857182 -214851326 214852978 214853094 -214859915 214859915 214859855 -214859242 214835126 214835126 214835126 214835126 214835126 -214861603 214704182 214853355 214646653 -214853437 214697912 214697917 214849605 214849652 214774674 214829034 214651419 214838075 214827069 -214858631 214859117 214858689 214858843 214858691 214858847 -214853102 214854804 -214690775 214690727 214858854 214857757 214859915 214858847 214858856 214858854 214568111 214690775 -214859306 214858856 214690775 214858856 -214859859 214859859 214859859 214858631 214858847 214858631 214858631 214858631 214858631 214859859 214859859 -214690127 214858631 214859117 214858631 214577503 214859859 214859859 214859859 -214575377 214854722 -214858856 214690775 214690727 214857757 214859915 214859306 214858914 214859034 214696532 214859034 214858850 214859300 214859300 214859300 214858691 214859034 214858691 214858903 214859126 214859859 214858912 214859306 214858633 214859081 214859908 214859876 214858779 214858790 214857005 214857005 214859090 214859090 214859882 214858687 214859075 214858363 214858691 214858363 214858691 214858363 214858779 214859908 -214710159 214850291 -214850945 214853135 -214553426 214854962 214859092 214859122 -214857172 214865117 -214853100 214854782 -214859034 214859300 214858689 214859126 -214586805 214586810 -214858856 214690775 214857757 214696532 214859034 214858903 -214748289 214865212 -214821386 214857182 -214586805 214531153 214644857 214644855 214835392 -214859895 214859126 214859919 214859915 214858794 214859872 214859870 214859293 214861455 214861455 214861455 214859895 214859915 214859870 214857557 -214859872 214859900 214859293 214859293 -214643036 214848324 214848324 214643060 214643036 -214858687 214859872 214858785 214690730 214690727 214859094 214690775 214859306 -214857570 214857570 214859870 214859870 214858787 214858787 -214644962 214644960 -214829820 214510057 -214690730 214858631 214859094 214858847 214690130 214859094 214568124 214851097 214690127 214859117 214568117 -214696434 214696432 214696432 214696432 -214859859 214859859 214859859 214858914 -214858847 214858631 214690127 214859859 214858914 214858912 214585676 214859293 -214854894 214854894 -214580462 214712242 214819811 -214859306 214859034 -214857570 214857570 -214857757 214587952 -214858847 214859094 214858794 214859872 214858691 214858843 214858689 214859859 -214859240 214859240 214676606 214859139 -214857605 214712274 214857605 214712274 -214587932 214587932 -214838615 214696627 -214712235 214862317 214700000 -214712235 214700000 -214857260 214857260 214857568 -214854733 214697306 214857172 214857757 214859915 214854733 214857757 214859915 214858365 -214859117 214859117 214854358 214853726 214853726 214690775 214853848 -214854894 214665277 -214688115 214845395 214857596 214572230 -214832604 214832604 -214858365 214857587 214858852 -214704180 214704180 214704180 -214849052 214849048 -214560622 214857268 -214853250 214535649 -214535649 214853250 -214853090 214853090 -214858903 214858903 -214691531 214691531 -214857562 214857562 214857774 214857562 214857562 214857562 -214586805 214586805 -214748289 214858333 -214849055 214849048 -214857570 214839950 214858854 214690727 214859919 -214858794 214858631 214690127 214858631 214858843 214858794 -214587932 214509260 -214587932 214586805 -214857547 214857260 214865212 -214567327 214859915 214586805 -214644159 214853402 -214859872 214858691 214858912 214858689 214859859 214858790 -214587952 214644962 214587952 214644962 -214851122 214854538 214714779 214717247 214853713 214854731 214820345 -214606387 214606387 214859240 -214853090 214853090 -214586805 214840740 214509842 214534693 214840740 214853139 214853282 214853139 214853139 214534693 -214857757 214857759 214859895 214859126 -214602322 214711822 -214586805 214586722 214705115 -214858856 214859306 -214858856 214859034 214859126 214859859 -214560510 214560510 -214586805 214586805 -214853072 214859872 214857759 214858847 214859908 214859876 -214859859 214858914 214859859 -214561462 214561462 -214857568 214854877 214859908 214859293 -214853422 214829882 -214857015 214859872 214859306 214859126 214858689 214859126 214858905 -214859034 214858850 214859855 -214708271 214859859 -214854845 214854845 -214859859 214859859 -214859859 214859859 -214859857 214859857 214858365 214858365 214858856 214858856 -214853754 214853754 -214748295 214748295 214748304 214748304 214748291 -214829822 214540575 214853304 214686056 -214864967 214864967 -214572433 214849299 214690734 214854810 -214586805 214586805 214509260 -214857759 214828970 -214859139 214859139 -214838128 214582935 -214864847 214864845 -214859846 214859846 -214857568 214857568 214857562 214857570 214854877 -214858850 214858850 214858850 -214859034 214859034 214858850 -214854915 214571246 -214857568 214848995 214859908 214858790 214857005 -214857182 214856552 -214820383 214820383 214820227 -214705991 214705991 -214857570 214857562 -214858779 214859075 214858687 214858687 214859870 214854920 214858363 214859090 214859942 214859338 -214857695 214857695 214861464 -214857260 214857568 214857268 214857260 -214686879 214686879 -214844347 214844347 214844347 214851290 214677615 214849312 214844347 214832747 214844347 214829366 214832747 214844347 214829366 214844347 -214857568 214857570 -214690775 214858856 214858856 -214858631 214859859 214858691 214819412 214819412 -214858856 214858854 214690727 214858854 214859859 214858691 214690775 214858854 214690727 214858854 214819412 -214819412 214857587 214857268 214857260 214561481 214849055 -214853094 214853707 -214820450 214857787 -214857268 214849052 214853891 214857660 214855046 214829724 214712276 214857596 214819412 214858333 214690734 -214712276 214857182 214849299 214857579 214850280 -214855198 214691531 214855198 -214700000 214700000 214680371 214680371 214700000 214700000 214680371 214680371 214680371 -214854637 214854637 -214819730 214819807 214819730 -214596435 214587932 214587932 214587932 214587932 214587932 -214859859 214858914 214858843 214858691 214858631 214859117 214859306 214858365 214857172 214855057 214859859 214858633 -214854330 214854583 214687685 -214858856 214690775 -214859038 214858785 214859855 214859855 214858794 214576468 214859876 214859908 214859882 214858779 214857562 -214859859 214858843 -214690130 214858847 214690130 214858856 214690775 214859872 214854701 214857776 214857830 -214820201 214859859 214858914 214859859 214858856 214858856 214690775 -214656240 214714715 214854804 -214710159 214849048 214710159 -214617015 214617015 -214853090 214851326 -214853072 214565557 214510460 214857540 -214714715 214714715 214847780 214705723 214675925 214510460 -214859306 214859872 214854510 214859876 214859908 214859876 214859122 214859092 214859036 214859120 -214854894 214853887 214855095 -214846727 214846727 -214856880 214857399 214658004 -214708271 214690130 214708271 214690130 -214587952 214836819 214595855 -214837417 214837417 -214859117 214859297 214858912 214858787 -214858689 214851077 214851077 214851077 214854174 214744775 214744775 214753515 214714755 214854733 214851013 214853732 214853724 214854731 214839311 214854845 214859904 214854825 214550996 214551000 214550998 214542326 214586687 214829278 214708631 214859904 214854825 214851077 214760606 214858905 -214859872 214858843 214858912 214859126 214858689 214854778 214854845 214859904 214854703 214859893 -214858843 214858912 -214854791 214857568 214857568 214856231 -214858687 214859882 214859942 214858363 214857005 214690130 214859855 214859038 214859124 214858785 214859085 214859940 214859940 214858794 214859870 214859090 214857759 214854920 214854920 214858687 214859124 -214854733 214859300 214859034 214859895 -214687895 214687895 -214850865 214850874 -214857547 214857268 214857260 214713401 -214691531 214691531 -214848596 214561775 214574906 214855012 214857765 -214853122 214853122 -214644962 214644960 214587952 -214853102 214854782 214853102 -214857557 214849055 214848995 214819412 214648603 -214836819 214595855 214596435 -214857260 214855046 -214678196 214744265 214678196 -214859876 214859338 214688677 -214857596 214857575 -214859859 214859859 214859859 214859859 214859859 -214851099 214836330 -214859139 214859139 214850947 -214586805 214586805 -214859122 214858687 -214864843 214820450 -214690727 214859915 214690775 214851163 214856908 214859859 214858914 214859895 214853992 214858856 214696532 214859126 214859297 214859300 214858856 214690727 -214849736 214850364 214849136 -214859081 214859081 -214696736 214858787 214859870 -214857257 214857257 -214537151 214651571 214677545 214643672 214849532 -214561462 214561462 -214858847 214859038 214859855 214859872 214858794 214857568 214857570 -214857210 214532955 -214646651 214567078 -214859919 214859895 214859876 214859908 214859870 214859882 -214854894 214857596 214849052 214857596 214857596 214854894 214854894 214854894 214853102 214849376 214853090 214853094 214853094 214852980 214853090 214859919 214583670 214853996 214849466 214851735 -214854110 214854110 214849554 214849550 -214859306 214858689 214858631 214859855 -214849361 214853437 -214853072 214839200 214850724 214696627 -214857570 214857268 214857774 214856550 214857570 214857262 214857257 -214848324 214848746 -214849299 214746386 -214586805 214509260 214586805 214509260 214509260 -214550409 214515823 214550398 214550409 214515823 214550409 214515823 214550398 214574141 -214857568 214854877 -214850945 214846014 214850945 -214854332 214848159 -214832604 214852155 214708303 214864880 214850942 214850942 214850942 214846012 214829882 214853422 214829102 214849747 214852292 -214857568 214857570 214857260 214857568 214572907 214574726 214561500 214854808 -214859895 214859870 214858787 214859870 214859900 214859855 214859857 214858787 214859900 -214858847 214858794 214859872 214858687 214859870 -214858689 214859908 -214517445 214517445 -214834925 214851152 214851152 214851155 -214858912 214684942 214716746 214853865 214820396 214851236 214849320 214853242 -214510689 214835713 214835120 -214829887 214859297 214858856 214858365 214859306 214859855 214685049 214858912 214858794 214859855 214848605 214859300 214820769 214854146 214859857 214859857 214690775 214858854 214854510 214851077 214858792 214857005 214854510 214858903 214858365 214855982 214854637 214856546 214853715 214858914 214859859 214859300 214859297 214716746 214849320 214853865 214820396 214851236 214859859 214859306 214859300 214859126 -214858903 214859859 214858691 214858691 214858903 214857549 -214746457 214687959 214687959 -214638474 214638474 -214858914 214858914 214858914 214858914 -214857568 214862167 214853887 214857596 -214844070 214843528 214843460 214843528 214844070 -214849440 214853199 214709722 214701086 -214690127 214859117 214858689 214859117 214690127 -214628923 214676486 214676486 214853657 214676486 -214858363 214859882 214859908 214859092 214859870 214858363 214859942 -214628923 214676486 214853657 214676486 214544355 214544550 214695667 214544550 214676486 214628923 214851609 214628923 -214512675 214512680 214859062 -214857570 214857568 214857570 -214819577 214854579 214848658 214854527 -214857260 214640012 214586805 214703904 214857575 -214859242 214586805 214587932 214835000 214704182 214857830 214839950 214819807 214572433 214836819 214836819 214704182 214858854 214859081 214851032 214859139 214859139 214857757 214851032 214858365 214851032 214859297 214704180 214696432 214696432 214572433 214677465 214858852 214687895 214714715 214854780 214743367 214854230 214853327 214856981 214835117 214859240 214859242 214859240 214859242 214650508 214864432 214859872 -214859126 214696532 214859034 -214829724 214849299 214856552 214855010 214850280 214572433 214858852 214571246 214855020 214854915 -214849052 214854877 214854960 214858333 214571246 214571246 214554510 214708305 214554510 214708305 -214717777 214834914 214834914 214834914 -214857562 214857570 -214829807 214691531 214853887 214644962 214644960 -214858914 214859859 214859081 214859081 214690727 -214859094 214690730 214858854 214858847 -214858847 214690130 214859094 214859872 214858847 214690127 214859117 -214587932 214586805 -214851281 214656240 -214748289 214748289 214819412 214858852 -214850743 214718169 -214690775 214858856 214859081 -214849052 214849052 -214668759 214677875 -214849295 214570517 214854508 -214676480 214577709 214854774 214580462 214819730 214853072 214849132 -214690730 214858854 214859919 -214691531 214696432 -214571246 214854872 214571246 214571246 -214854894 214857570 214857787 214854825 214857787 -214510820 214672948 214836800 214702809 214702811 -214857549 214857568 -214644962 214644958 -214858854 214859893 214690727 -214857268 214857549 -214587932 214644962 -214691531 214691338 214838390 214840779 214840779 214691349 214840779 214843376 214840918 214714880 214691396 214840811 214691357 214691471 214691342 -214853657 214853657 -214586805 214509260 214586810 214509260 -214696532 214858914 214859859 -214859859 214859859 214858914 -214587932 214535649 214853887 -214853085 214851326 214853090 -214858850 214696532 214859034 -214829844 214829844 214846340 214844053 214832413 214832417 214853707 214716110 214753515 214588830 214716080 214716073 214716073 214691190 214556942 214554283 214839971 214554283 214857810 214576693 -214850949 214556212 214538201 214530922 -214857260 214857549 -214859900 214859895 214859895 214856550 214851585 214851577 214557009 214846333 -214858854 214858856 214859081 214858847 214858847 214690127 214858631 214859117 214858631 214858631 214690127 214859297 214854845 214568124 214567215 -214859300 214581637 214857442 214857446 214858365 214859034 214858850 214859300 214859297 214829842 -214551930 214774678 -214602240 214602225 -214509260 214587932 -214858691 214854825 -214859859 214859300 214858777 -214858687 214859870 -214546027 214545879 214545883 214545851 214853218 214545851 -214851845 214857787 -214851135 214858687 214859075 214854819 214854298 214820345 214853730 214854352 -214853754 214577709 214853754 -214855046 214854913 214857182 214849299 214820450 214705115 214857605 214712274 214574906 214829801 214857765 -214859915 214859085 214859124 214850940 214744779 214853113 214854300 214861498 -214854707 214854707 -214849052 214854710 214835126 -214857268 214738466 214856552 214855018 214858856 214859122 214857172 214691475 -214691246 214691246 -214644960 214644962 -214858631 214858905 214859902 -214705012 214705012 -214685797 214546100 214685797 214546100 -214859908 214859870 214854778 -214857262 214857260 -214857765 214857579 214857182 -214858785 214858790 214859094 214859908 214858363 214858854 214859034 -214644960 214644960 -214854731 214857262 214857557 214857557 -214857568 214857570 214857587 -214832387 214832387 -214857050 214857005 214858693 214854962 -214859126 214859126 -214849055 214849055 -214849136 214849136 -214857568 214854540 214854731 214854540 -214858856 214859094 214858854 214859857 214690727 214859940 -214560480 214645104 -214851714 214644159 -214848995 214848995 -214857260 214857260 -214857757 214859034 214859126 214696532 -214859117 214859117 -214857810 214853887 -214640012 214640012 -214859859 214858914 214858691 214858843 214858903 214859895 214858850 214859034 214859300 214690127 214859306 214859034 214858850 214859034 214858850 214859895 214859300 214858691 214858903 214859859 214858843 214858912 214859126 214858914 214858689 214859897 214859034 -214854894 214857596 214857596 214819412 214849299 214857596 214859908 214859889 214858363 214858687 214859075 214851129 214859906 214854825 214857187 214848658 -214568102 214577535 214853072 214854922 214848847 214510460 214716673 214676480 -214540035 214854774 -214849299 214857596 -214854707 214854707 214854707 214854707 -214857568 214858847 214859094 214859094 214859094 214858847 214690130 214859094 214690730 214858794 214690127 214859117 214858850 214858843 214859075 214854845 -214837430 214545879 -214587932 214509260 214586810 -214857757 214859126 214859872 214858689 -214852978 214853094 214853077 214852980 -214857187 214856550 214856698 -214532955 214532957 214532955 214639483 214639509 214717867 214748327 214716945 214854626 214829102 214829102 214849747 214853100 214835000 214835000 214857830 214676570 -214849052 214857549 214855018 214859872 -214859859 214865212 -214857260 214738466 -214859859 214859859 -214859859 214859242 214853094 214859094 214859855 214859038 214859038 214859124 214857568 214857568 214554973 -214849055 214849055 -214712274 214509787 -214859876 214858693 -214859117 214859900 -214859081 214857757 214857759 214859870 214859036 214859122 -214586805 214586805 214586810 -214854785 214854785 -214848986 214686864 214848986 -214858847 214690130 -214857549 214857549 -214859876 214858693 214858779 214858790 214858792 214854845 214854731 -214849052 214849048 -214857253 214849055 214849048 -214854845 214859848 214717305 -214854877 214572433 214854877 -214854915 214849048 214849048 -214858687 214858790 214859908 -214857787 214857660 214854877 214539307 -214850405 214856908 214851165 214851748 -214856981 214855046 214849299 214738466 214855046 -214846391 214846391 214556840 214687475 214857268 214857268 214858792 -214839120 214839120 -214858914 214858847 -214854264 214854264 214567329 214859855 -214849055 214567329 214854264 214854845 214854778 214858847 214859855 214690727 214859872 214859094 214854354 -214857759 214859919 214857759 214857570 214857268 -214849052 214854960 214857765 214856981 214854915 -214691531 214855198 214853887 -214572433 214774676 214574777 -214859915 214859081 214859085 214859081 -214509260 214587932 214644962 -214836819 214596446 214596446 -214859942 214859889 214859310 -214859094 214690727 214858854 214690730 214857757 214859081 214859075 214859092 214854962 -214854860 214854860 -214857570 214857570 -214857253 214857253 -214826668 214554510 214554510 214554510 214554510 214554510 214554510 -214854774 214695523 214705659 214711614 214819779 214571276 214571276 214571276 -214854877 214712274 214574906 214571246 214858333 214571246 214854810 -214710159 214839950 214854710 214820450 214705115 -214554358 214717003 214717003 214717003 -214851120 214676480 214688589 214510445 -214859094 214690730 214859908 214859075 -214638478 214638482 -214858689 214858689 -214859094 214858631 -214857568 214854894 214857260 -214853887 214858850 -214857268 214857568 -214702895 214839911 214702895 -214857695 214854924 214857776 214856700 214849344 -214857260 214849048 214853122 214854877 214855012 214854877 -214851120 214853122 214845502 214864432 214676535 214845504 214836506 214845506 214530729 214845502 214845504 214864432 214856552 -214821390 214821390 -214857765 214850280 214856981 214857268 -214854264 214567329 214567329 214854264 214854268 214854268 -214700992 214839341 214774682 214717061 -214858914 214859872 214859306 214859876 214865117 214865120 -214859908 214858687 214859876 214854920 -214857570 214857562 -214850280 214855018 214703904 -214857568 214858856 214858847 214859126 214858903 214696532 214858365 -214853282 214859132 -214856550 214857187 214857187 214857568 -214857182 214850280 -214859306 214696532 -214857549 214857549 214857257 214857260 214857568 -214857549 214857260 214561462 214648252 214857568 -214853195 214859880 214859915 214851748 -214530575 214602356 -214717003 214565666 214565666 214857257 214857257 214853698 214853698 214853735 -214857568 214857568 -214855198 214855198 214853887 214691250 -214857757 214859915 214854920 -214849052 214640012 -214836819 214836819 -214859859 214858689 214858843 214858847 214854845 -214644962 214696434 214696434 -214851155 214853327 214854583 -214857570 214854894 -214718265 214844218 -214857568 214857570 214857568 214857568 214857568 214857570 214697844 -214851845 214856552 -214857255 214857257 -214853094 214853094 214853094 -214859859 214859859 -214859126 214858794 214859872 -214857570 214859857 214858365 214859908 -214850730 214850730 214850730 -214858847 214858785 214858365 -214857549 214857260 214857268 214857182 214855010 -214849048 214849048 -214829807 214545928 214551913 214855198 214853887 214691531 214691531 214842437 214691531 -214857570 214857568 -214578268 214858852 -214859919 214859915 214859306 -214854877 214552172 214854877 -214701787 214851032 214835713 214851032 -214854332 214854332 214859897 214859919 214859876 -214567331 214848283 214567331 214567331 214567331 -214669895 214846382 -214712274 214712274 -214859342 214859342 214859342 214859342 214859342 214859342 -214857570 214856552 214853072 -214857568 214857568 214857568 -214849299 214857596 214854915 -214852987 214852987 214850332 -214580360 214580360 -214859038 214859081 214858365 214859081 214859872 214858631 214859117 214859900 214858843 214859297 214858689 214858912 -214858850 214568120 -214854845 214859902 214854845 214717273 214530718 -214829312 214546123 -214596435 214596435 214595855 214596435 214595855 -214546022 214546025 214546022 214686071 214546025 214546022 214686067 214546018 -214674705 214674705 -214833789 214855012 214658252 214539279 214668795 214550855 214668795 214821386 214828905 214711267 214711267 214711267 -214850422 214716579 214702877 214851071 214851759 214857583 214534359 214547186 214711267 214711267 214539403 214833789 214658252 214657811 214640861 214684449 214586876 -214858852 214690734 214855018 214819412 214857596 -214857549 214857568 214857260 214821815 -214587932 214848596 -214859872 214690130 214854920 -214857570 214857570 -214712274 214857182 214855046 -214717288 214717288 214843372 214843372 -214842352 214842347 214586927 -214857568 214857568 -214819412 214857575 -214857774 214856550 214857187 214855982 214855057 214857774 214851099 214836330 214853730 214853730 214570871 214570877 -214859859 214859859 -214696434 214587952 214836819 -214836819 214595855 214644962 214644960 214587952 214596435 -214509260 214696432 214857575 214571246 -214691531 214864670 214844070 -214859122 214857776 -214854313 214857587 -214829724 214858852 -214690130 214858856 214857757 214858794 214858687 214859908 214859906 -214849299 214855046 214849299 214584797 214576839 214708235 214706150 -214853338 214853338 214853338 -214857575 214648603 -214586805 214586805 -214855048 214857185 214856702 214857695 214856700 214854637 214851129 214855982 214857776 -214857570 214857568 214857268 214857260 -214853096 214853096 -214857549 214857570 -214828882 214713954 214696177 214676342 214714342 214713872 214713999 214714014 214714014 214714014 214714014 -214645005 214586722 214856552 214648603 -214853120 214853120 -214853102 214836932 214854731 -214687959 214697432 214656382 214696826 -214859460 214559651 214859458 214859460 -214829840 214586722 214857575 -214859094 214690730 -214853184 214857262 -214846404 214846404 -214516138 214854804 214714715 -214644960 214644962 214596435 214836819 214596435 214596446 214596435 214596446 -214580276 214829034 -214857765 214572230 214857765 214857765 -214851242 214848990 -214696532 214859126 -214571900 214836729 214571900 214571932 214571900 214714740 214571904 214571904 214836842 -214849132 214849132 -214857015 214859857 -214849052 214849052 -214712274 214857605 214712274 214712274 214857605 -214859306 214859126 214854920 214858687 214859075 214859092 214859908 214859882 -214692868 214857568 214857260 214712274 214857605 214712274 214854915 -214829807 214551913 -214586805 214586810 -214858856 214690775 214859306 -214561481 214561481 -214829724 214849299 -214859872 214859908 214854920 214857172 214865120 -214849286 214849342 214743352 214853122 214859075 214858687 214859310 214859889 -214858903 214858689 214859034 214858631 -214850702 214854497 214857562 214857262 -214516708 214516708 214516708 -214856829 214856831 -214587932 214509260 214509260 214586805 214509260 214845077 214708256 214835250 -214690730 214859094 214690730 214858794 214858794 214859872 214859117 214858691 214858843 214858689 -214859117 214858843 214858691 214858691 214858689 -214690727 214690775 214858854 -214858856 214690775 214859915 214859034 214696532 214859882 -214691531 214842437 214855198 214853887 -214857570 214857570 214857568 -214509260 214586810 -214858847 214859872 214858631 214690127 214859117 214859900 214858691 214858912 214858689 214859859 214858914 214858847 214859094 -214705018 214705018 -214829724 214855010 -214855018 214859876 -214850735 214857765 -214586805 214586805 -214857257 214857257 -214855198 214853887 214862167 -214859034 214858912 214858914 214859085 214859126 -214836819 214596435 214596446 214587952 214644962 214644958 214587932 -214853081 214849048 -214859094 214859094 214858854 214690727 214690775 214690727 -214690734 214858333 214854810 214858687 -214851155 214691475 -214855010 214855010 214820450 214857182 214857660 214857787 214857660 -214539534 214539534 214569230 214569230 214539534 214569230 214569230 -214853420 214846033 214584092 214846033 214829880 214829878 214853420 214695253 214846033 214717511 214831946 214850945 214846029 214850947 214854785 214640353 214551892 214551885 -214663935 214851714 -214857549 214857549 214857568 214857260 -214857015 214857549 214857253 -214857759 214859872 214854920 214859908 214859876 -214586805 214586805 214829807 214696434 -214690775 214858790 214858687 214859075 214859122 214859857 214858633 214858365 214859034 214857757 214859034 214858691 214858903 214859859 214858914 214690775 214690775 -214587932 214587932 214595855 214596435 214595855 214836819 214696434 214836819 214829807 214586810 214586805 -214705370 214845917 214716667 -214554675 214854268 214853994 214851750 -214861498 214861498 214819742 214858777 214859304 214864680 214859848 214854701 214861498 -214857568 214857570 214857260 214857568 214857268 214857570 -214696532 214858850 -214840082 214707817 214644157 214851714 214849003 214849003 214849003 214851714 -214857587 214856981 214705115 214858852 -214859342 214853720 214559848 214838792 214533729 214838805 214838812 214680485 214709595 214838822 214839605 214838822 214587058 214602315 214856670 214717837 214856805 214531513 214602752 214531513 214602752 -214587952 214836819 214857414 -214857570 214857568 214857562 214857570 214837873 214542345 214652422 -214853094 214691295 214843931 214691295 214851249 214691248 214840871 214691246 214840871 -214857268 214857570 214857260 214857268 -214857570 214857562 214857268 -214854825 214854825 -214849048 214849299 214856981 214857765 214572433 214820450 214705115 -214821315 214612708 214844441 214533022 -214850578 214850578 -214859126 214859126 214858365 214859306 214859859 214859126 214859126 214858790 -214685049 214716714 -214851555 214851553 214540035 -214846312 214859122 -214559008 214690794 214613743 214584920 214539084 214857437 214827011 214836512 -214856552 214705494 -214644960 214644958 214644960 214835000 -214859293 214652422 -214853891 214851845 -214858631 214858843 214858691 -214857570 214857268 214857570 214857268 -214858852 214858852 -214858680 214821371 214554793 -214703904 214556563 214553426 214556563 -214717612 214856482 -214857800 214574147 214574147 -214859117 214690127 214858631 214858691 214858912 214858905 214857005 214859889 -214690130 214690730 214857759 214859855 -214858854 214858854 214858856 214690775 214857757 214859857 214859919 214859915 214859085 214859081 214858850 214696532 214859126 214859090 214859908 214577503 214859306 214859297 214859895 214572448 214695553 214686547 214854358 214532351 214690781 214854778 214856555 214834886 214856567 -214854860 214854860 214854860 -214859872 214858689 -214859094 214859306 -214857257 214857549 214857568 214857568 214849052 -214853887 214691250 -214857182 214857587 -214858856 214858856 214858905 -214587932 214587952 214644960 214853887 214832604 -214509260 214509260 214509260 -214857570 214857568 214854894 -214857257 214857257 214859038 214859038 -214859139 214700000 214680371 214857830 214639700 214639708 214639815 -214858850 214858850 214859306 214858856 214858854 214858850 214859859 214859126 214859034 214684942 -214851097 214859126 214859126 214854358 214858689 214859126 -214855003 214853754 -214690734 214703904 -214857257 214857570 214710159 -214857257 214854894 -214509260 214574606 214574604 214574606 214574606 -214844184 214844188 214844186 214844190 214844195 214639370 214842350 -214859902 214854701 214859904 214858777 214854701 -214857568 214857782 -214859859 214859859 214858631 214859117 -214857579 214857596 214857596 214648603 -214850287 214854853 214853454 214711682 214676364 214709630 214696545 214711903 214820306 214849747 214829102 214561991 214854853 214854853 -214858847 214690730 214859094 214690730 214690727 214858631 214858631 214858631 214858631 214859300 214859297 214858691 214859126 214859872 214857005 214857005 214857005 214690730 214859306 214859117 214690727 214858631 214858691 214858691 214859306 214859872 214859126 214858843 214858847 214859094 214690730 214690730 214858854 214690727 214859094 214690130 214859859 -214859034 214858847 214859094 214858794 214858850 214858691 214858903 214859859 214577505 214573310 214687905 -214857570 214857568 -214691475 214857268 -214857260 214857547 214703904 -214586805 214586805 214586810 214587932 -214857568 214857570 214854877 -214857596 214857596 214857596 214857596 -214717888 214718220 -214857257 214857262 -214857257 214857260 214690130 214859900 214859876 214857005 214858792 214857260 214857268 -214849048 214849048 214791707 -214531565 214531567 -214690775 214859034 214859034 214858850 214859034 214859895 214858903 214858850 214858850 214858850 214696532 214858691 214859300 214858691 214859126 -214854845 214859902 -214550383 214581898 214581817 214515834 214581817 214574124 214515834 214515834 214574124 214574124 214581815 214515883 214515830 214515883 214515834 214857797 -214644960 214595855 214596435 214836819 -214836819 214836819 214595855 214596435 214644960 214644960 -214595855 214595855 214836819 214836819 214596435 214596435 214644960 214644960 -214858856 214858856 214690727 214858854 214859915 214859306 214858850 214859126 214858689 214859300 214859117 214859117 214696532 214858856 214858856 214858856 -214858856 214859306 214859117 214858689 214859859 214859859 214854176 214853210 214859300 214851748 214567333 214854262 -214703904 214703904 214571246 -214820450 214855046 -214854778 214819772 -214832366 214832364 -214858854 214859857 214858850 214858914 -214858847 214848337 -214690127 214858631 214858689 214859297 214859117 -214716673 214716673 -214846402 214712681 214712822 214712820 214712822 214712681 214832422 214712681 214832394 -214857549 214857568 -214854962 214858787 214857172 -214836819 214836819 -214577477 214577477 -214535649 214602729 214865212 -214857570 214857568 214857568 -214854780 214859304 214854845 214854780 214854780 214859304 214854845 214859304 214854845 214854845 214859304 214854780 -214744779 214854577 214690796 214857759 214690796 214854577 214854577 214859302 214717562 214748336 -214705115 214856552 -214849048 214849055 214849048 214849055 -214853072 214578011 -214572433 214572433 -214857260 214857549 -214853852 214859297 214850855 214854148 214564387 -214859870 214854920 214859882 214858363 214851129 214851129 -214688630 214845947 214688610 -214857030 214696432 214696432 214587952 214696432 214857039 -214820345 214854540 214853730 214848658 214848658 -214858847 214859872 214858847 214859094 214858687 214859122 214859092 214859122 214854962 -214859126 214859300 -214586906 214857568 214857570 214857562 214857268 214575369 214640353 -214857562 214857570 214857257 -214696432 214857030 -214858854 214858854 -214836819 214696434 -214857570 214858847 214859094 214690730 214859872 -214854705 214854705 -214712274 214712274 214712274 214848159 214686069 214709604 214712036 214855012 214582380 214606963 214606777 214848941 214554714 214850775 214848941 214848941 214712274 214846865 214848039 214846865 214855012 214855012 -214709702 214709702 214677830 -214510445 214510445 -214857570 214857570 214857568 214857570 214854894 214857268 214857260 214857568 -214859036 214851281 -214690130 214690730 214859872 214859034 214858850 214859034 214859895 214859117 214858689 214858914 -214516012 214516012 214516012 214575146 214575146 -214857257 214828882 214858847 214690130 214859094 214690730 214859872 214859306 214858794 214859075 214854842 214854720 214853081 214690839 214859126 214858689 214859306 214684785 214854358 214686547 214695525 214567333 214854510 214853135 214854165 214853242 214857015 214677401 214859921 214849455 214709690 214709645 214716255 214846404 -214858847 214859094 214858689 214859859 214859038 214858785 214859940 214859897 214859908 -214829807 214829807 -214859034 214858850 214859126 -214849052 214849052 214572433 214854877 214829724 -214696644 214700992 -214853072 214580462 -214586805 214586810 -214836819 214586805 -214819412 214819412 214858852 214858852 -214691471 214691471 -214857257 214857257 -214690730 214690730 214690730 214859094 214859117 214858631 -214857782 214857782 214857782 -214857268 214857260 214857268 -214858847 214859872 214858794 214858689 214859872 -214859034 214858850 214858850 214859300 214858850 214859859 214858903 214859034 214859034 214696532 214859034 214696532 214696532 -214696432 214696432 -214688098 214854960 -214690130 214859117 214690127 214696532 214859126 214858689 214858912 214858912 214858850 214858912 214858912 -214684730 214853102 214854785 214864880 -214855785 214855820 -214859859 214858689 214858912 214858691 214859900 214859297 -214587932 214509260 214586722 -214857812 214865120 -214577385 214647553 -214847876 214853222 -214858856 214859075 214859908 214858856 -214586805 214586805 214586805 -214858365 214859940 214859897 214858847 214858856 214857759 214858687 214857172 214858363 214717305 -214849052 214856552 -214857570 214857568 -214853092 214853092 -214859038 214858785 214859872 214859306 214859117 -214834931 214856520 -214714912 214714910 214852198 214714907 214852220 214852230 214852222 214848236 -214850280 214574906 -214857255 214748289 214856981 214572433 214857765 -214838261 214857564 -214587932 214853771 -214645003 214677922 -214567329 214854264 -214857701 214690734 -214853497 214717498 214717498 214854347 214854347 214748257 214836947 214857260 214857260 -214858856 214859908 214854920 214859075 -214856576 214687907 214856574 -214853122 214853122 214853122 -214858905 214858905 -214835120 214696425 214862317 -214847150 214844392 214855010 214844392 214855010 214844392 214846262 214855010 214855010 214738466 214855010 214574906 214572230 214857575 214846378 -214690775 214858856 214857757 214859940 214859897 214859085 214858854 214858633 214859919 214859306 214847034 -214856700 214856550 214856702 214857187 -214819412 214849299 214829724 -214857257 214857257 214857549 214857257 -214857562 214854845 -214587952 214587932 -214857549 214857570 -214716982 214716982 214854570 214854622 -214858856 214690775 214857757 214858365 214696532 214859034 214858903 214859034 -214858905 214858905 214851155 214851155 214851155 -214854701 214854701 -214845407 214845407 214845407 214845407 -214859870 214859908 -214854913 214712274 214857765 -214859034 214858850 214859895 214859126 214858903 214858689 -214858779 214859942 -214572433 214572433 214572433 214572433 214857570 214857568 -214857812 214857812 -214856552 214586805 214855010 214857575 214819412 214853887 214855095 214853887 -214859094 214859075 214859908 214690730 214859038 214859855 214859872 214858794 214857587 -214669817 214669884 -214857570 214857568 -214854313 214839339 214774676 214827020 214819747 214570547 214746386 214569729 214854296 214854215 214854311 214717063 214849295 214717427 214709634 -214857810 214857557 214857557 -214848995 214857549 214857257 214865212 -214858856 214858850 214858687 -214849055 214857262 -214858854 214690727 214858854 214859306 -214857555 214857810 -214576468 214576468 -214694752 214694257 214694720 -214509260 214650508 214853122 214676480 214851845 214645005 214577535 214587193 214865120 -214849048 214849048 214849048 214857547 214854810 -214644960 214586805 -214574906 214746457 214846978 -214849327 214828970 -214854845 214760595 214844782 214760535 214760617 -214540020 214855170 214510453 214819815 214819723 214540020 -214853102 214859857 214859919 214859306 -214858856 214857757 214859857 214857757 214859857 214859915 214859915 214859306 214859126 214859908 214857005 214859304 214859878 214859846 214865117 214832398 214716069 214849393 214857257 214857557 214857570 214857568 214857810 214855012 214854853 214853147 214711040 -214854920 214854920 214854962 214854920 214711952 214748257 214854347 214711952 214851077 214861464 214674427 214854920 214857562 214857570 214857568 214854920 214854920 -214854920 214857570 214848596 214854920 214748257 214854920 -214668791 214829662 214829662 214819412 214703904 214690770 -214844396 214849734 214846415 -214703904 214577302 -214717721 214717625 214853360 -214849052 214645005 214645005 214851845 214851845 214853891 214851845 -214857562 214859306 -214690730 214690730 214859094 214859117 214858689 214859872 214859075 -214836320 214836320 214836320 214836320 -214544782 214848107 -214714586 214714586 214714586 -214551913 214557268 214551913 214850400 214551930 -214859870 214858790 -214853263 214853263 214851129 214851281 214856936 214586591 214536311 214646192 214646188 214856932 -214559077 214859117 214859117 -214857268 214857260 -214849052 214690775 214859859 214696532 214858691 214696532 214859859 214859117 -214854778 214854778 -214828970 214839911 214839911 214853072 214687742 214833782 214834914 -214753650 214753650 -214854913 214849299 214820450 214705115 214712274 214829801 214854877 214850280 214850280 214850280 -214854877 214709687 -214857596 214690734 214854920 214859342 214696432 -214859857 214859306 -214849052 214849052 214859293 214859293 -214859900 214690775 214859915 214859919 214859124 214859085 214858633 214858785 214858847 214690727 214859094 214859855 214859857 214859306 214859872 214858365 214859038 214859038 -214858689 214857005 -214595855 214596435 214644962 214644960 -214858631 214858631 214690127 214690127 214859872 -214819777 214826904 214836885 214846367 214561775 214554707 214857547 214826711 -214854894 214849052 -214854148 214853094 214853096 -214568117 214859094 214858847 -214541660 214849170 214858710 214848808 214709685 214848851 214848851 -214690775 214859306 214858850 214859126 214858687 214854845 214854825 214856660 -214657457 214684545 -214857549 214857568 214857549 214690730 214859094 214690730 -214853705 214853705 -214859859 214851165 214858914 214859859 214690775 214858856 214859306 -214857787 214854960 214855046 214556563 214553426 214865212 214855012 -214848845 214849012 -214857759 214854920 -214517443 214848650 214517445 214602480 214517443 -214858856 214690775 214858365 214858792 -214820450 214819412 214819412 214857596 214857596 214556563 214556563 -214700000 214744258 -214565623 214557234 -214857204 214835000 -214859919 214859919 214857172 214857570 214846475 214845590 214853347 214850709 214853135 214854152 214859917 214850709 214854579 214819577 214857262 214859915 214859919 214859919 214850709 214859917 214859917 214854534 214854534 214642779 214509125 214864498 -214854915 214857701 -214508287 214508287 -214705991 214705991 -214580360 214580360 -214859904 214854825 -214857568 214854894 -214690130 214858631 214858689 214858689 214858689 214858689 214859117 214858631 -214643036 214509013 214643942 -214854311 214836827 -214856807 214856807 214687907 214856576 214687907 -214712102 214695238 214695238 214695238 -214858689 214858631 214859117 -214820345 214854731 -214848755 214560534 214643036 214697330 214697364 -214859859 214858689 214859859 -214859094 214690730 214859094 214690730 214859094 214858854 214690727 214690775 214859306 214858850 214696532 214696532 214858850 214859034 214859859 214859895 214859859 214859126 214859895 214859300 214859300 214690127 214859126 214858912 214858912 214690127 214690127 214859859 214858689 214859300 214690775 214696532 214858912 214858365 214696532 214858691 -214858787 214859891 214851281 -214835000 214853100 -214859038 214859081 -214857570 214854894 214857260 214857268 214849048 214853122 -214587932 214701787 214587932 -214707817 214826820 -214857570 214857570 214857568 214857568 214857570 214857570 -214859092 214820450 -214836819 214595855 214836819 214596446 214836819 -214855046 214829724 214857587 -214676480 214676480 -214864680 214709649 214829878 214846033 214695225 214695225 214850282 214567417 -214832126 214859117 -214849052 214829724 214849299 -214587932 214509260 214587932 -214849052 214829724 214857596 -214550627 214550627 diff --git a/fluid/recommender/gru4rec/small_train.txt b/fluid/recommender/gru4rec/small_train.txt deleted file mode 100644 index 6859153cc936001154feb494468bcf3bf4a33bd2..0000000000000000000000000000000000000000 --- a/fluid/recommender/gru4rec/small_train.txt +++ /dev/null @@ -1,1000 +0,0 @@ -214536502 214536500 214536506 214577561 -214662742 214662742 214825110 214757390 214757407 214551617 -214716935 214774687 214832672 -214836765 214706482 -214701242 214826623 -214826835 214826715 -214838855 214838855 -214576500 214576500 214576500 -214821275 214821275 214821371 214821371 214821371 214717089 214563337 214706462 214717436 214743335 214826837 214819762 -214717867 214717867 -214836761 214684513 214836761 -214577732 214587013 214577732 -214826897 214820441 -214684093 214684093 214684093 -214561790 214561790 214611457 214611457 -214577732 214577732 -214838503 214838503 214838503 214838503 214838503 214548744 -214718203 214718203 214718203 214718203 -214837485 214837485 214837485 214837487 214837487 214821315 214586711 214821305 214821307 214844357 214821341 214821309 214551617 214551617 214612920 214837487 -214613743 214613743 214539110 214539110 -214827028 214827017 214537796 214840762 214707930 214707930 214585652 214536197 214536195 214646169 -214579288 214714790 214676070 214601407 -214532036 214700432 -214836789 214836789 214710804 -214537967 214537967 -214718246 214826835 -214835257 214835265 -214834865 214571188 214571188 214571188 214820225 214820225 214820225 214820225 214820225 214820225 214820225 214820225 214706441 214706441 214706441 214706441 -214652878 214716737 214652878 -214684721 214680356 -214551594 214586970 -214826769 214537967 -214819745 214819745 -214691587 214587915 -214821277 214821277 214821277 214821277 214821277 -214716932 214716932 214716932 214716932 214716932 214716932 -214712235 214581489 214602605 -214820441 214826897 214826702 214684513 214838100 214544357 214551626 214691484 -214545935 214819438 214839907 214835917 214836210 -214698491 214523692 -214695307 214695305 214538317 214677448 -214819468 214716977 214716977 214716977 214716977 214716939 -214544355 214601212 214601212 214601212 -214716982 214716984 -214844248 214844248 -214515834 214515830 -214717318 214717318 -214832557 214559660 214559660 214819520 214586540 -214587797 214835775 214844109 -214714794 214601407 214826619 214746427 214821300 214717562 214826927 214748334 214826908 214800262 -214709645 214709645 214709645 214709645 214709645 -214532072 214532070 -214827022 214840419 -214716984 214832657 -214662975 214537779 214840762 -214821277 214821277 214821277 -214748300 214748293 -214826955 214826606 214687642 -214832559 214832559 214832559 214821017 214821017 214572234 214826715 214826715 -214509135 214536853 214509133 214509135 214509135 214509135 214717877 214826615 214716982 -214819472 214687685 -214821285 214821285 214826801 214826801 -214826705 214826705 -214668590 214826872 -214652220 214840483 214840483 214717286 214558807 214821300 214826908 214826908 214826908 214554637 214819430 214819430 214826837 214826837 214820392 214820392 214586694 214819376 214553844 214601229 214555500 214695127 214819760 214717850 214718385 214743369 214743369 -214648475 214648340 214648438 214648455 214712936 214712887 214696149 214717097 214534352 214534352 214717097 -214560099 214560099 214560099 214832750 214560099 -214685621 214684093 214546097 214685623 -214819685 214839907 214839905 214811752 -214717007 214717003 214716928 -214820842 214819490 -214555869 214537185 -214840599 214835735 -214838100 214706216 -214829737 214821315 -214748293 214748293 -214712272 214820450 -214821380 214821380 -214826799 214827005 214718390 214718396 214826627 -214841060 214841060 -214687768 214706445 -214811752 214811754 -214594678 214594680 214594680 -214821369 214821369 214697771 214697512 214697413 214697409 214652409 214537127 214537127 214820237 214820237 214709645 214699213 214820237 214820237 214820237 214709645 214537127 -214554358 214716950 -214821275 214829741 -214829741 214820842 214821279 214703790 -214716954 214838366 -214821022 214820814 -214684721 214821369 214826833 214819472 -214821315 214821305 -214826702 214821275 -214717847 214819719 214748336 -214536440 214536437 -214512416 214512416 -214839313 214839313 214839313 -214826705 214826705 -214510044 214510044 214510044 214582387 214537535 214584812 214537535 214584810 -214600989 214704180 -214705693 214696824 214705682 214696817 214705691 214705693 214711710 214705691 214705691 214687539 214705687 214744796 214681648 214717307 214577750 214650382 214744796 214696817 214705682 214711710 -214821013 214821013 214572182 214572182 -214840762 214586983 -214820441 214826623 -214594633 214594592 214601010 214601010 214601015 214594592 214594592 -214821275 214827032 -214843370 214843370 214843370 -214595893 214595889 -214841060 214841060 214840378 214826955 214821275 214829285 -214826623 214826615 -214819719 214791688 214819472 -214826810 214826810 -214821377 214820201 -214587650 214535617 214535595 214587650 -214573312 214573312 214829257 214834987 -214826810 214840419 214840419 214560187 214716984 -214585397 214585397 -214821339 214844357 -214821020 214819547 214819547 214821024 214718160 214829282 -214551626 214821279 -214821022 214718169 214821024 214601233 214545500 214545455 214545440 214545455 -214820252 214582502 214836802 214672963 -214821020 214829282 -214684093 214684093 214684093 -214681104 214511092 -214706432 214708305 214587013 -214554358 214678916 -214837378 214828850 214828850 -214820942 214684093 -214839313 214840001 -214828867 214743497 214821392 -214674568 214645316 214536860 214639177 214820261 -214589518 214576665 -214709645 214820225 -214709792 214717046 -214532623 214557206 214826897 214826801 214576500 -214697690 214646349 214646250 -214685795 214630042 -214553735 214677969 214553735 214586874 214587937 214586874 214589600 -214840762 214575088 214550259 -214839373 214836765 214838100 -214717007 214716928 -214613865 214613865 214613870 -214716935 214716932 214716932 -214532070 214821285 214711333 214691604 -214565623 214557236 -214820387 214827035 -214535621 214535621 -214552243 214552464 -214820231 214820231 -214826837 214819430 -214826900 214826900 214664919 214826900 -214820456 214820456 -214827020 214821272 -214821367 214584808 214836761 214826893 214839849 -214835561 214835561 -214774685 214774685 214839997 214839313 214774685 -214826874 214826874 214821399 214826874 -214819552 214820938 214821380 -214826803 214826803 214826803 -214829282 214829282 -214687685 214556840 214601042 214691484 -214821397 214821397 214821397 214821397 -214821022 214819550 214826627 -214669730 214836281 -214821300 214690110 214753515 -214821277 214821277 -214540035 214577711 214708239 214517880 214577711 214578007 214819725 214819815 -214601462 214746386 -214708404 214708406 214725500 214839660 214833714 214714817 -214821290 214821290 214585395 214826700 214826700 214826801 214691366 214821377 214567410 214643657 214826608 214684513 214829312 214685795 214829312 214821298 -214821024 214587384 214718203 214832557 -214827022 214836341 -214652422 214567410 214567404 -214820192 214844297 214699301 -214717007 214717005 214717005 -214833802 214843382 214843385 214843387 214842420 214843477 214843955 214843950 214843494 214844310 214696802 214840599 -214833802 214820842 -214839313 214839313 214839995 -214716928 214717003 -214586711 214684160 -214539039 214539084 -214631008 214839995 214839313 -214829285 214826702 -214820938 214821037 -214826803 214821285 214826803 214820383 214826801 -214695345 214701302 214701287 214695386 214696352 -214820842 214840378 214705100 -214743341 214743341 214743341 214837820 214837764 214837762 214709685 214839257 214716341 214685152 214685152 214544945 214544936 -214744779 214743341 214744779 214820456 -214819385 214819378 214710090 214820938 214821022 -214540035 214819798 -214819811 214517880 -214839870 214839866 214705787 -214561991 214561991 214820938 -214745317 214745317 -214556270 214821339 214554384 214694139 -214586722 214826897 214681091 -214601233 214716932 214716930 214716932 -214820385 214820385 -214836958 214537826 214836958 214536577 214836958 214836958 214580790 214580790 214579749 214537856 214512152 214836960 214836960 214612760 -214819410 214700752 -214821275 214833800 -214706102 214800272 -214820402 214820400 -214607143 214640394 214607143 214640394 214607143 -214832557 214717888 -214839311 214820387 214819472 214819740 -214842446 214691602 214842446 214842446 214691600 214691597 214842446 214842442 214691604 -214819490 214828987 214684845 214826912 -214826998 214826998 214748334 214826934 -214821277 214821290 214821307 -214508942 214716982 214716984 214509013 214842290 214840762 214842287 214820441 -214561475 214532147 214539532 214511375 -214692791 214697990 214611283 -214684513 214684513 -214840541 214587508 214551581 -214826955 214826623 214827000 214811739 214650626 214650626 214827005 214834865 214577518 -214826816 214826705 214826816 214826705 214826816 -214839313 214602774 -214820182 214820192 214820182 214820225 214820237 -214510044 214582387 214510044 -214594637 214684513 214602821 214594637 -214826705 214826816 -214826801 214836761 214820255 -214602268 214602268 214602268 -214574777 214700992 214700990 -214826617 214826715 -214826900 214842577 -214576500 214839313 214820195 214709634 214699301 -214826955 214826955 -214545935 214820231 -214600625 214600625 214600625 -214821020 214821024 -214716935 214716932 214582950 -214676387 214676387 -214684513 214839373 214684513 214684513 -214717888 214838503 214685784 214684513 -214826705 214826705 214820383 214826803 214826803 214821285 214821285 214821285 214821285 -214510854 214510854 214672963 214510854 214702811 214510854 214537455 214510854 -214696434 214696434 214696434 -214582942 214582942 -214508942 214753659 -214717007 214838368 214716937 -214826912 214826912 214834865 214834865 -214820218 214547600 -214718169 214821024 -214594678 214594680 -214702740 214601441 214545967 -214640477 214640477 -214640477 214640477 -214821020 214820842 214826897 214535621 214821285 214821373 214821022 -214630042 214819502 -214512656 214512658 214512658 214694332 -214829737 214829737 214829737 214829737 214821309 -214712237 214704180 -214709792 214709792 -214640237 214640237 -214638480 214551570 214638480 -214709312 214664895 214587296 214664895 -214835760 214587785 214840599 214835760 214835585 214833802 214833800 214832730 214587800 214833802 214833802 214538030 214584939 -214838456 214508942 -214702702 214702704 -214706460 214706432 214821028 214821028 214539262 214821030 -214820240 214820240 -214684513 214691267 214691332 -214827062 214827062 -214717528 214717528 214594605 -214716947 214717010 214716975 214646308 -214601233 214601233 214833800 214833802 -214585100 214584808 214584808 214584808 214510738 -214748336 214748336 214819719 -214584920 214613743 214587384 214832557 214821017 214821017 214553936 -214821013 214829282 -214551285 214551287 214551285 -214826801 214826700 214840378 -214552498 214552625 214552625 -214534852 214534852 -214833800 214833800 -214748336 214819721 214601233 214819385 214819378 -214840378 214537037 -214684513 214684513 -214535705 214535705 -214820383 214820383 214841640 214691390 -214839313 214839313 -214602315 214554785 214698592 214698590 214698455 214698592 -214753515 214743369 214819721 214743495 214577450 214711657 214826872 214601233 214717890 -214691347 214691452 -214839812 214835422 214632367 214536367 214717003 -214546719 214678365 -214821290 214821290 -214839373 214539262 -214748285 214820218 -214717007 214717007 214716945 214554358 214717003 -214838977 214696434 -214594680 214594680 -214718160 214684513 -214539262 214820842 -214537775 214556840 214687685 -214572182 214821013 214587384 -214840412 214826212 214753693 214827015 214587028 214826619 214743335 214844357 214821307 214821341 214612721 214842450 -214826955 214716971 -214638480 214638480 214551594 214551594 -214600933 214600933 214835259 214835259 -214746427 214640017 214600989 214743515 214600989 -214589278 214589257 214718276 214587005 214591374 214819571 214586595 -214706441 214706441 -214638480 214638480 -214821307 214821309 214821339 -214551911 214564687 -214819781 214585644 214585644 214650609 214684498 214553540 214553540 214572538 214553540 214553540 214842412 214844030 214843993 214844030 214843492 214843492 214843492 214691537 214691332 -214826801 214651670 214744265 -214509084 214509084 -214839795 214523700 214839791 214708018 214517450 214714927 214712750 214712752 214840526 -214718203 214718203 214842352 214586983 214842347 -214748291 214748304 -214691484 214691396 214691321 214691426 214840822 -214835120 214835120 -214820345 214820385 214710090 214708370 -214596502 214596326 214596502 214596502 -214826810 214839373 -214738445 214738445 -214826810 214691426 -214821371 214821022 214821017 214832559 -214833782 214687742 214709807 214717757 214833782 214709807 214717730 214709807 214709807 214709807 -214546475 214546475 -214577518 214601407 -214748342 214584939 214748342 214748342 214748347 214748347 214748342 -214821022 214718169 214821022 214718169 214821015 -214748336 214826625 -214839313 214839313 -214826619 214821300 214826955 -214826705 214826816 214826705 214821290 214705757 -214509795 214539330 -214820441 214594590 -214687642 214748285 -214835647 214835645 -214829282 214821386 214708044 -214555142 214555140 -214684843 214743335 214819762 214819762 214819760 -214829282 214819547 214819547 214587384 214819552 214819552 -214821339 214551626 -214820814 214746339 214539262 -214744775 214769006 214842450 -214821367 214584808 214718197 -214552560 214552502 -214545980 214545962 -214839373 214684513 -214826810 214826623 214684841 214827007 -214826955 214820182 214820192 214820225 214709685 214829737 -214826955 214826623 214664919 214826625 214826799 214826891 214676580 214691390 214537037 214819745 -214718169 214821022 -214840412 214706124 -214838364 214838364 -214820385 214819526 -214832653 214832655 214832657 214832657 214717003 214717005 214716984 214717867 -214821015 214819547 -214708044 214648254 214832557 214648254 214832557 214648254 214648254 -214717410 214717410 -214837490 214837485 -214716930 214716982 214717003 -214835760 214839815 214587742 -214684093 214684093 214684093 214684093 -214839902 214820252 214644317 -214832557 214832559 214832559 214832557 214821020 214718169 214821022 214819552 214718203 214821017 214833802 214821030 -214581489 214602605 214680371 214581489 214680371 -214532072 214826801 214826627 214826715 214826627 214684513 214826627 214684513 214712126 -214835120 214839313 -214509084 214539845 214509084 214509084 214639211 214645835 214538002 214538002 -214587384 214832557 -214827052 214543545 -214717498 214821024 214567005 214567005 -214716924 214717614 -214833800 214833802 -214826810 214826705 214835940 -214839313 214827000 214826621 214826621 214826617 214826617 214821300 214821300 214826998 214826908 214826908 214821300 214827002 214753515 214826932 214826932 214662742 214698420 214574672 214554765 214690845 214716110 214819719 214819719 214717286 214819762 214819762 214819760 214819760 214826837 214826837 214826872 214826872 214826872 214826872 214826876 214826876 214837442 214821341 214753507 214748300 214548744 214548744 214537850 214717003 214691396 214670070 214832653 214716984 214832657 214840378 214668298 214639903 214629459 214629165 214629292 214629135 214629122 214629120 214629120 214629328 214629324 214544904 214544904 214676570 214676570 214676516 214696423 214696423 214668275 214639702 214676570 214676570 214629120 214629122 214629260 214629260 214629264 214629264 214629292 214629324 214629324 214638977 214638977 214819719 214835120 214629120 214744779 214744779 214744779 214820458 214820458 214744779 214826872 214826872 -214820415 214820415 -214586469 214696897 214712130 -214576946 214576946 -214826810 214820441 214829285 214820842 -214718220 214821022 214826810 214821275 214821022 -214820274 214820231 214584939 -214551624 214586561 -214512416 214587545 -214554510 214821028 214832559 214832557 -214691428 214691428 214691428 214691390 214691293 214836761 -214645835 214509084 214645835 -214832657 214717003 214554358 214717003 214717005 214717005 214717003 214832657 214717003 214717007 214717003 214716984 214717003 214582502 214672963 214582502 214587898 -214821819 214827015 214760897 214601407 214577518 214746427 214826955 -214820938 214556210 -214551626 214551626 -214684513 214716928 214832653 214716984 -214682135 214683298 214683300 214826705 214587167 -214714927 214523606 214714927 214517450 214714929 214518555 214639297 214639299 214516794 -214821275 214826627 214826893 214826612 -214819412 214716982 -214827020 214827020 214821272 214821272 214827020 214821272 214821272 214827020 214827020 -214706460 214821030 214706460 214701684 214701495 -214540035 214517880 -214826803 214826803 214821277 214821277 214821285 214826801 -214535102 214819528 214819528 -214829312 214774685 214837391 214828867 214700968 214700966 214678215 214652882 -214567410 214567410 -214819526 214819547 -214826606 214826606 214837020 214837003 214837014 214714597 214596105 -214547595 214539148 214678509 214644339 -214708372 214708372 214596647 214843464 214843464 214694334 214694334 214629060 214840899 214842459 214840901 214646709 214840899 214708372 214840944 214691550 214691550 214694402 214711903 214694334 214694334 214572688 214572729 214753588 214753588 214596647 214583190 214596647 214837558 214716088 214820237 214820225 214820225 -214711078 214711082 -214535621 214821313 -214708367 214820201 214829737 214709685 214536502 -214672963 214672845 214672946 214821290 214672946 -214826897 214826897 214833800 214833800 214833800 214833800 -214839313 214839997 214839997 214839995 -214826906 214819535 -214561500 214561502 -214532072 214826897 -214717003 214717007 214676364 214676332 214676362 -214573001 214573001 -214691349 214691349 214691471 214691242 -214712107 214711541 -214819419 214580814 -214587740 214587740 214587740 214587740 214536864 214664694 214821388 214612901 214536864 -214826623 214826623 214826623 214826623 -214748295 214748291 -214826619 214826932 214826932 -214641967 214718372 -214557043 214648387 214648389 -214744530 214744530 -214821290 214821292 -214821277 214821277 -214840901 214842440 214835120 -214839313 214839997 214839313 214840001 214839995 -214834991 214827020 -214579288 214668590 214826617 214677697 214680369 214821011 214534798 214716080 214832557 214746382 214745317 214745315 214651430 214586694 214832559 214572234 214572182 -214748336 214819721 214748336 214717247 214819385 -214819472 214839311 214839311 214534907 214584920 214583190 214826747 -214556563 214821277 214556563 -214821373 214821377 214821380 -214820441 214737337 -214832557 214832557 214832557 214832559 214832559 214832557 214832557 214821024 214821024 214821022 214821022 -214582415 214582408 214582408 214582415 214582415 -214601197 214840762 -214826623 214826623 -214837404 214837404 214837404 -214677883 214827020 214821272 -214601810 214536907 214601810 214601810 214601812 214613893 214508852 214826780 214826780 214601810 -214753507 214753507 214753507 214753507 214753507 214753507 214753507 -214533026 214533022 -214821390 214718203 214821015 214821022 214821015 214718203 214718203 -214829312 214829312 214613743 -214684372 214613915 214684372 214684372 214684372 -214833800 214843667 214838456 -214705792 214839313 -214839373 214839373 -214821017 214820454 214684513 214840378 214829737 214820240 214709685 214820182 214761890 214669781 214832552 214716748 -214840378 214557410 -214827007 214826925 214827000 214716710 214716707 214716710 214563133 214563133 214827005 214827007 214834865 214827000 214827000 214826925 214827007 214826925 214706441 214821309 214821309 214821339 214821309 214821309 -214637025 214636355 -214835447 214835447 -214827022 214827022 -214612695 214612695 214672963 214717003 -214684841 214684841 -214700610 214644960 -214820413 214826702 214839313 214821285 214821290 214826816 214585395 -214579730 214509013 -214537867 214738447 214579730 214509013 214596645 214509013 214596645 -214684513 214684513 -214672946 214821290 214672946 214510802 214510044 214672946 214510802 214672946 -214684093 214708372 214708372 214708372 214684093 -214821024 214664919 -214800264 214706150 -214582502 214836806 214840449 -214821030 214821298 214630042 -214821277 214839373 214839373 -214826705 214826835 214711087 214638973 214819745 214716986 214716932 -214584939 214584939 -214644650 214650617 214664820 214644650 214650617 -214821022 214821022 -214821024 214819427 214668249 214819427 214668249 214668249 214668249 214718160 214718160 214821397 -214827020 214706216 -214821290 214585395 214826705 -214716984 214832657 214716982 214716984 -214791688 214819385 214748336 214744779 -214743335 214748334 214753515 -214509135 214832557 214718160 -214744528 214744528 214717742 -214532072 214532070 -214710090 214710090 -214684513 214839373 214684513 -214819562 214819562 -214819550 214718169 214821022 214821017 214821024 214819552 214572234 214819550 -214839311 214843541 214843526 -214840425 214600567 -214587913 214586842 214587911 -214835000 214532955 214532945 -214826705 214826934 -214826700 214826801 -214820842 214821305 -214821300 214551626 -214652460 214652460 214564687 214564687 214557497 214557497 -214832552 214743339 214832552 -214820413 214536440 -214711661 214711682 -214717412 214717412 214701309 214701309 214718158 214572463 214748257 214748257 -214509135 214509135 -214587384 214561475 -214579288 214826615 -214819640 214819640 -214820814 214820814 -214683712 214683712 214701605 214701605 214682921 -214651567 214651571 -214603138 214827007 214601233 214714755 214690110 -214743339 214569707 -214684730 214684730 -214839999 214829310 -214829282 214819547 -214586983 214840762 -214820261 214820261 214820261 -214821272 214821272 214821272 214821272 214821272 214827030 214820842 214820842 214709634 214833800 214833800 -214585397 214839313 214843665 214585397 -214842461 214691430 214840944 214826833 214691484 214840318 -214826705 214821024 -214716932 214581427 214639149 214718117 214690845 214711952 214714732 214716932 214716930 214716935 214716930 214716932 214716930 214716930 214716932 214716930 214544327 214838833 214838833 214710294 214554510 214516033 214712270 214516033 214677440 214516031 214709597 214712017 -214579730 214579730 -214551917 214551917 214551913 214551917 214551917 214551917 214551917 214551917 214551917 214551917 214551917 214551917 -214551917 214551917 214551917 -214643045 214643045 214546102 214829312 214684115 214839997 214746386 214546121 -214820441 214839995 -214551917 214551917 -214832559 214819550 214819550 214821020 214587384 -214821377 214821377 -214717007 214716928 214832655 214716984 214832657 214832657 214717007 214832657 214832657 -214545836 214545825 -214841060 214841060 -214826810 214839373 214600535 214839866 214600532 214596388 214596386 -214685795 214577567 214640893 214640893 214587898 -214580377 214580377 -214585397 214553936 -214833802 214587785 -214837490 214837487 214837490 214838831 214821341 214586711 214640017 -214835578 214536392 214833800 214833800 -214826801 214826702 -214826803 214532072 214820383 -214539845 214539842 214539845 214539845 214587643 -214835120 214821277 -214839313 214839995 214839999 214840001 214839997 214839313 -214532070 214820415 214820255 -214820842 214706441 -214684115 214833800 214833802 214587650 214535617 214535589 -214838100 214691267 214833802 214833800 214836761 -214601672 214601670 -214687867 214586720 214539527 -214827030 214827030 214711205 -214826803 214820383 -214828697 214828865 214587163 214701307 214644731 214687899 214644731 214696824 214696824 214644731 -214826606 214554350 214828697 214828697 214828697 214828697 -214718220 214819547 214718220 -214826705 214826705 214826816 214826810 214532070 -214532072 214839313 214839313 214839995 214839995 214839999 214839999 214839313 214636517 214565512 214565512 -214821390 214819552 214712272 -214664919 214664919 -214642625 214642625 214643893 214746365 214829741 -214718385 214601233 214819378 214819380 -214717007 214717007 -214820441 214820441 -214602605 214712235 -214708305 214839313 214839995 214839313 214586795 -214586711 214687642 214586711 214586711 -214839313 214839313 214717241 214717241 214717241 -214821277 214821277 -214832655 214832657 214716932 -214644956 214532036 -214685784 214840573 214532072 214685784 214840573 214532072 214685784 214840573 214532072 -214639903 214629165 -214694330 214694330 -214717331 214826810 214839373 214546102 214829312 214821272 -214535621 214820259 -214718216 214712107 -214820456 214699213 214706441 -214711297 214589632 214589634 214589627 214589632 214826750 -214716982 214717003 214717003 -214695073 214695071 214695073 214695069 214717406 214695069 214717406 214695069 -214523690 214692821 214508244 214508244 214508244 214526000 214526000 214507387 -214839313 214839313 214839313 -214587013 214832557 214717888 214832559 -214712323 214552080 214552080 214552117 214552125 -214718203 214821390 -214821392 214820454 214820812 214708044 -214819430 214819430 214819430 214819430 214717522 214609325 214609325 214826912 214684845 -214826608 214826608 214826801 214826801 -214718216 214748285 214718216 214718216 214748285 214718216 214826810 -214839313 214839313 214582391 -214820190 214820190 214820190 214820190 214820190 214820190 214820190 214820190 214820186 214711087 214711082 214711082 214711087 214711087 214711318 214684734 214820190 214820186 214820186 214820186 214820190 214820190 214820190 214711087 214819406 214718396 214684730 214684730 214820190 214684730 214820190 214711087 214711078 214711078 214684730 214711078 214711087 214711408 214820190 214684730 214718398 -214753505 214753505 -214744530 214744530 -214748345 214748342 214748345 214553745 214553743 -214591427 214821279 214829737 -214702852 214699884 -214533020 214821339 214821339 -214539845 214744530 214744530 214744530 214744530 214744530 214744530 214744530 214744530 214744530 214744530 -214676400 214546991 214551667 214579462 214552492 -214587384 214551665 214551667 214546991 214603145 214514640 214514640 214579464 214552535 214579464 -214826810 214833800 214826801 -214821277 214821277 -214748336 214748336 -214716990 214716990 -214821305 214821341 -214552080 214552117 -214533553 214819378 214819378 214839311 214839311 214839311 -214826801 214826801 -214826810 214716935 214716930 -214839851 214839808 214844132 214838460 -214826955 214826955 214826623 214826623 214826955 214826955 214826955 214819406 214711087 -214826955 214826955 214826623 214826623 214826627 214826955 -214826623 214826955 -214677399 214677403 214639841 214668285 214544925 -214561475 214567005 214558258 214581793 214581915 -214574145 214574145 -214744530 214601201 214538747 -214821377 214821380 214820814 214838366 -214821037 214704292 -214717867 214717003 -214838100 214838100 -214537417 214672835 -214545928 214545928 -214840599 214839695 -214685795 214709634 -214821367 214832672 214821367 214821367 -214585670 214585670 214585670 214585670 -214561477 214821037 214711661 214567404 214567410 -214821022 214821022 -214829737 214829737 -214530502 214530502 214695167 -214640415 214640415 -214698465 214698465 214698465 214698465 -214826891 214826955 -214687685 214840412 214826212 214642016 -214546121 214546102 -214826715 214718255 -214827032 214827032 214717003 214717003 214716984 214832657 -214594652 214537993 214594652 -214820392 214832559 -214550383 214581815 -214827020 214821272 -214601197 214601197 -214820415 214686086 214645179 214546121 214702787 214702787 -214573108 214573108 -214587384 214718203 -214829312 214829312 -214821388 214821388 -214638480 214551594 -214820252 214717312 214820252 -214821275 214746386 214601462 214746386 214601462 214587028 214717331 -214829737 214829737 -214826816 214826816 214826608 214826608 214821277 214821290 214821290 214826801 214691426 214664919 214664919 214687685 214536502 214826747 214712107 214838503 -214601233 214612730 -214839313 214839313 214839313 214839313 -214819427 214821024 -214820814 214658867 -214832653 214840762 -214667912 214584920 214826747 -214826803 214826803 214826803 214691390 214691293 214539193 214821388 214821388 214539193 214826722 214538820 214589606 214538820 214538820 -214697925 214697925 214697925 214697925 -214711682 214544492 -214546031 214546031 -214819775 214819775 -214746395 214832559 -214820233 214820227 214584907 -214839313 214839313 214839313 -214532072 214532072 214532070 -214717095 214717095 -214826803 214821285 214826897 214826801 -214601040 214601040 214601040 214601042 -214702907 214718158 214701309 -214832655 214832655 214716984 214717007 -214645618 214574777 -214532070 214684385 214552089 -214716971 214716941 -214716930 214716930 214716930 214716935 214832653 214832655 214832653 214832653 -214748336 214821377 -214718220 214821017 -214709685 214709685 214820240 214820240 214706441 214706441 -214748265 214549346 214553578 214553578 214549346 214708035 214708035 214821309 214821309 214551617 214821309 214821309 -214821037 214539262 214539262 -214586825 214613638 -214821373 214821373 214821373 214748287 214821373 214821373 214821373 214821373 214577302 214577302 214642560 214642560 -214843395 214839643 -214702702 214601424 -214827020 214827020 214821272 214821272 214821272 214821272 214827030 214827030 -214826955 214574777 -214820441 214586692 214829741 214820842 214820842 -214826925 214826925 214826925 214826837 214826837 -214582952 214582952 -214572182 214572234 214821017 214819547 214821015 214718167 214821020 214819550 -214644320 214644320 -214511334 214821343 214511334 214821343 214800266 214511334 -214841006 214841006 -214826705 214826705 214826705 -214837487 214837490 214837483 214837485 214717007 -214718246 214711290 -214596502 214596326 -214826906 214826906 214826906 214826955 214826955 214826627 214826627 214800262 214709741 214709741 214819738 214819738 214819738 -214826627 214826955 -214716982 214716928 214826927 -214826803 214839373 -214821377 214821373 -214586711 214716982 214716967 214717001 -214716973 214716926 -214580094 214596107 214580094 214596107 214596326 214596114 -214839995 214840001 214839995 -214821277 214821277 214826810 214709685 214706441 214706441 214709735 -214748334 214717562 -214531372 214531365 214531365 -214833800 214833802 214587650 214833802 214826925 214826619 -214710159 214691188 214688668 214541548 -214586912 214586912 -214710360 214710328 214678457 214678526 214692611 214697310 214587193 214697885 214537050 214697203 214697312 214697325 214697325 214697364 214646520 214844357 214821341 -214586923 214630042 214556840 214826619 -214829285 214829285 -214819385 214717247 214709996 -214743515 214580413 -214716928 214716973 -214826705 214835940 -214840378 214840378 214839909 -214826619 214826619 -214636505 214829679 214664767 214601805 214539845 214829679 214539845 -214702751 214712342 -214829255 214829252 -214710075 214829257 214710075 214710075 -214594678 214594680 214594678 -214508287 214571904 214545879 -214717860 214580413 214652270 214580413 -214826801 214556840 -214545928 214545928 214545928 214545928 214545928 -214545928 214545928 214545928 214545928 214545928 214545928 214545928 -214829312 214829312 -214835900 214838462 -214826705 214826705 214585397 -214587384 214829737 -214821300 214753515 214821307 -214710309 214691557 214691557 214691557 214840342 214843479 214691351 214843517 214843517 214840952 214840952 214690768 214843980 214843980 214843905 214843905 214840828 214840828 214843970 214843920 214843920 214843378 214843378 214691422 214840760 -214738445 214738445 214537867 214511402 -214821392 214820383 -214826702 214586923 -214821275 214601462 214546121 214686086 -214601460 214601462 -214826955 214826623 -214701819 214701819 -214548418 214548418 214826705 -214826810 214826810 214826627 214826835 214718246 214711290 214695412 214711087 214819410 214826606 -214510044 214672963 -214840483 214840483 214840483 214840483 214840483 214840483 -214826893 214572234 -214601407 214826621 214556025 214675890 214564380 214826617 -214601805 214601805 -214718160 214821022 214819547 214561475 -214821339 214821309 -214691293 214691390 -214716935 214716986 -214716935 214716984 -214821020 214819552 214819552 214684115 214546102 214840419 214827030 214746386 214746386 214829312 214706216 214601462 214746386 -214718276 214591515 -214717222 214717100 214702552 214661962 -214821013 214547668 214674568 214547668 -214531007 214538317 214714586 214707967 214695309 -214819719 214821022 -214821024 214718160 214718220 214832559 214699888 -214827009 214820225 -214821022 214821024 -214826900 214826904 214717410 -214826897 214826897 -214832557 214832559 214819552 214821024 -214531862 214531862 -214553636 214553636 -214586711 214821313 214821305 214821341 214821315 214672963 -214546277 214708151 214588830 -214545935 214545935 214716982 214716982 214826878 -214531862 214531862 -214839313 214677701 214704182 -214595893 214838923 -214826953 214832559 214717888 214836761 -214539845 214539832 -214829741 214551892 214551892 214551892 -214538278 214552543 214552494 214552490 214552545 214514709 214552562 214552524 214514709 214552524 214552517 214552625 214552517 214552498 214552494 214552490 214552498 214552517 -214826835 214826955 214684734 214684734 214711087 214820184 -214821024 214829285 -214586711 214821309 214551617 214551617 214584962 -214828987 214828987 214558192 214558192 214826912 214826912 214826912 214826912 -214534704 214687685 -214613743 214586610 -214718216 214827020 214702877 -214716984 214716937 214832657 214716965 214716965 -214820227 214820261 214584907 214820261 -214821037 214820456 214576500 -214538477 214707977 214538467 214826917 -214826625 214826900 214554277 -214685820 214819410 214819410 -214536697 214586983 214586983 214586983 -214821020 214821020 -214842281 214842268 214842380 214840760 -214574147 214580302 214680422 -214840378 214839313 -214744779 214748287 214744528 214706171 214744528 214717880 214717880 214706102 214819721 214819721 214717847 214712130 214819430 214819430 214820402 214601233 214556345 214826932 214800268 214587163 214690747 214576890 214576890 214826619 214826619 214819382 214748336 -214512431 214509084 214601805 -214609370 214609370 -214601805 214539845 214601805 214664767 214829679 -214836448 214601407 -214698581 214698577 214698581 214698577 214698581 214698577 214698581 214698581 -214839371 214684513 214684513 -214718169 214821015 -214586923 214826627 -214826816 214826705 214826705 214826816 214536962 -214821024 214718160 -214826803 214716924 -214509830 214510738 214509830 -214682717 214682717 -214821305 214821305 214826837 214826837 214551626 214551626 -214535621 214536320 214535621 214535621 214535621 -214820240 214712402 214826927 214712402 -214551617 214612920 -214509082 214645835 -214612695 214702787 214840382 214587898 214714597 214840378 214676010 214651556 214651552 214651610 214677285 214652407 214651582 214639592 214638566 214591680 214668534 214638566 214638958 214651582 214652960 214544840 214545005 214544840 214545032 214717070 214544355 214545005 214600989 -214691390 214691428 -214826816 214826816 -214712235 214581489 -214843492 214691587 -214709634 214826810 -214821020 214718160 -214826705 214826810 214532070 214819490 -214686086 214746386 -214838308 214711805 -214582387 214535621 214820842 -214551617 214612721 214586711 214586711 214821305 214821309 214551630 214821302 214533026 214533026 -214832550 214832550 214832550 214832550 214832550 214832550 214832550 214832550 -214821339 214821339 214821315 -214826955 214826955 214826955 214826835 -214839313 214839313 -214587384 214587028 -214551913 214551913 -214540635 214540635 -214683960 214546059 214546059 -214819721 214819745 -214646608 214576950 214821315 214821305 214586711 214612723 214612723 214827062 -214691390 214691293 -214829130 214547608 214829130 214829068 214829130 214829068 214539405 214829068 214712544 214712544 214712537 214712544 214712544 214829130 214829291 -214551890 214551890 214551890 -214557755 214630016 214573241 214557755 -214556840 214820842 214716461 -214821017 214826702 214826897 -214691426 214691267 214826893 -214717507 214826829 214819468 214716937 214716939 214550366 214791682 214711322 214669899 214669790 214595994 214712681 214712844 214826833 214709666 214581551 214712137 214696997 214819762 214743335 214602802 214819719 214554431 214668270 214707883 214717003 214819468 214716937 -214839905 214819685 214702749 214839902 214839902 -214702839 214702839 214702839 -214701242 214826816 214826705 214826700 -214639305 214509084 214537967 -214840415 214821307 214774682 -214539206 214589711 -214819550 214718167 214819550 214821015 -214575311 214638624 214820317 214575311 214552610 214552580 214716958 214716960 214530369 214642982 214578645 214836142 214682289 -214826955 214826955 -214744530 214821309 214744530 214560170 -214821305 214821305 -214826816 214826955 -214509084 214582387 -214539845 214639305 214639303 214512431 214826780 214829679 214601805 214539845 -214833800 214833802 214587650 214835585 214833802 -214687685 214840412 214840419 214840419 214840417 214840417 214840417 -214609442 214712488 214842298 214842300 214712488 -214586595 214586595 -214836761 214836761 214836761 214836761 214587864 214587864 214550863 214550863 214536317 214536317 214587864 -214691426 214826625 214826799 -214532070 214532072 -214820842 214685795 214826803 -214821022 214821024 214718160 -214820413 214703790 214613743 -214826608 214826705 -214826801 214826801 214826627 214687685 214826837 214826908 214717286 214826872 214826619 214826619 214826998 214826998 214680716 214667921 214820400 214601233 214716667 214819376 214819562 214819562 -214821024 214821017 214821024 -214829312 214829312 214826705 -214826835 214826810 -214842450 214842450 -214725508 214725508 214725508 214725508 214725508 214820231 -214832557 214717888 -214696556 214580372 -214819562 214819562 -214819721 214819721 214717247 214717247 214725532 214725532 214717247 -214832559 214674487 214712107 214712107 214838503 214508942 214540963 214546110 -214826927 214698420 -214716924 214716924 -214842450 214840775 -214832557 214832557 -214559672 214705119 214821024 214829282 -214826801 214826799 -214821300 214753515 214690110 214744775 -214826606 214826799 -214584920 214819552 214819547 214819552 -214705659 214560077 214560077 214644716 214705659 214717738 214531517 214644716 -214819777 214826750 -214837890 214820233 214828867 -214840378 214820814 214587935 214587935 214587898 214644915 214835255 214587898 214712062 -214678526 214678526 214678526 214678526 214678526 214678526 214678526 214678526 -214821028 214718220 214832559 214832557 -214695540 214695540 -214639335 214639342 214639333 214639348 214639346 -214715111 214651065 -214703906 214687982 214821373 214821373 214821377 214821373 214821373 -214548885 214709792 214746339 -214711297 214585395 214826835 214819745 214827015 214586711 214821339 214821341 214821315 -214820199 214676019 -214821386 214821386 -214696434 214602240 214700623 -214601233 214601233 214821017 214821017 214601233 -214509013 214509000 214696434 -214587384 214587384 214711661 214711661 214567410 214556210 214556210 -214826829 214826889 -214602605 214581489 214712235 -214696631 214696631 -214821277 214826955 214821277 -214820814 214820814 -214827030 214717331 -214594678 214594678 214594678 214587613 214594678 -214688668 214691117 214691117 -214587446 214640415 -214819721 214836761 -214717005 214717007 -214832559 214821017 214819552 214572234 214699888 214691390 214691426 214691428 214821279 214716935 214716932 -214821313 214537496 214717331 -214677493 214677457 -214556822 214508563 214838045 214725551 -214826705 214826705 -214712126 214674487 -214555005 214668122 -214717003 214717003 -214832559 214718203 -214821037 214821037 -214535006 214535038 214535006 214535038 214840762 214840762 -214602821 214594644 214684513 214684513 214839373 214613902 214613685 214613900 214613895 214613904 214838996 214839000 214838992 214596206 214835308 -214838503 214838503 -214826908 214826908 214820392 214820392 214674487 214826908 214821300 214821300 214694156 214676962 214819374 214826617 214556025 214564380 214554765 214640017 214716902 214651423 214709666 214695285 214819382 214582948 214555262 214640017 214820392 214820392 -214820231 214820231 -214586983 214586983 214840762 214840762 214840762 -214585395 214833800 214839834 -214540597 214540597 -214821022 214718160 214820942 -214602583 214833789 214572230 -214820441 214821309 214551626 214551617 214510044 214600502 214820439 214836748 214836782 214717325 -214821022 214718169 -214714903 214718304 214714603 -214558192 214827007 214834865 214826925 214827000 -214826715 214826606 214826606 214826606 214826606 -214826700 214826623 -214716932 214716932 214716973 214716971 214716937 214716973 214716973 -214826897 214691587 -214532072 214821285 214821275 214840762 214584907 -214826829 214826627 214821279 -214836388 214744779 -214826617 214826612 214826615 214717877 214826621 214586711 214821307 214821341 -214704180 214704180 -214840762 214586983 214840762 214508942 214695326 214538201 -214706432 214668596 214554131 214820218 214551930 214583852 214551930 214557270 214551930 214557270 214840558 214564687 214583852 -214819599 214532072 -214544820 214544846 214544846 -214826705 214826897 214585652 -214557581 214557581 214587390 214725551 -214774685 214827020 -214512416 214537972 -214718160 214821037 -214717003 214716937 -214551892 214652462 214551892 -214821277 214820231 214820231 214821277 214821277 -214819719 214819719 -214534736 214534736 214534736 214534736 214534736 214534736 214712113 214696980 214717089 214717089 -214836332 214836431 214836427 -214717005 214716984 214832653 214832657 214716986 214716984 -214587384 214832557 -214509752 214509752 -214826615 214826615 214826615 214554982 214826621 214826621 214826619 214826619 214826619 214826617 214826617 214826617 214826617 214826621 214826621 214640017 214826837 -214829017 214658156 214539362 214543592 214828948 214829055 214829015 214829023 214829017 214829010 214828957 214828955 214828946 214828944 214828935 214828922 214828914 214828910 214828899 214828897 214543513 214828895 -214821292 214826799 -214562021 214562021 -214840415 214840417 214840412 214642031 -214821024 214826608 214826608 214826801 -214827022 214582387 214691484 214843916 214842433 214842410 214843980 214843903 214840877 214691415 214691338 214691336 214582387 214820246 -214532072 214532070 214826810 214532072 -214555537 214718203 214555537 -214587898 214587898 -214826803 214711297 214826801 -214820450 214508942 214718272 214508942 214718270 214600132 214600134 214600132 214600132 214600132 214600132 214600132 -214580094 214557530 -214826953 214819526 -214686086 214686086 214686086 214685795 -214826810 214539845 214829679 214636505 214601805 214826780 214536868 214539825 -214702828 214702826 214702824 214702826 -214601040 214717003 214717003 214716984 -214601042 214601040 -214718409 214537899 -214602579 214601668 214613645 214841006 -214821272 214508563 -214601040 214601042 214601040 214717007 -214717003 214716984 214819408 -214826705 214826816 214826705 diff --git a/fluid/recommender/gru4rec/sort_batch.py b/fluid/recommender/gru4rec/sort_batch.py deleted file mode 100644 index 5077887d6ed457edc8cc7dd164706ee23352aea8..0000000000000000000000000000000000000000 --- a/fluid/recommender/gru4rec/sort_batch.py +++ /dev/null @@ -1,43 +0,0 @@ -def batch(reader, batch_size, sort_group_size, drop_last=False): - """ - Create a batched reader. - :param reader: the data reader to read from. - :type reader: callable - :param batch_size: size of each mini-batch - :type batch_size: int - :param sort_group_size: size of partial sorted batch - :type sort_group_size: int - :param drop_last: drop the last batch, if the size of last batch is not equal to batch_size. - :type drop_last: bool - :return: the batched reader. - :rtype: callable - """ - - def batch_reader(): - r = reader() - b = [] - for instance in r: - b.append(instance) - if len(b) == sort_group_size: - sortl = sorted(b, key=lambda x:len(x[0]), reverse=True) - b = [] - c = [] - for sort_i in sortl: - c.append(sort_i) - if(len(c) == batch_size): - yield c - c = [] - if drop_last == False and len(b) != 0: - sortl = sorted(b, key=lambda x:len(x[0]), reverse=True) - c = [] - for sort_i in sortl: - c.append(sort_i) - if(len(c) == batch_size): - yield c - c = [] - # Batch size check - batch_size = int(batch_size) - if batch_size <= 0: - raise ValueError("batch_size should be a positive integeral value, " - "but got batch_size={}".format(batch_size)) - return batch_reader diff --git a/fluid/recommender/gru4rec/train.py b/fluid/recommender/gru4rec/train.py deleted file mode 100644 index 8656b9b87b818d75cba37d80d09dfbf442aa9cf8..0000000000000000000000000000000000000000 --- a/fluid/recommender/gru4rec/train.py +++ /dev/null @@ -1,198 +0,0 @@ -import os -import sys -import time -import six -import numpy as np -import math -import argparse -import paddle.fluid as fluid -import paddle -import time -import utils - -SEED = 102 - -def parse_args(): - parser = argparse.ArgumentParser("gru4rec benchmark.") - parser.add_argument( - '--enable_ce', - action='store_true', - help='If set, run \ - the task with continuous evaluation logs.') - parser.add_argument( - '--num_devices', - type=int, - default=1, - help='Number of GPU devices') - args = parser.parse_args() - return args - -def network(src, dst, vocab_size, hid_size, init_low_bound, init_high_bound): - """ network definition """ - emb_lr_x = 10.0 - gru_lr_x = 1.0 - fc_lr_x = 1.0 - emb = fluid.layers.embedding( - input=src, - size=[vocab_size, hid_size], - param_attr=fluid.ParamAttr( - initializer=fluid.initializer.Uniform( - low=init_low_bound, high=init_high_bound), - learning_rate=emb_lr_x), - is_sparse=True) - - fc0 = fluid.layers.fc(input=emb, - size=hid_size * 3, - param_attr=fluid.ParamAttr( - initializer=fluid.initializer.Uniform( - low=init_low_bound, high=init_high_bound), - learning_rate=gru_lr_x)) - gru_h0 = fluid.layers.dynamic_gru( - input=fc0, - size=hid_size, - param_attr=fluid.ParamAttr( - initializer=fluid.initializer.Uniform( - low=init_low_bound, high=init_high_bound), - learning_rate=gru_lr_x)) - - fc = fluid.layers.fc(input=gru_h0, - size=vocab_size, - act='softmax', - param_attr=fluid.ParamAttr( - initializer=fluid.initializer.Uniform( - low=init_low_bound, high=init_high_bound), - learning_rate=fc_lr_x)) - - cost = fluid.layers.cross_entropy(input=fc, label=dst) - acc = fluid.layers.accuracy(input=fc, label=dst, k=20) - return cost, acc - -def train(train_reader, - vocab, - network, - hid_size, - base_lr, - batch_size, - pass_num, - use_cuda, - parallel, - model_dir, - init_low_bound=-0.04, - init_high_bound=0.04): - """ train network """ - - args = parse_args() - if args.enable_ce: - # random seed must set before configuring the network. - fluid.default_startup_program().random_seed = SEED - - vocab_size = len(vocab) - - # Input data - src_wordseq = fluid.layers.data( - name="src_wordseq", shape=[1], dtype="int64", lod_level=1) - dst_wordseq = fluid.layers.data( - name="dst_wordseq", shape=[1], dtype="int64", lod_level=1) - - # Train program - avg_cost = None - cost, acc = network(src_wordseq, dst_wordseq, - vocab_size,hid_size, init_low_bound, init_high_bound) - avg_cost = fluid.layers.mean(x=cost) - - # Optimization to minimize lost - sgd_optimizer = fluid.optimizer.Adagrad(learning_rate=base_lr) - sgd_optimizer.minimize(avg_cost) - - # Initialize executor - place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace() - exe = fluid.Executor(place) - exe.run(fluid.default_startup_program()) - if parallel : - train_exe = fluid.ParallelExecutor(use_cuda=use_cuda, loss_name=avg_cost.name) - else : - train_exe = exe - total_time = 0.0 - fetch_list = [avg_cost.name] - for pass_idx in six.moves.xrange(pass_num): - epoch_idx = pass_idx + 1 - print "epoch_%d start" % epoch_idx - - t0 = time.time() - i = 0 - newest_ppl = 0 - for data in train_reader(): - i += 1 - lod_src_wordseq = utils.to_lodtensor( - [dat[0] for dat in data], place) - lod_dst_wordseq = utils.to_lodtensor( - [dat[1] for dat in data], place) - ret_avg_cost = train_exe.run(feed={ - "src_wordseq": lod_src_wordseq, - "dst_wordseq": lod_dst_wordseq - }, - fetch_list=fetch_list) - avg_ppl = np.exp(ret_avg_cost[0]) - newest_ppl = np.mean(avg_ppl) - if i % 10 == 0: - print "step:%d ppl:%.3f" % (i, newest_ppl) - - t1 = time.time() - total_time += t1 - t0 - print "epoch:%d num_steps:%d time_cost(s):%f" % (epoch_idx, i, - total_time / epoch_idx) - - if pass_idx == pass_num - 1 and args.enable_ce: - #Note: The following logs are special for CE monitoring. - #Other situations do not need to care about these logs. - gpu_num = get_cards(args.enable_ce) - if gpu_num == 1: - print("kpis rsc15_pass_duration %s" % - (total_time / epoch_idx)) - print("kpis rsc15_avg_ppl %s" % newest_ppl) - else: - print("kpis rsc15_pass_duration_card%s %s" % \ - (gpu_num, total_time / epoch_idx)) - print("kpis rsc15_avg_ppl_card%s %s" % - (gpu_num, newest_ppl)) - save_dir = "%s/epoch_%d" % (model_dir, epoch_idx) - feed_var_names = ["src_wordseq", "dst_wordseq"] - fetch_vars = [avg_cost, acc] - fluid.io.save_inference_model(save_dir, feed_var_names, fetch_vars, exe) - print("model saved in %s" % save_dir) - - print("finish training") - -def get_cards(args): - if args.enable_ce: - cards = os.environ.get('CUDA_VISIBLE_DEVICES') - num = len(cards.split(",")) - return num - else: - return args.num_devices - -def train_net(): - """ do training """ - train_file = "small_train.txt" - test_file = "small_test.txt" - batch_size = 50 - args = parse_args() - vocab, train_reader, test_reader = utils.prepare_data( - train_file, test_file,batch_size=batch_size * get_cards(args),\ - buffer_size=1000, word_freq_threshold=0) - train( - train_reader=train_reader, - vocab=vocab, - network=network, - hid_size=100, - base_lr=0.01, - batch_size=batch_size, - pass_num=10, - use_cuda=True, - parallel=False, - model_dir="model_recall20", - init_low_bound=-0.1, - init_high_bound=0.1) - -if __name__ == "__main__": - train_net() diff --git a/fluid/recommender/gru4rec/utils.py b/fluid/recommender/gru4rec/utils.py deleted file mode 100644 index 638e2e2e712f05ef0e7b7ac7c96940692e5df9a5..0000000000000000000000000000000000000000 --- a/fluid/recommender/gru4rec/utils.py +++ /dev/null @@ -1,50 +0,0 @@ -import sys -import time -import numpy as np -import paddle.fluid as fluid -import paddle -import data_preprocess as dp -import sort_batch as sortb - -def to_lodtensor(data, place): - """ convert to LODtensor """ - seq_lens = [len(seq) for seq in data] - cur_len = 0 - lod = [cur_len] - for l in seq_lens: - cur_len += l - lod.append(cur_len) - flattened_data = np.concatenate(data, axis=0).astype("int64") - flattened_data = flattened_data.reshape([len(flattened_data), 1]) - res = fluid.LoDTensor() - res.set(flattened_data, place) - res.set_lod([lod]) - return res - -def prepare_data(train_filename, test_filename, batch_size, - buffer_size=1000, word_freq_threshold=0, enable_ce=False): - """ prepare the English Pann Treebank (PTB) data """ - print("start constuct word dict") - vocab = dp.build_dict(word_freq_threshold,train_filename,test_filename) - print("construct word dict done\n") - if enable_ce: - train_reader = paddle.batch( - dp.train(train_filename, - vocab, - buffer_size, - data_type=dp.DataType.SEQ), - batch_size) - else: - train_reader = sortb.batch( - paddle.reader.shuffle( - dp.train(train_filename, - vocab, - buffer_size, - data_type=dp.DataType.SEQ), - buf_size=buffer_size), - batch_size,batch_size*20) - test_reader = sortb.batch( - dp.test(test_filename, - vocab, buffer_size, data_type=dp.DataType.SEQ), - batch_size,batch_size*20) - return vocab, train_reader, test_reader