Keras:2D输入 - > 2D输出?

时间:2016-03-29 19:16:26

标签: neural-network keras

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

谢谢!

1 个答案:

答案 0 :(得分:2)

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

这样做的一种可能方式是具有隐藏层的前馈神经网络,例如,包含100个神经元。为此需要凯拉斯的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层)和激活函数,直到获得好结果。