【发布时间】:2016-03-29 19:16:26
【问题描述】:
我想构建一个神经网络来学习一组标准特征向量。因此,该集合的形状为 (N,100),其中 N 是样本数。但是,标签集的形状为 (Nx18)(例如,每个“标签”是另一个 18 个元素的数组)。我对 keras 和神经网络很陌生,我只知道如何处理一维标签(例如二进制分类中的 0 或 1)。如何处理多维输出?
谢谢!
【问题讨论】:
标签: neural-network keras
我想构建一个神经网络来学习一组标准特征向量。因此,该集合的形状为 (N,100),其中 N 是样本数。但是,标签集的形状为 (Nx18)(例如,每个“标签”是另一个 18 个元素的数组)。我对 keras 和神经网络很陌生,我只知道如何处理一维标签(例如二进制分类中的 0 或 1)。如何处理多维输出?
谢谢!
【问题讨论】:
标签: neural-network keras
也许我不完全理解这个问题,但最简单的方法是拥有一个具有 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 层)和激活函数,直到获得好的结果。
【讨论】: