batch 0 minibatch loss: 2.208172082901001 sample 1: input > [9 8 4 0 0 0 0 0] predicted > [3 3 0 8 0 0 0 0 0] sample 2: input > [3 4 3 5 6 0 0 0] predicted > [9 9 8 8 9 9 9 0 0] sample 3: input > [2 2 4 7 5 9 6 3] predicted > [0 9 9 9 4 9 9 9 9]batch 1000 minibatch loss: 0.2542625367641449 sample 1: input > [5 4 9 8 8 0 0 0] predicted > [5 4 9 8 8 1 0 0 0] sample 2: input > [3 9 4 2 3 0 0 0] predicted > [3 9 4 2 3 1 0 0 0] sample 3: input > [2 6 4 4 7 0 0 0] predicted > [2 4 4 4 7 1 0 0 0]batch 2000 minibatch loss: 0.15775370597839355 sample 1: input > [7 7 7 2 3 6 0 0] predicted > [7 7 7 2 3 6 1 0 0] sample 2: input > [8 3 9 9 5 9 0 0] predicted > [8 3 9 9 5 9 1 0 0] sample 3: input > [3 2 9 4 2 6 6 3] predicted > [3 2 9 4 6 6 6 3 1]batch 3000 minibatch loss: 0.1039464920759201 sample 1: input > [8 6 2 3 0 0 0 0] predicted > [8 6 2 3 1 0 0 0 0] sample 2: input > [2 7 9 6 6 5 2 0] predicted > [2 7 9 6 6 5 2 1 0] sample 3: input > [3 3 8 5 4 0 0 0] predicted > [3 3 8 5 4 1 0 0 0] %matplotlib inline importmatplotlib.pyplot aspltplt.plot(loss_track)print( 'loss {:.4f} after {} examples (batch_size={})'.format(loss_track[- 1], len(loss_track)*batch_size, batch_size)) loss 0.1073 after 300100 examples (batch_size=100) 模型的局限性 我们无法控制tf.nn.dynamic_rnn的转换,它在单次扫描中展开。 在没有这种控制的情况下,一些事情是不可能的: 我们无法提供以前生成的指令,而不会退回到Python循环。 这意味着我们无法使用dynamic_rnn解码器进行有效的推断! 我们不能使用Attention,因为Attention条件解码器输入其先前的状态 解决方案是使用tf.nn.raw_rnn而不是tf.nn.dynamic_rnn作为解码器。 - END - 关注者 从1到10000+ 我们每天都在进步 (责任编辑:本港台直播) |