keras lstm softmax 多对多

本文介绍了一个使用Keras库实现的多输入多输出LSTM模型案例。模型使用了TimeDistributed层来处理序列数据,并通过softmax激活函数进行分类预测。通过训练,模型能够对输入的序列数据进行有效预测。
# multinput and multioutput  
from numpy import array
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import TimeDistributed
from keras.layers import LSTM
import numpy as np
# prepare sequence
length = 5
seq = array([i/float(length) for i in range(length)])
#X = seq.reshape(1, length, 1)

X=np.array([    [[ 0. ,  0. ],
                 [ 0.2,  0.2],
                 [ 0.4,  0.4],
                 [ 0.6,  0.6],
                 [ 0.8,  0.8]],

                 [[ 0. ,  0. ],
                 [ 0.2,  0.2],
                 [ 0.4,  0.4],
                 [ 0.6,  0.6],
                 [ 0.8,  0.8]],

                             ])
y=np.array([   [[ 0,1,0],
                [ 0,0,1],
                [ 1,0,0],
                [ 0,1,0],
                [ 0,0,1]],               

                [[ 0,1,0],
                [ 0,0,1],
                [ 1,0,0],
                [ 0,1,0],
                [ 0,0,1]],
                           ])



#y = seq.reshape(1, length, 1)
# define LSTM configuration
n_neurons = length
n_batch = 1
n_epoch = 2000
# create LSTM
model = Sequential()
model.add(LSTM(n_neurons, input_shape=(length, 2), return_sequences=True))
model.add(TimeDistributed(Dense(3,activation='softmax')))
#model.add(Dense(7, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam')
print(model.summary())
# train LSTM
model.fit(X, y, epochs=n_epoch, batch_size=n_batch, verbose=2)
# evaluate
result = model.predict(X, batch_size=n_batch, verbose=0)
for value in result[0,:,0]:
    print('%.1f' % value)
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值