机器翻译中的seq2seq的模型框架及相应参数;
Seq2SeqModel(source_vocab_size, target_vocab_size, buckets, size, num_layers, max_gradient_norm, batch_size, learning_rate, learning_rate_decay_factor, use_lstm=False, num_samples=512, forward_only=False, dtype=tf.float32)参数详解: source_vocab_size,在序列到序列的任务中,训练数据的源数据的词汇表大小;如序列对(A,B)中A的大小 target_vocab_size,同上目标词汇表B的大小 buckets,为了解决不同长度输入而设定的,如[(5,10),(10,15),(15,20),(20,40)],如输入长度为9时,选择(10,15)的范围; size,某一层的单元数 num_layers,网络层数 max_gradient_norm,表示梯度最大限度的被削减到这个规范 batch_size,每批读取数据数 learning_rate,学习率 learning_rate_decay_factor,学习率衰减因子 use_lstm=False,使用lstm吗?GRU num_samples=512,采样softmax的个数,当个数小于词汇表时才有意义; forward_only=False,是否更新参数
Sequence-to-Sequence中的一些重要的函数:(model内部的)
model.get_batch(self,data,bucket_id):该函数返回的是batch_encoder_inputs,batch_decoder_inputs,batch_weights三个参数encoder_size, decoder_size = self.buckets[bucket_id]将输入与输出补成同encoder_size, decoder_size大小一样的尺寸。encoder_inputs, # Encoder inputs are padded and then reversed.(不够补0)decoder_inputs,#留一个给GO_ID,其余类似decoder_inputsweight:对于补充的数,weight值为0,原有的为1batch_encoder_inputs,batch_size大小一批的输入batch_decoder_inputs,batch_size大小的一批输出batch_weights,尺寸同batch_decoder_inputsdef step(self, session, encoder_inputs, decoder_inputs, target_weights, bucket_id, forward_only):该函数返回三个参数值(Gradient norm, loss, outputs) session, 会话状态 以下三个参数来源于get_batch的返回值 encoder_inputs, decoder_inputs, target_weights, bucket_id, #使用那个bucket,会被指定 forward_only,forward_only当为True时,返回# No gradient norm, loss, outputs;False时,返回Gradient norm, loss, no outputs.
新闻热点
疑难解答