问题标签 [ctc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
45 浏览

python - Keras/Tensorflow 的 CTC 损失;形状不可配置

我的项目涉及keras.backend.ctc_batch_cost()keras 的包装器功能。参数是:

  • y_pred:在这里,我有一个 softmax 输出shape=(None, 446, 30)

  • y_true:(这是麻烦制造者)包含编码标签的张量,如下所示:

    tf.Tensor( [[ 5 10 6 ... 99 99 99] [ 5 10 6 ... 99 99 99] [ 5 10 6 ... 99 99 99] ... [ 8 6 16 ... 99 99 99] [10 14 1 ... 99 99 99] [20 10 6 ... 99 99 99]],形状=(1787, 150),dtype=int32)

  • input_lengths:包含 y_pred 长度的张量

  • label_lengths:包含 y_true 长度的张量

这是我绘制的模型的图像(CTC 部分) CTC 部分

问题是我的 y_true 的形状为 (1787, 150) ,即 (samples, max_label_length) 对应于文档,但是当我尝试运行它时,它会抛出此错误:

我还必须向您展示我的模型的 InputLayers:

(我没有包括 Input 0 因为它工作正常)

通过将“encoded_labels_input”层的形状更改为类似 (1787, 150) 的形状,解决方案似乎很明显,但不幸的是,这不起作用。因为那样会引发错误:ValueError: Shape (None, 150) must have rank 1

好吧,有多个错误,但我不知道其中哪些是相关的:

从现在开始,我不知道我应该或可以做些什么来解决它......有没有人知道如何处理 ctc 功能?

0 投票
0 回答
46 浏览

websphere - WebSphere Portal 8.5(CTC 模板)上的链接不会在移动设备上打开 url,而只能在新选项卡上打开

在带有 CTC 模板 v4.4 的 WebSphere WCM v8.5 站点中,无法在移动设备上单击链接。如果我右键单击并在新选项卡/窗口上打开,它们就可以工作。如果我在“点击”事件中在 Chrome 中添加断点,它会被触发。当我单击恢复时,链接继续有效。没有断点,它就不会加载新的 url。

关于有什么问题的任何想法?

我已经看到了一个类似的问题,但找不到任何有问题的脚本:<a> 链接无法通过单击工作,只能通过“在新选项卡中打开链接”命令工作

0 投票
0 回答
50 浏览

keras - Keras 自定义损失函数未更新进度条

我有以下代码来计算 LER 指标:

我想使用 CTC 损失函数来更新梯度和 LER 作为“准确度”度量的一种形式。虽然 CTC 损失工作和更新正常,但 LER (decoded_loss) 始终保持在 0.0000e+00。我不确定我做错了什么,但我已经失去了一整天的时间来通过在线示例尝试解决这个问题,但问题仍然存在。如果我在 decode 函数中打印值,我可以看到值正在正确生成,但进度条不会更新。我想看看 LER 在训练过程中是如何变化的。

0 投票
1 回答
137 浏览

python - 让 Keras 的 CTC 损失适用于大小差异很大的 Input

所以我试图将摩尔斯电码信号转换为它们的字符串表示。某些形式的预处理从 [0, 1] 产生一维标准化浮点数组,用作 C/RNN 的输入。例子:条码

该图像沿 y 轴拉伸以获得更好的可见性,但 NN 的输入为 1d。我正在寻找一种翻译图像内容的聪明方法,在这个例子中,正确的翻译是“WPM = TEXT I”。我当前的模型在本教程中使用 keras 的 ctc 损失。然而,它会为每个时间步检测字母“E”(“E”是“。”的莫尔斯等效值或图像中的一个小条),所以我认为“步长”太小了。另一种尝试强化了这一点,该尝试将高于某个阈值的每个时间步分类为“E”,其他所有内容都为 [UNK]/空白。

我认为主要问题是例如“E”(一条细线)和其他字符之间的大小差异很大,例如“=”,由小线表示,由中间看到的两条粗线框住( -...-)。这在语音识别中应该不是问题,因为您可以在语音识别小到微秒的时间段(比如在“瘦”和“健身房”中听到“i”音),这在这种情况下是不可能的.

也许任何人都想出了一个聪明的解决方案,要么是这个实现,要么是通过不同的输入表示或类似的东西。

0 投票
0 回答
37 浏览

pytorch - 为什么我的带有 CTCloss 的 RCNN 模型不起作用?

我的损失函数倾向于将我的所有预测预测为空白字符。今天,我为一个简单的 OCR 任务写了 CRNN + CTCLOSS 代码,但是效果不是很好。具体来说,模型的输出结果是空白符号对应的数字

在此处输入图像描述

0 投票
1 回答
62 浏览

mozilla-deepspeech - (0) 无效参数:目标转换序列没有足够的时间(必需:28,可用:24)在 Mozilla Deepspeech 训练期间

我正在使用以下命令开始训练 deepspeech 模型

我一次又一次地收到以下错误。

0 投票
1 回答
51 浏览

python - 实施 CTC 损失 keras

考虑到您有一个与此类似的基本模型这一事实:

您将如何实施 CTC 损失?我从关于 OCR 的 keras 代码教程中尝试了一些东西,如下所示:

然而,当涉及到 model.fit 部分时,由于我不知道如何为模型提供“标签”输入层的东西,它开始分崩离析。我认为本教程中的方法非常明确,那么实现 CTC 损失的更好、更有效的方法是什么?

0 投票
0 回答
49 浏览

python - ctc 的训练损失为 inf,而验证损失似乎正常

我有一个模型,由 CNN、RNN 和输出层组成。我拥有的数据是图像和它的转录。转录被填充到 9 个字符的长度。对于 CTC 损失,我遵循了 keras ocr 示例代码,如下所示:

现在这是我实施它的方式:

一旦运行 model.fit 开始发生一些奇怪的事情,我得到了一个 inf 训练损失,但一个大约 20 的验证损失。我查看了可能导致它的原因并遇到了这篇文章。接受的答案如下:

绝对是导致问题的输入的序列长度。显然,序列长度应该比地面实况长度大一点。

这是什么意思,我需要如何更改我的代码才能解决我遇到的问题?

0 投票
0 回答
47 浏览

python - ctc_loss_calculator.h:499] 未找到有效路径

