目前,我正在为情感计算创建模型,我已经看到在tensorflow中有两种不同的构建模型的方法。
- 初始化一个空的Sequential(),然后将Dense图层放入其中。
model = Sequential()
model.add(Activation('relu'))
.
.
.
model.add(Activation('softmax'))
- 获取现有模型的输出,并在之后添加额外的Dense图层
model = VGG16.output
model = Flatten()(model)
.
.
.
model = Activation('softmax')(model)
我想知道第一种方法和第二种方法是否有区别?如果是,哪一个适用于哪些场景?谢谢你的回答。
如果我理解正确,您正在寻找:使用哪种方法以及何时使用的基本原理.
你可以建立一个模型,并从头开始在一些训练数据上训练它。或者,你可以使用之前训练过的模型并对其进行微调,这也被称为迁移学习。你甚至可以使用另一个模型的主干,但是从头开始训练它(这里没有迁移学习)。
您想使用其中的哪一个,这完全取决于您的用例。
- 问题中的第一个代码块用于从头开始定义您选择的模型。
- 如果你需要构建更复杂的模型,你可以使用Sequential,Functionalapi,甚至尝试子类化。
- 你的问题中的第二个代码块可以用于以下两个中的任何一个:
- 为你的特定任务微调预学习网络(你在这里基本上是迁移学习)。
- 使用网络的骨干而不加载它的权重并从头开始训练。
查看这个:使用Tensorflow.keras进行项目组织。应该有一个子类tf.keras.Model吗?