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 章