该问题在以下问题中得到解决,如果有任何答案,都没有提供明确的解决方案

这是我运行的代码...

examples+ labels.txt(在示例文件夹中)

例子.tar.gz

结果如下:

注意:该代码适用于长度为 10 个字符或更短的标签。上例中的标签和相应照片各有 1-20 个字符。给定长度为 n 的标签,我究竟需要修改什么才能使其工作?

0 投票
1 回答
77 浏览

python - 自定义指标仅适用于急切执行

根据我之前提出的问题的答案,我正在尝试制作自定义指标word_accuracy并在 tensorflow 中使用 CRNN char_accuracy-CTC 模型实现。运行以下几行后,它在链接中运行良好:

这是 CTC 自定义层以及精度计算函数:

if y_true.shape[1] is not None块旨在防止在创建模型时发生错误,因为传递的是占位符而不是实际的张量。如果 if 语句不存在,会发生以下情况(无论是否渴望执行,我仍然会遇到相同的错误)

注意:在图形执行中,标签的形状始终为(None, None),因此添加指标的 if 块下的代码永远不会执行。要使指标起作用,只需运行我包含的笔记本而不进行修改,稍后再对其进行修改以重现错误。

以下是启用 Eager Execution 时应该看到的内容:

要重现此问题,如果您之前运行过 notebook,您可能需要重新启动运行时,然后尝试在不急切执行的情况下运行,并且指标将永远不会显示。如果要重现错误,请注释掉该行if y_true.shape[1] is not None并将 if 块与其余代码合并。我需要在提供的笔记本中修改什么以使指标按演示工作,而无需使用急切执行?