рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рдЕрдиреБрд╡рд╛рдж рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ
"рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ" рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рджреВрд╕рд░реА рдзрд╛рд░рд╛ рдХреЗ рд▓реЙрдиреНрдЪ рдХреА рддреИрдпрд╛рд░реА рдореЗрдВ рдХреБрдЫ рд╣рдлрд╝реНрддреЗ рдкрд╣рд▓реЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдерд╛ред рдЖрдЧреЗ рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╛рдордЧреНрд░реА рдФрд░ рдПрдХ рдЦреБрд▓рд╛ рд╕рдмрдХ рд╣реИред
рдЗрд╕ рдмреАрдЪ, рд╣рдо рдореЙрдбрд▓ рдХреЗ рдЬрдВрдЧрд▓ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝ рдЧрдПред
рддрдВрддреНрд░рд┐рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдореЙрдбрд▓рдЬрдмрдХрд┐ рдЕрдиреБрдХреНрд░рдо-рд╕реЗ-рдЕрдиреБрдХреНрд░рдо рдореЙрдбрд▓ рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ
tensorflow/tensorflow/python/ops/seq2seq.py
рд╕реЗ рдлрд╝рдВрдХреНрд╢рдВрд╕ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдЕрдиреБрд╡рд╛рдж рдореЙрдбрд▓ рдореЗрдВ рдЕрднреА рднреА рдХреБрдЫ рдЯреНрд░рд┐рдХреНрд╕
models/tutorials/rnn/translate/seq2seq_model.py
рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред
рд╕реИрдореНрдкрд▓ рд╕реЙрдлреНрдЯрдореИрдХреНрд╕ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░реЛрдЬреЗрдХреНрд╢рдирдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдмрдбрд╝реЗ рдЖрдЙрдЯрдкреБрдЯ рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реИрдВрдкрд▓реНрдб рд╕реЙрдлреНрдЯрдореИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдбрд┐рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рджреЛрдиреЛрдВ рд╕реИрдВрдкрд▓реНрдб рд╕реЙрдлреНрдЯрдореИрдХреНрд╕ рд▓реЙрд╕ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░реЛрдЬреЗрдХреНрд╢рди
seq2seq_model.py
рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред
if num_samples > 0 and num_samples < self.target_vocab_size: w_t = tf.get_variable("proj_w", [self.target_vocab_size, size], dtype=dtype) w = tf.transpose(w_t) b = tf.get_variable("proj_b", [self.target_vocab_size], dtype=dtype) output_projection = (w, b) def sampled_loss(labels, inputs): labels = tf.reshape(labels, [-1, 1])
рдкрд╣рд▓реЗ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рд╕реИрдВрдкрд▓ рд╕реЙрдлреНрдЯрдореИрдХреНрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ рдпрджрд┐ рдирдореВрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 512) рд▓рдХреНрд╖реНрдп рд╢рдмреНрджрдХреЛрд╢ рдЖрдХрд╛рд░ рд╕реЗ рдХрдо рд╣реИред 512 рд╕реЗ рдЫреЛрдЯреЗ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ рд╕реЙрдлреНрдЯрдореИрдХреНрд╕ рд╣рд╛рдирд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рдлрд┐рд░, рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдПрдХ рдкреНрд░рдХреНрд╖реЗрдкрдг рдмрдирд╛рдПрдВред рдпрд╣ рдПрдХ рдЬреЛрдбрд╝реА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╡реЗрдЯ рдХрд╛ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдПрдХ рд╡рд┐рд╕реНрдерд╛рдкрди рд╡реЗрдХреНрдЯрд░ рд╣реЛрддрд╛ рд╣реИред рдЬрдм рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ rnn рд╕реЗрд▓ рдЖрдХрд╛рд░ рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдирдореВрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╡реИрдХреНрдЯрд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рди рдХрд┐
target_vocab_size
рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдирдореВрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рд▓реЙрдЧ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рд╡реЗрдЯ рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЧреБрдгрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдПрдХ рдСрдлрд╕реЗрдЯ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ seq2seq_model.py рдореЗрдВ
seq2seq_model.py
рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред
if output_projection is not None: for b in xrange(len(buckets)): self.outputs[b] = [tf.matmul(output, output_projection[0]) + output_projection[1] for ...]
рдмрдХреЗрдЯрд┐рдВрдЧ рдФрд░ рдкреИрдбрд┐рдВрдЧрд╕реИрдВрдкрд▓ рдХрд┐рдП рдЧрдП рд╕реЙрдлреНрдЯрдореИрдХреНрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рдЕрдиреБрд╡рд╛рдж рдореЙрдбрд▓ рдореЗрдВ
рдмрдХреЗрдЯрд┐рдВрдЧ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
рдЧрдпрд╛ рд╣реИ , рдПрдХ рдРрд╕рд╛ рддрд░реАрдХрд╛ рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рд▓рдВрдмрд╛рдИ рдХреЗ рд╡рд╛рдХреНрдпреЛрдВ рдХреЛ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдорд╕реНрдпрд╛ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реЗрдВред рдЕрдВрдЧреНрд░реЗрдЬреА рд╕реЗ рдлреНрд░реЗрдВрдЪ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╕рдордп, рд╣рдорд╛рд░реЗ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рдВрдмрд╛рдИ рдХреЗ рдПрд▓ 1 рдХреЗ рдЕрдВрдЧреНрд░реЗрдЬреА рд╡рд╛рдХреНрдп рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рдВрдмрд╛рдИ рдХреЗ рдПрд▓ 1 рдХреЗ рдлреНрд░реЗрдВрдЪ рд╡рд╛рдХреНрдп рд╣реЛрддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдЕрдВрдЧреНрд░реЗрдЬреА рд╡рд╛рдХреНрдп рдХреЛ
encoder_inputs
рд░реВрдк рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛
encoder_inputs
, рдФрд░ рдлреНрд░реЗрдВрдЪ рд╡рд╛рдХреНрдп рдХреЛ
decoder_inputs
(рдЬреАрдУ рдкреНрд░рддреАрдХ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде) рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдВрдЧреНрд░реЗрдЬреА рдФрд░ рдлреНрд░реЗрдВрдЪ рд╡рд╛рдХреНрдпреЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЬреЛрдбрд╝реЗ (L1, L + + 1) рдХреЗ рд▓рд┐рдП seq2seq рдореЙрдбрд▓ рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдХрдИ рд╕рдорд╛рди рдЙрдкрдЧреНрд░рд╣реЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдЧреНрд░рд╛рдл рдорд┐рд▓рддрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░, рд╣рдо рд╡рд┐рд╢реЗрд╖ рдкреИрдб рдкрд╛рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рдХреНрдп рдХреЛ "рдкреИрдб" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдлрд┐рд░ рд╣рдореЗрдВ "рдкреИрдХ" рд▓рдВрдмрд╛рдИ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ seq2seq рдореЙрдбрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдРрд╕реЗ рдореЙрдбрд▓ рдЫреЛрдЯреЗ рд╡рд╛рдХреНрдпреЛрдВ рдореЗрдВ рдЕрдкреНрд░рднрд╛рд╡реА рд╣реЛрдВрдЧреЗ - рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмреЗрдХрд╛рд░ PAD рд╡рд░реНрдгреЛрдВ рдХреЛ рдПрдирдХреЛрдб рдФрд░ рдбрд┐рдХреЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд▓рдВрдмрд╛рдИ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЬреЛрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреНрд░рд╛рдл рдмрдирд╛рдиреЗ рдФрд░ рдПрдХ рд╣реА рд▓рдВрдмрд╛рдИ рдХреА рд╕реНрдЯрдлрд┐рдВрдЧ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдордЭреМрддреЗ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрд╛рд▓реНрдЯрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рдХреНрдп рдХреЛ рд╕рдореВрд╣ рдХреА рд▓рдВрдмрд╛рдИ рддрдХ рд╕рд╛рдорд╛рди рдХрд░рддреЗ рд╣реИрдВред
translate.py
рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдореВрд╣реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
buckets = [(5, 10), (10, 15), (20, 25), (40, 50)]
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ 3 рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдВрдЧреНрд░реЗрдЬреА рд╡рд╛рдХреНрдп рдЗрдирдкреБрдЯ рдкрд░ рдЖрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реА рдлреНрд░рд╛рдВрд╕реАрд╕реА рд╡рд╛рдХреНрдп рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ 6 рдЯреЛрдХрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рддреЛ рд╡реЗ рдкрд╣рд▓реЗ рд╕рдореВрд╣ рдореЗрдВ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдПрдиреНрдХреЛрдбрд░ рдХреЗ рдЗрдирдкреБрдЯ рдкрд░ рд▓рдВрдмрд╛рдИ 5 рддрдХ рднрд░реЗ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдбрд┐рдХреЛрдбрд░ рдХреЗ рдЗрдирдкреБрдЯ рдкрд░ рд▓рдВрдмрд╛рдИ 10 рд╣реЛрдЧреАред рдФрд░ рдЕрдЧрд░ рдЕрдВрдЧреНрд░реЗрдЬреА рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ 8 рдЯреЛрдХрди рд╣реИрдВ, рдФрд░ рдЗрд╕реА рдлреНрд░рд╛рдВрд╕реАрд╕реА 18 рдореЗрдВ, рд╡реЗ рд╕рдореВрд╣ (10, 15) рдореЗрдВ рдирд╣реАрдВ рдЧрд┐рд░реЗрдВрдЧреЗ рдФрд░ рд╕рдореВрд╣ (20, 25) рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рдЕрд░реНрдерд╛рдд, рдЕрдВрдЧреНрд░реЗрдЬреА рдкреНрд░рд╕реНрддрд╛рд╡ 20 рдЯреЛрдХрди рддрдХ рдмрдврд╝ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдлреНрд░реЗрдВрдЪ рдПрдХ рд╕реЗ 25 рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдбрд┐рдХреЛрдбрд░ рдЗрдирдкреБрдЯ рдмрдирд╛рддреЗ рд╕рдордп, рд╣рдо рдЗрдирдкреБрдЯ рдореЗрдВ рд╡рд┐рд╢реЗрд╖
GO
рд╡рд░реНрдг рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдпрд╣
get_batch()
рдореЗрдВ
get_batch()
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ
seq2seq_model.py
, рдЬреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рд╡рд╛рдХреНрдп рдХреЛ рднреА рдлрд╝реНрд▓рд┐рдк рдХрд░рддрд╛ рд╣реИред рдЗрдирдкреБрдЯ рдХреЗ
рдлрд╝реНрд▓рд┐рдкрд┐рдВрдЧ рдиреЗ
Sutskever et alред, 2014 (pdf) рдХреЗ рддрдВрддреНрд░рд┐рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдореЙрдбрд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХреА
ред рдЕрдВрддрддрдГ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдПрдХ рд╡рд╛рдХреНрдп рд╣реИ "рдореИрдВ рдЬрд╛рддрд╛ рд╣реВрдВред" рдЗрдирдкреБрдЯ рдкрд░, рдЯреЛрдХрди рдЯреВрдЯ рдЧрдпрд╛
["I", "go", "."]
, рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдПрдХ рд╡рд╛рдХреНрдп рд╣реИ "рдЬреЗрдИ рд╡реИрд╕ред", рдЯреЛрдХрди рдХреЛ рдЯреВрдЯ рдЧрдпрд╛
["Je", "vais", "."]
ред рдЙрдиреНрд╣реЗрдВ рдЗрдирдкреБрдЯ рдПрдирдХреЛрдбрд░
[PAD PAD "." "go" "I"]
рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд╕рд╛рде рд╕рдореВрд╣ (5, 10) рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛
[PAD PAD "." "go" "I"]
[PAD PAD "." "go" "I"]
рдФрд░ рдбрд┐рдХреЛрдбрд░ рдЗрдирдкреБрдЯ
[GO "Je" "vais" "." EOS PAD PAD PAD PAD PAD]
[GO "Je" "vais" "." EOS PAD PAD PAD PAD PAD]
ред
рдЗрд╕реЗ рдЪрд▓рд╛рдПрдВрдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдореЙрдбрд▓ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдмрдбрд╝реЗ рдПрдВрдЧреНрд▓реЛ-рдлреНрд░реЗрдВрдЪ рдХреЛрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рд╣рдо
WMT'15 рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ 10 ^ 9 рдлреНрд░реЗрдВрдЪ-рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдПрдХ рд╣реА рдирдореВрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рд╕рд╛рдЗрдЯ рд╕реЗ рд╕рдорд╛рдЪрд╛рд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗред рдЕрдЧрд▓рд╛ рдЖрджреЗрд╢ рдЪрд▓рдиреЗ рдкрд░ рджреЛрдиреЛрдВ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ
train_dir
рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
python translate.py --data_dir [your_data_directory] --train_dir [checkpoints_directory] --en_vocab_size=40000 --fr_vocab_size=40000
рдкреНрд░рд╢рд┐рдХреНрд╖рдг рднрд╡рди рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ 18GB рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдХреА рдЬрдЧрд╣ рдФрд░ рдХрдИ рдШрдВрдЯреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдХреЗрд╕
data_dir,
, рдбрд┐рдХреНрд╢рдирд░реА рдлрд╛рдЗрд▓реНрд╕
data_dir,
рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ
data_dir,
рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреЗрд╕ рдХреЛ рдЯреЛрдХрди рдХрд░рдХреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, 40,000 рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╢рдмреНрджреЛрдВ рдХреЗ рдмрд╛рд╣рд░ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЛ рдПрдХ рдЕрдЬреНрдЮрд╛рдд рд╢рдмреНрдж рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ UNK рдЯреЛрдХрди рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп, рдмрд╛рдЗрдирд░реА рдЯреЛрдХрди-рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╛рд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реБрдзрд╛рд░ рджреЗрдЧрд╛ред рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
translate
рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореВрд▓реНрдп рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИрдВред рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕реАрдЦрдиреЗ рд╡рд╛рд▓реЗ рдмрдбрд╝реЗ рдореЙрдбрд▓ рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рдпрд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬреАрдкреАрдпреВ рдореЗрдореЛрд░реА рд▓рдЧ рд╕рдХрддреА рд╣реИред рдЖрдк рдПрдХ рдЫреЛрдЯреЗ рдореЙрдбрд▓ рд╡рд░реНрдХрдЖрдЙрдЯ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣реИред
python translate.py --data_dir [your_data_directory] --train_dir [checkpoints_directory] --size=256 --num_layers=2 --steps_per_checkpoint=50
рдКрдкрд░ рджрд┐рдП рдЧрдП рдЖрджреЗрд╢ рдореЗрдВ рджреЛ рдкрд░рддреЛрдВ рдХреЗ рд╕рд╛рде рдореЙрдбрд▓ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 3 рд╣реИрдВ), рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ 256 рдЗрдХрд╛рдЗрдпрд╛рдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ - 1024) рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ 50 рдЪрд░рдгреЛрдВ рдкрд░ рдПрдХ рдЪреМрдХреА рдХреЗ рд╕рд╛рде (рдбрд┐рдлрд╝реЙрд▓реНрдЯ - 200)ред рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦреЗрдВ рдХрд┐ рдЖрдкрдХреЗ GPU рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдЖрдХрд╛рд░ рдореЙрдбрд▓ рд╕рд╣реА рд╣реИред
рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди,
steps_per_checkpoin
t рдмрд╛рдЗрдирд░реА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдкрд┐рдЫрд▓реЗ рдЪрд░рдгреЛрдВ рдХреЗ рдЖрдВрдХрдбрд╝реЗ рджреЗрдВрдЧреЗред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ (рдЖрдХрд╛рд░ 1024 рдХреА 3 рдкрд░рддреЗрдВ) рдХреЗ рд╕рд╛рде, рдкрд╣рд▓рд╛ рд╕рдВрджреЗрд╢ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
global step 200 learning rate 0.5000 step-time 1.39 perplexity 1720.62 eval: bucket 0 perplexity 184.97 eval: bucket 1 perplexity 248.81 eval: bucket 2 perplexity 341.64 eval: bucket 3 perplexity 469.04 global step 400 learning rate 0.5000 step-time 1.38 perplexity 379.89 eval: bucket 0 perplexity 151.32 eval: bucket 1 perplexity 190.36 eval: bucket 2 perplexity 227.46 eval: bucket 3 perplexity 238.66
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ 1.4 рд╕реЗрдХрдВрдб рд╕реЗ рдереЛрдбрд╝рд╛ рдХрдо рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдирдореВрдиреЗ рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдХреЗ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдирдореВрдиреЗ рдХреЛ рдЦрд░рд╛рдм рдХрд░ рджреЗрддрд╛ рд╣реИред рд▓рдЧрднрдЧ 30 рд╣рдЬрд╛рд░ рдЪрд░рдгреЛрдВ рдХреЗ рдмрд╛рдж, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЫреЛрдЯреЗ рд╡рд╛рдХреНрдпреЛрдВ рдХреЗ рд╕рдореВрд╣ (0 рдФрд░ 1) рдХреИрд╕реЗ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдкреНрд░рд╢рд┐рдХреНрд╖рдг рднрд╡рди рдореЗрдВ рд▓рдЧрднрдЧ 22 рдорд┐рд▓рд┐рдпрди рд╡рд╛рдХреНрдп рд╣реЛрддреЗ рд╣реИрдВ, рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ (рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рд░рди) 64 рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдирдореВрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ 340 рд╣рдЬрд╛рд░ рдХрджрдо рдЙрдард╛рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдореЙрдбрд▓ рдХреЛ
--decode
рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдВрдЧреНрд░реЗрдЬреА рд╡рд╛рдХреНрдпреЛрдВ рдХрд╛ рдлреНрд░реЗрдВрдЪ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
python translate.py --decode --data_dir [your_data_directory] --train_dir [checkpoints_directory] Reading model parameters from /tmp/translate.ckpt-340000 > Who is the president of the United States? Qui est le pr├йsident des ├Йtats-Unis ?
рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдЕрдВрдЧреНрд░реЗрдЬреА-рдлреНрд░реЗрдВрдЪ рдЕрдиреБрд╡рд╛рджрдХ рдЕрдВрдд-рдЯреВ-рдПрдВрдб рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рдЗрд╕реЗ рдЪрд▓рд╛рдПрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдореЙрдбрд▓ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЧреБрдгрд╡рддреНрддрд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрджрд░реНрд╢ рдЕрдиреБрд╡рд╛рдж рдореЙрдбрд▓ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдХреБрдЫ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд╕реБрдзрд╛рд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо prim_ tokenization рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ,
basic_tokenizer
рдореЗрдВ
data_utils
рдХрд╛ рдореВрд▓ рдХрд╛рд░реНрдпред
WMT'15 рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдмреЗрд╣рддрд░ рдЯреЛрдХрди рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдмрдбрд╝рд╛ рд╢рдмреНрджрдХреЛрд╢, рддреЛ рдЖрдк рдмреЗрд╣рддрд░ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдиреБрд╡рд╛рдж рдореЙрдбрд▓ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЖрдк рдореЙрдбрд▓ рднрд╛рд░ рдХреЗ рд╕реАрдЦрдиреЗ рдХреА рдЧрддрд┐, рдХреНрд╖реАрдгрди, рдЖрд░рдВрднреАрдХрд░рдг рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк
seq2seq_model.py
рдореЗрдВ рдорд╛рдирдХ
GradientDescentOptimizer
рдХреЛ рдХреБрдЫ рдФрд░ рдЙрдиреНрдирдд рдЬреИрд╕реЗ
AdagradOptimizer
рднреА рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╣рддрд░ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ!
рдЕрдВрдд рдореЗрдВ, рдКрдкрд░ рдкреНрд░рд╕реНрддреБрдд рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХреЗрд╡рд▓ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрдиреБрдХреНрд░рдо-рд╕реЗ-рдЕрдиреБрдХреНрд░рдо рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк рдХрд┐рд╕реА рдЕрдиреБрдХреНрд░рдо рдХреЛ рдПрдХ рдкреЗрдбрд╝ рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкрд╛рд░реНрд╕ рдЯреНрд░реА рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдореЙрдбрд▓ рдЕрддреНрдпрд╛рдзреБрдирд┐рдХ рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐
рд╡рд┐рдиреАрд▓реНрд╕ рдПрдВрдб рдХреИрд╕рд░ рдПрдЯ рдЕрд▓, 2014 (рдкреАрдбреАрдПрдл) рджреНрд╡рд╛рд░рд╛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЖрдк рди рдХреЗрд╡рд▓ рдПрдХ рдЕрдиреБрд╡рд╛рджрдХ, рдмрд▓реНрдХрд┐ рдПрдХ рдкрд╛рд░реНрд╕рд░, рдЪреИрдЯ рдмреЙрдЯ рдпрд╛ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдкреНрд░рдпреЛрдЧ!
рд╡рд╣ рд╕рдм рд╣реИ!
рд╣рдо рдпрд╣рд╛рдВ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рд╣рдо рдЖрдкрдХреЛ
рдПрдХ рдЦреБрд▓реЗ рдкрд╛рда рдореЗрдВ рдЙрдирдХреЗ
рд╢рд┐рдХреНрд╖рдХ рд╕реЗ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред