official documentation中显示的文档似乎直接进入了注意力模型而没有展示如何使用基本的seq2seq模型。我试图将某种日期格式转换为一种标准方法。一些例子如下所示:
[('7 07 13', '2013-07-07'),
('30 JULY 1977', '1977-07-30'),
('Tuesday, September 14, 1971', '1971-09-14'),
('18 09 88', '1988-09-18'),
('31, Aug 1986', '1986-08-31')]
其中第二列是输出'y'。
以下是我计划在高级别使用seq2seq模型的方法:
hidden_size
的对数我到目前为止的模型如下:
import tensorflow.contrib.legacy_seq2seq as seq2seq
enc_inp = [tf.placeholder(tf.int32, shape=(None,)) for t in range(x_seq_length)]
labels = [tf.placeholder(tf.int32, shape=(None,)) for t in range(y_seq_length)]
is_train = tf.placeholder(tf.bool)
weights = [tf.ones_like(labels_t, dtype=tf.float32) for labels_t in labels]
memory_dim = 32
embed_dim = 32
cell = tf.contrib.rnn.BasicLSTMCell(memory_dim)
dec_outputs, dec_memory = seq2seq.embedding_rnn_seq2seq(enc_inp, dec_inp, cell,
len(char2numX), len(char2numY),
embed_dim,
feed_previous = tf.logical_not(is_train))
loss = seq2seq.sequence_loss(dec_outputs, labels, weights)
然而,它抱怨Lengths of logits, weights, and targets must be the same 29, 11, 11
,因为(我认为)dec_outputs
长度为29,而我希望它的长度为11。
[time_steps, batch_size]
?请注意batch_size
是第二个参数,而不是第一个参数。通过我阅读的一些教程得到了这种印象。提供包含数据的完整代码here。