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

Multiple Output Vectors for a single Input in Keras

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

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

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

的输出数组

您似乎在尝试进行 Handwritten Recognition or similarly Optical Character Recognition 或 OCR。这是一个相当广阔的领域,有很多方法可以进行。尽管如此,我建议的一种方法如下:

众所周知,神经网络具有 固定大小的输入 ,也就是说,如果您将其构建为接受形状为 (28,28,1) 的输入,那么模型将期望那个形状作为他们的输入。因此,不建议在样本中使用取决于句子中字母数量的维度(变量),因为您将无法以这种方式训练模型NNs.

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

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

  2. 获取带有文字的图像进行分类,并在其上传递一个与您预期的输入大小相匹配的滑动 Window(比如 28x28 window)。然后,将这些 windows 中的每一个分类为一个字符。除了滑动 Window,您可以尝试以某种方式隔离您想要的功能,然后只对那些 28x28 段进行分类。

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

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