构建模型的一般方法

目前,我正在为情感计算创建模型,我发现使用tensorflow构建模型有两种不同的方法。

  1. 初始化一个空的Sequential(),然后只需将Dense层添加进去。
model = Sequential()model.add(Activation('relu'))...model.add(Activation('softmax')) 
  1. 获取现有模型的输出,然后在其后添加额外的Dense层
model = VGG16.outputmodel = Flatten()(model)...model = Activation('softmax')(model)

我想知道第一种方法和第二种方法之间是否有区别?如果有,哪种方法适合哪些场景?感谢您的回答。


回答:

如果我理解正确的话,您正在寻找的是:使用哪种方法的理由及适用场景

您可以从头开始构建一个模型,并在一些训练数据上进行训练。或者,您可以使用之前训练过的模型并进行微调,这也称为迁移学习。您甚至可以使用另一个模型的主干结构,但从头开始训练(这里没有使用迁移学习)。

您要使用哪一种方法,完全取决于您的使用场景。

  1. 您问题中的第一个代码块用于从头开始定义您选择的模型。
    • 您可以使用SequentialFunctional API,或者如果您需要构建更复杂的模型,还可以尝试Subclassing
  2. 您问题中的第二个代码块可以用于以下两种情况之一:
    1. 为您的特定任务微调一个预先学习的网络(您本质上在这里进行迁移学习)。
    2. 使用网络的主干结构而不加载其权重,并从头开始训练。

请参阅:使用Tensorflow.keras的项目组织。是否应该子类化tf.keras.Model?

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注