torch CTCCriterion 错误:您必须将批次中每个序列的大小作为张量传递

我计划在 Torch 中实现 CTC 准则用于车牌识别器。我参考了 warp_ctc 中的教程。然而,在训练期间,发生了错误,并出现以下错误消息。

/home/ubuntu/torch/install/bin/luajit: .../ubuntu/torch/install/share/lua/5.1/nnx/CTCCriterion.lua:24: 您必须将批次中每个序列的大小作为张量传递 堆栈回溯: [C]: in function 'assert' .../ubuntu/torch/install/share/lua/5.1/nnx/CTCCriterion.lua:24: in function 'forward'

CTC 准则接收 3 个参数, CTCCriterion:forward(output,label,sizes) 这是我的目标/标签, { 1:CudaTensor - size:24 2:CudaTensor - size:24 3:CudaTensor - size:24 4:CudaTensor - size:24 5:CudaTensor - size:24 6:CudaTensor - size:24 7:CudaTensor - size:24 8:CudaTensor - size:24 9:CudaTensor - size:24 10:CudaTensor - size:24 }

和输出 { 1:CudaTensor - size:24x36 2:CudaTensor - size:24x36 3:CudaTensor - size:24x36 4:CudaTensor - size:24x36 5:CudaTensor - size:24x36 6:CudaTensor - size:24x36 7:CudaTensor - size:24x36 8:CudaTensor - size:24x36 9:CudaTensor - size:24x36 10:CudaTensor - size:24x36 }

批次大小为 24,我假设每个完成的车牌组合最多包含 10 个字符,36 个字符表示字母 a-z,0-9。

我尝试插入值 1、24、36,但每轮训练时出现相同的错误消息。我注意到输出和目标中允许的数据类型是张量类型,而不是表格类型,我尝试进行转换和重塑,但仍然无济于事。

点赞