我正在使用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"]()]]
奇怪的是,我在谷歌上没有得到很多结果,所以我觉得值得一提。
值得注意的是,我的代码和数据中没有任何地方,所以我感到非常困惑。
答案 0 :(得分:0)
这表明您的训练数据中存在一些格式错误的示例。这个,我的意思是你的某些图像的标签太少了。尝试检查空标签或异常短标签。
124来自卷积部分中的max_pool
运算,数字代表最终特征向量的长度。如果宽度上有四个max_pools
步幅2
,则图像宽度将减少2**4 = 16
=&gt;对于输入图像32 x 2000
,最终要素图大小为1 x 125 x F
(F为过滤器数)。不确定为什么124
而不是125
,可能是某些错误或使用索引而不是len
。