Keras中单个输入的多个输出向量

时间:2017-10-27 09:28:56

标签: python tensorflow deep-learning keras ocr

我想在Keras中创建一个神经网络,用于将手写内容转换为计算机字母。

我的第一步是将句子转换为数组。我的数组的形状为(1, number of letters,27)。现在我想在我的深度神经网络和训练中输入它。

但是如果维度不适合我的图像,我该如何正确输入呢?我如何实现我的预测函数给我一个(1, number of letters,27)的输出数组?

1 个答案:

答案 0 :(得分:1)

好像您正在尝试Handwritten Recognition或类似Optical Character Recognition或OCR。这是一个相当广泛的领域,有很多方法可以继续。尽管如此,我建议的一种方法如下:

众所周知,神经网络具有固定大小的输入,即如果你构建它以采取形状(28,28,1)的输入,那么模型将期望该形状为投入。因此,建议样本中的维度取决于句子中的字母数(某些变量),因为您无法使用NN以这种方式训练模型。< / p>

如果您将其设计为一次预测一个字符,而不是整个可以具有不同长度的句子,则可以对此模型进行培训,然后对预测字符进行分组。您可以尝试实现此目标的步骤可能是:

  1. 获取您想要识别的角色的训练样本(例如MNIST数据库),并设计和训练您的模型以一次预测一个角色。

  2. 通过写入图像进行分类并在其上面传递一个符合预期输入大小的滑动窗口(例如28x28窗口)。然后,将每个窗口分类为一个字符。您可以尝试以某种方式隔离所需的功能,而不是滑动窗口,而只是将这些28x28段分类。

  3. 以某种方式对预测的字符进行分组,以便获得单词(可能将那些用空格分隔的单词组合)或用预测做任何你想做的事。

  4. 你也可以尝试搜索手写识别的教程或指南,如this one我发现它非常有用。希望这有助于你走上正轨,祝你好运。