keras多输入模型

1 篇文章 0 订阅
1 篇文章 0 订阅

模型类似这样的
双输入模型的构建

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

text_vocabulary_size=10000
question_vocabulary_size=10000
answer_vocabulary_size=5000

#参考文本的输入
text_input=Input(shape=(None,),dtype='int32',name='text')
embedded_text=layers.Embedding(text_vocabulary_size,64)(text_input)
encoded_text=layers.LSTM(32)(embedded_text)
#问题的输入
question_input=Input(shape=(None,),dtype='int32',name='question')
embedded_question=layers.Embedding(question_vocabulary_size,32)(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'])

生成测试数据

import numpy as np
num_samples=1000
max_length=100
text=np.random.randint(1,text_vocabulary_size,size=(num_samples,max_length))
question=np.random.randint(1,question_vocabulary_size,size=(num_samples))
answers=np.random.randint(answer_vocabulary_size,size=(num_samples))
answers=keras.utils.to_categorical(answers,answer_vocabulary_size)

两种训练数据方式(列表,字典)

model.fit([text,question],answers,epochs=10, batch_size=128)
model.fit({'text': text, 'question': question}, answers, epochs=10, batch_size=128) 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值