├── README.md ├── images ├── decoding.gif ├── mem_N2N.png ├── overview.png ├── results.png ├── seq2seq.png ├── results_1.png ├── cnn_encoder.png ├── weight_init_2.png ├── weight_init_3.png ├── weight_norm.png ├── luong_attention.jpg ├── residual_connection.png └── upper_bound_sigmoid.png ├── bpe_utils.py └── viz_utils.py /README.md: -------------------------------------------------------------------------------- 1 | # conv_s2s 2 | -------------------------------------------------------------------------------- /images/decoding.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j-min/conv_s2s/HEAD/images/decoding.gif -------------------------------------------------------------------------------- /images/mem_N2N.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j-min/conv_s2s/HEAD/images/mem_N2N.png -------------------------------------------------------------------------------- /images/overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j-min/conv_s2s/HEAD/images/overview.png -------------------------------------------------------------------------------- /images/results.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j-min/conv_s2s/HEAD/images/results.png -------------------------------------------------------------------------------- /images/seq2seq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j-min/conv_s2s/HEAD/images/seq2seq.png -------------------------------------------------------------------------------- /images/results_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j-min/conv_s2s/HEAD/images/results_1.png -------------------------------------------------------------------------------- /images/cnn_encoder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j-min/conv_s2s/HEAD/images/cnn_encoder.png -------------------------------------------------------------------------------- /images/weight_init_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j-min/conv_s2s/HEAD/images/weight_init_2.png -------------------------------------------------------------------------------- /images/weight_init_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j-min/conv_s2s/HEAD/images/weight_init_3.png -------------------------------------------------------------------------------- /images/weight_norm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j-min/conv_s2s/HEAD/images/weight_norm.png -------------------------------------------------------------------------------- /images/luong_attention.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j-min/conv_s2s/HEAD/images/luong_attention.jpg -------------------------------------------------------------------------------- /images/residual_connection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j-min/conv_s2s/HEAD/images/residual_connection.png -------------------------------------------------------------------------------- /images/upper_bound_sigmoid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j-min/conv_s2s/HEAD/images/upper_bound_sigmoid.png -------------------------------------------------------------------------------- /bpe_utils.py: -------------------------------------------------------------------------------- 1 | import re 2 | import collections 3 | from pprint import pprint 4 | 5 | 6 | def get_stats(vocab): 7 | """ 8 | word frequencies => bigram frequencies 9 | 10 | Arg: 11 | Dict 12 | Keys: word 13 | values: frequencies 14 | 15 | Return: 16 | collections.defaultdict 17 | keys: bigram 18 | values: frequencies 19 | """ 20 | pairs = collections.defaultdict(int) 21 | for word, freq in vocab.items(): 22 | symbols = word.split() 23 | for i in range(len(symbols) - 1): 24 | pairs[(symbols[i], symbols[i+1])] += freq 25 | return pairs 26 | 27 | def merge_vocab(pair, v_in): 28 | """ 29 | Apply single step of BPE to vocabulary 30 | """ 31 | v_out = {} 32 | bigram = re.escape(' '.join(pair)) # esacpe non-ascii characters 33 | p = re.compile(r'(? max_const_size: 15 | tensor.tensor_content = ""%size 16 | return strip_def 17 | 18 | def show_graph(graph_def, max_const_size=32): 19 | """Visualize TensorFlow graph.""" 20 | if hasattr(graph_def, 'as_graph_def'): 21 | graph_def = graph_def.as_graph_def() 22 | strip_def = strip_consts(graph_def, max_const_size=max_const_size) 23 | code = """ 24 | 29 | 30 |
31 | 32 |
33 | """.format(data=repr(str(strip_def)), id='graph'+str(np.random.rand())) 34 | 35 | iframe = """ 36 | 37 | """.format(code.replace('"', '"')) 38 | display(HTML(iframe)) --------------------------------------------------------------------------------