gpt4 book ai didi

python - 用于多任务学习神经网络的 Keras 的顺序与功能 API

转载 作者:行者123 更新时间:2023-12-03 14:16:46 26 4
gpt4 key购买 nike

我想为多任务深度学习任务设计一个神经网络。在 Keras API 中,我们可以使用“顺序”或“函数”方法来构建这样的神经网络。在下面,我提供了用于构建网络的代码,使用这两种方法构建具有两个输出的网络:

顺序

seq_model = Sequential()
seq_model.add(LSTM(32, input_shape=(10,2)))
seq_model.add(Dense(8))
seq_model.add(Dense(2))
seq_model.summary()

功能
input1 = Input(shape=(10,2))
lay1 = LSTM(32, input_shape=(10,2))(input1)
lay2 = Dense(8)(lay1)
out1 = Dense(1)(lay2)
out2 = Dense(1)(lay2)
func_model = Model(inputs=input1, outputs=[out1, out2])
func_model.summary()

当我查看模型的两个摘要输出时,每个输出都包含相同数量的可训练参数:

Sequential and Functional .summary()

到目前为止,这看起来不错 - 但是当我绘制两个模型(使用 keras.utils.plot_model )时,我开始怀疑自己,结果如下图:
Sequential and Functional plot_model()

我个人不知道如何解释这些。当使用多任务学习方法时,我希望输出层之前的层的所有神经元(在我的例子中为 8)连接到 两者 输出神经元。对我来说,这清楚地显示在 Functional API 中(我有两个 Dense(1) 实例),但这在 Sequential API 中不是很清楚。尽管如此,可训练参数的数量是相同的;这表明最后一层的 Sequential API 也完全连接到密集输出层中的两个神经元。

谁能向我解释这两个示例之间的差异,或者它们是否完全相同并导致相同的神经网络架构?另外,在这种情况下,哪个更受欢迎?

非常感谢您提前。

最佳答案

Sequential 和 Functional keras API 的区别:

The sequential API allows you to create models layer-by-layer for mostproblems. It is limited in that it does not allow you to create modelsthat share layers or have multiple inputs or outputs.

the functional API allows you to create models that have a lot moreflexibility as you can easily define models where layers connect tomore than just the previous and next layers. In fact, you can connectlayers to (literally) any other layer. As a result, creating complexnetworks such as siamese networks and residual networks becomepossible.


回答你的问题:
不,这些 API 是不一样的,并且层数相同是正常的。
使用哪一种?这取决于您要使用此网络的用途。你培训是为了什么?你希望输出是什么?
我推荐这个链接来充分利用这个概念。
Sequential Models & Functional Models
我希望我能帮助你更好地理解。

关于python - 用于多任务学习神经网络的 Keras 的顺序与功能 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58092176/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com