双输出神经网络

2024-09-27 21:25:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新的Keras,想建立一个有两个输出的神经网络。 基本上,我要做的是将最后一层的稠密函数设置为2,如下所示

model.add(Dense(2, activation = 'relu',kernel_initializer=RandomNormal(mean=0.0, stddev=0.05, seed=0)))

对吗?在

谢谢你的帮助


Tags: 函数addmodel神经网络meanactivationkernelkeras
2条回答

不清楚你所说的两个输出是什么意思。就术语而言,您的网络只有一个大小为2的输出,因为您只输出一个向量。我们可以说这是多输出,在某种意义上,你有两个值,你正在计算,但技术上我们称之为单一输出。这取决于你的应用程序是什么。在

实际的多输出网络是使用functional API构建的,其中有一个向量/张量列表作为不同层的输出。例如,在这种情况下,您可以:

out1 = Dense(2, activation='relu')(in)
out2 = Dense(3, activation='softmax')(in)
model = Model(in, [out1, out2])

它将有2个矢量作为输出。这与Dense(5)有何不同?好吧,现在我们有不同的激活,并试图预测回归,以及在这个例子中输入的分类,你不能用一个单一的向量输出有效地完成。在

如果你试图实现的是从你的神经网络中得到两个不同的输出,那么这个实现是错误的。在这一行代码中,你在致密层中创建了两个神经元,就像在一个多类分类问题中,如果你试图从这两个类中预测你输入的类,那么你做得对(只要改变activation='softmax')

但是,如果你要做的是预测来自单一神经网络的两个不同的输出,那么你必须使用Keras的模型api,然后基本上,然后为每个输出创建不同的输出层,并在实例化模型时将它们作为列表传递。在

如果您是Keras的新手,我强烈建议您通过这个book,这将非常有帮助。在

相关问题 更多 >

    热门问题