【问题标题】:How to design a neural network for input of various size?如何为各种大小的输入设计神经网络?
【发布时间】:2020-03-02 21:41:44
【问题描述】:

我想知道,如何设计一个神经网络,其中输入数据可以具有不同的形状,因为网络在输入层中有一些固定数量的节点。

通常当我想为未知(各种)分辨率的图片训练图像分类网络时,或者当我想对不同长度的文本进行分类时。

例如,对于图像,我当然可以有一些预处理管道来调整图像大小,但我可能会丢失一些信息,在文本的情况下,“调整大小”会更难执行。

有什么诀窍,如何设计这样的网络?

【问题讨论】:

    标签: tensorflow deep-learning neural-network


    【解决方案1】:

    想到了三种可能性。

    最简单的是零填充。基本上,您采用相当大的输入大小,如果您的具体输入太小,只需添加零。当然,如果您的输入范围从几个单词到全文,这非常有限,而且肯定没有用。

    如果您有不同大小的文本作为输入,循环神经网络 (RNN) 是一种非常自然的神经网络选择。您一个接一个地输入单词作为单词向量(或嵌入),RNN 的内部状态应该对整个单词字符串的含义进行编码。这是较早的论文之一。

    另一种可能性是使用递归神经网络。这基本上是一种预处理形式,其中将文本递归地减少为较少数量的词向量,直到只剩下一个——您的输入,它应该对整个文本进行编码。如果您的输入由句子组成(大小可能有很大差异),从语言的角度来看,这很有意义,因为句子是递归构造的。例如,“男人”的词向量,应该和“把妻子误认为帽子的男人”的词向量相似,因为名词短语的作用类似于名词等。通常,您可以使用语言信息来指导你对句子的递归。如果您想超越维基百科的文章,这可能是一个好的开始。

    【讨论】:

      【解决方案2】:

      如果是图像,您可以询问特定图像中的内容,而不是让您的神经网络识别图像中的内容,例如256x256 大小的图片部分。您为此进行训练,并将其用于整个图像的某些部分重叠的滚动窗口。如果您的待识别模式的大小变化很大,您可以调整它的大小,然后再次使用您的 NN。

      【讨论】:

        猜你喜欢
        • 2016-10-21
        • 1970-01-01
        • 2020-10-19
        • 1970-01-01
        • 1970-01-01
        • 2013-06-09
        • 2011-01-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多