【问题标题】:Keras: 2D input -> 2D output?Keras:2D 输入 -> 2D 输出?
【发布时间】:2016-03-29 19:16:26
【问题描述】:

我想构建一个神经网络来学习一组标准特征向量。因此,该集合的形状为 (N,100),其中 N 是样本数。但是,标签集的形状为 (Nx18)(例如,每个“标签”是另一个 18 个元素的数组)。我对 keras 和神经网络很陌生,我只知道如何处理一维标签(例如二进制分类中的 0 或 1)。如何处理多维输出?

谢谢!

【问题讨论】:

    标签: neural-network keras


    【解决方案1】:

    也许我不完全理解这个问题,但最简单的方法是拥有一个具有 18 个神经元的输出层。每个神经元输出一个值,即输出将是一个包含 18 个值的向量。

    一种可能的方法是使用隐藏层的前馈神经网络,例如包含 100 个神经元。为此,您将需要 Keras 中的 Dense layer

    nb_hidden = 100
    
    model = Sequential()
    model.add(Dense(input_dim = 100, output_dim = nb_hidden)
    model.add(Dense(output_dim = 18, activation = 'softmax')
    model.compile(loss='categorical_crossentropy', optimizer='adadelta')
    

    考虑改变隐藏层的数量、一般网络拓扑(例如,包括 Dropout 层)和激活函数,直到获得好的结果。

    【讨论】:

      猜你喜欢
      • 2019-03-11
      • 2017-06-28
      • 1970-01-01
      • 2020-07-22
      • 2019-07-23
      • 2019-01-20
      • 1970-01-01
      • 2017-08-22
      • 1970-01-01
      相关资源
      最近更新 更多