我想构建一个神经网络来学习一组标准特征向量。因此该组具有形状(N,100),其中N是样本的数量。然而,标签组具有形状(Nx18)(例如,每个“标签”是18个元件的另一个阵列)。我对keras和神经网络都很陌生,而且我只知道当它是一维时如何处理标签(例如二进制分类中的0或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层)和激活函数,直到获得好结果。