FailedPreconditionError:sequence_length(0)< = X

时间:2017-09-19 02:27:11

标签: python tensorflow

我正在使用TensorFlow来实现本文所述的卷积递归神经网络:Arxiv

我的所有代码均可在此处找到:crnn

所以我正在加载X个不同长度的训练样本。加载训练集时,我将它们调整为32x2000。当它们穿过神经网络时,TensorFlow会抛出这个错误:

tensorflow.python.framework.errors_impl.FailedPreconditionError: sequence_length(0) <= 124
 [[Node: CTCBeamSearchDecoder = CTCBeamSearchDecoder[beam_width=100, merge_repeated=true, top_paths=1, _device="/job:localhost/replica:0/task:0/cpu:0"](transpose/_3, _recv_seq_len_0)]]
 [[Node: CTCLoss/_5 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/gpu:0", send_device="/job:localhost/replica:0/task:0/cpu:0", send_device_incarnation=1, tensor_name="edge_758_CTCLoss", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/gpu:0"]()]]

奇怪的是,我在谷歌上没有得到很多结果,所以我觉得值得一提。

值得注意的是,我的代码和数据中没有任何地方,所以我感到非常困惑。

1 个答案:

答案 0 :(得分:0)

这表明您的训练数据中存在一些格式错误的示例。这个,我的意思是你的某些图像的标签太少了。尝试检查空标签或异常短标签。

124来自卷积部分中的max_pool运算,数字代表最终特征向量的长度。如果宽度上有四个max_pools步幅2,则图像宽度将减少2**4 = 16 =&gt;对于输入图像32 x 2000,最终要素图大小为1 x 125 x F(F为过滤器数)。不确定为什么124而不是125,可能是某些错误或使用索引而不是len