【问题标题】:How 2 keras model outputs can be integrated?如何集成 2 个 keras 模型输出?
【发布时间】:2020-10-04 06:47:30
【问题描述】:

我一直在考虑是否要构建具有不同目标的多个 keras 模型,我将通过一个示例来说明我的意思。假设主要目标是预测股票价格,假设有 2 个模型,第一个模型用于情绪分析,其主要目标是处理新闻文章并预测股票价格是上涨还是下跌.第二个模型是一个 LSTM,它将历史价格数据作为输入并预测下一个时期(可以是一分钟、一天、一个月……)的价格。假设我希望 LSTM 模型也考虑情绪分析的结果,以及可能以相同方式预测不同指标的其他模型的输出,这可能吗?它通常是如何完成的?我认为相同的逻辑可能适用于许多其他示例(推荐系统、零售库存预测......)

【问题讨论】:

  • 您可以将所有这些预测特征像任何其他特征一样放入模型中。此外,您可以检查“集成学习”,它通常用于组合预测相同结果的模型,但您可以从那里使用一些原则
  • 谢谢,您能指出一些您认为相关的文档吗?
  • towardsdatascience.com/… ; scikit-learn.org/stable/modules/ensemble.html 。我要说的第一件事;您必须将所有这些功能组合到某个 x 轴中,例如时间。

标签: python keras


【解决方案1】:

Keras 功能 API 可帮助您创建更灵活的模型,包括多个输入管道。

根据您的要求,您有一个 RNN (LSTM) 模型可以对股票价格(数字数据)进行序列处理,另一个 CNN 或 RNN 模型可以对新闻文章(文本数据)进行文本处理。使用 Keras 功能 API,您可以创建一个模型,将这两个模块放在单独的输入管道中,然后您可以合并它们以预测股票价格。

鞋类价格预测模型示例:

在图中,您有 3 个输入管道(例如鞋子的规格、描述和图片),然后将由 layers.concatenate() 合并以形成预测鞋子价格的模型。

TF Keras Functional API Guide

2 输入问答模型的示例实现:

from tensorflow.keras.models import Model
from tensorflow.keras import layers
from tensorflow.keras import Input

text_vocabulary_size = 10000
question_vocabulary_size = 10000
answer_vocabulary_size = 500

text_input = Input(shape=(None,), dtype='int32', name='text')

embedded_text = layers.Embedding(64, text_vocabulary_size)(text_input)

encoded_text = layers.LSTM(32)(embedded_text)

question_input = Input(shape=(None,),
   dtype='int32',
   name='question')

embedded_question = layers.Embedding(
    32, question_vocabulary_size)(question_input)

encoded_question = layers.LSTM(16)(embedded_question)

concatenated = layers.concatenate([encoded_text, encoded_question],
   axis=-1)
answer = layers.Dense(answer_vocabulary_size,
   activation='softmax')(concatenated)

model = Model([text_input, question_input], answer)

model.compile(optimizer='rmsprop',
  loss='categorical_crossentropy',
  metrics=['acc'])

请参阅 使用 Python 进行深度学习 François Chollet 的书第 17.1 章

【讨论】:

  • 谢谢你的解释,我去看看书
猜你喜欢
  • 2021-10-02
  • 2021-11-19
  • 2021-09-02
  • 2018-12-08
  • 1970-01-01
  • 2017-06-02
  • 2017-08-31
  • 2018-05-20
  • 2019-01-02
相关资源
最近更新 更多