Tensorflow LSTM网络为整批

时间:2016-09-07 07:45:13

标签: python neural-network tensorflow recurrent-neural-network lstm

我在tensorflow上运行RNN,其输出是一个非常简单的2向量数组。所有RNN必须做的是选择一个值来制作1而一个制作0.然而,当我通过RNN运行我的批次时,我似乎为批次的每个输入获得相同的输出。例如:

如果我的实际输出标签是:

[[ 1.  0.]
 [ 1.  0.]
 [ 0.  1.]
 [ 1.  0.]
 [ 1.  0.]
 [ 1.  0.]
 [ 1.  0.]
 [ 1.  0.]
 [ 1.  0.]
 [ 1.  0.]
 [ 1.  0.]
 [ 1.  0.]
 [ 1.  0.]
 [ 0.  1.]
 [ 0.  1.]
 [ 1.  0.]
 [ 1.  0.]
 [ 0.  1.]
 [ 1.  0.]
 [ 1.  0.]
 [ 1.  0.]
 [ 1.  0.]]

我的RNN输出:

[[  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]
 [  1.00000000e+00   7.93261263e-14]]

这显然是错误的。我正在使用[batch_size, time_steps_features]形状的张量喂养我的RNN,并且我使用tf.nn.dynamic_rnn()来运行RNN。我没有尝试任何东西似乎工作。

我一直在扯掉我的头发,任何帮助都会非常感激。

谢谢!

1 个答案:

答案 0 :(得分:4)

看起来你可能不会在时代之间重新洗牌。这可以导致(误差)最小化到局部最小值,这是你不会离开的。

尽量不要在每次迭代中以相同的顺序提供输入,你应该收敛到更合理的东西。